* gcc.dg/i386-loop-1.c: New test.
From-SVN: r64031
This commit is contained in:
parent
f937d5e67e
commit
9edf6a4c0f
@ -1,3 +1,7 @@
|
||||
2003-03-09 Eric Botcazou <ebotcazou@libertysurf.fr>
|
||||
|
||||
* gcc.dg/i386-loop-1.c: New test.
|
||||
|
||||
2003-03-09 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
|
||||
|
||||
PR c++/9970
|
||||
|
105
gcc/testsuite/gcc.dg/i386-loop-1.c
Normal file
105
gcc/testsuite/gcc.dg/i386-loop-1.c
Normal file
@ -0,0 +1,105 @@
|
||||
/* PR optimization/9888 */
|
||||
/* { dg-do run { target i?86-*-* } } */
|
||||
/* { dg-options "-mtune=k6 -O3" } */
|
||||
|
||||
/* Verify that GCC doesn't emit out of range 'loop' instructions. */
|
||||
|
||||
extern void abort (void);
|
||||
extern void exit (int);
|
||||
|
||||
|
||||
f1 (a)
|
||||
long a;
|
||||
{
|
||||
int i;
|
||||
for (i = 0; i < 10; i++)
|
||||
{
|
||||
if (--a == -1)
|
||||
return i;
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
f2 (a)
|
||||
long a;
|
||||
{
|
||||
int i;
|
||||
for (i = 0; i < 10; i++)
|
||||
{
|
||||
if (--a != -1)
|
||||
return i;
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
f3 (a)
|
||||
long a;
|
||||
{
|
||||
int i;
|
||||
for (i = 0; i < 10; i++)
|
||||
{
|
||||
if (--a == 0)
|
||||
return i;
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
f4 (a)
|
||||
long a;
|
||||
{
|
||||
int i;
|
||||
for (i = 0; i < 10; i++)
|
||||
{
|
||||
if (--a != 0)
|
||||
return i;
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
f5 (a)
|
||||
long a;
|
||||
{
|
||||
int i;
|
||||
for (i = 0; i < 10; i++)
|
||||
{
|
||||
if (++a == 0)
|
||||
return i;
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
f6 (a)
|
||||
long a;
|
||||
{
|
||||
int i;
|
||||
for (i = 0; i < 10; i++)
|
||||
{
|
||||
if (++a != 0)
|
||||
return i;
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
||||
int main()
|
||||
{
|
||||
if (f1 (5L) != 5)
|
||||
abort ();
|
||||
if (f2 (1L) != 0)
|
||||
abort ();
|
||||
if (f2 (0L) != 1)
|
||||
abort ();
|
||||
if (f3 (5L) != 4)
|
||||
abort ();
|
||||
if (f4 (1L) != 1)
|
||||
abort ();
|
||||
if (f4 (0L) != 0)
|
||||
abort ();
|
||||
if (f5 (-5L) != 4)
|
||||
abort ();
|
||||
if (f6 (-1L) != 1)
|
||||
abort ();
|
||||
if (f6 (0L) != 0)
|
||||
abort ();
|
||||
exit (0);
|
||||
}
|
Loading…
Reference in New Issue
Block a user