blob: 31bbdd69b6eb5581d04d75f1222d43c42bb09981 [file] [log] [blame]
/* PR middle-end/87290 */
int c;
__attribute__((noipa)) void
f0 (void)
{
c++;
}
__attribute__((noipa)) int
f1 (int x)
{
return x % 16 == 13;
}
__attribute__((noipa)) int
f2 (int x)
{
return x % 16 == -13;
}
__attribute__((noipa)) void
f3 (int x)
{
if (x % 16 == 13)
f0 ();
}
__attribute__((noipa)) void
f4 (int x)
{
if (x % 16 == -13)
f0 ();
}
int
main ()
{
int i, j;
for (i = -30; i < 30; i++)
{
if (f1 (13 + i * 16) != (i >= 0) || f2 (-13 + i * 16) != (i <= 0))
__builtin_abort ();
f3 (13 + i * 16);
if (c != (i >= 0))
__builtin_abort ();
f4 (-13 + i * 16);
if (c != 1 + (i == 0))
__builtin_abort ();
for (j = 1; j < 16; j++)
{
if (f1 (13 + i * 16 + j) || f2 (-13 + i * 16 + j))
__builtin_abort ();
f3 (13 + i * 16 + j);
f4 (-13 + i * 16 + j);
}
if (c != 1 + (i == 0))
__builtin_abort ();
c = 0;
}
return 0;
}