blob: 8e5794c77b6d1091381ac7190d47496fcf818e4a [file] [log] [blame]
/* { dg-do run } */
/* { dg-options "-O2 -fno-tree-forwprop" } */
extern void __attribute__((noreturn)) unreachable (void);
int fle22 (int a)
{
unsigned i = a / 4;
unsigned j = i - 2;
if (j == 7) /* A dynamic range excludes a value from j for the rest of f1. */
return -1;
if (i <= 2) /* This dynamic range cannot be combined or compared with that of j. */
return 0;
if (i <= j) /* And so we couldn't compute this result. */
unreachable ();
return 1;
}
int fle32 (int a)
{
unsigned i = a / 4;
unsigned j = i - 3;
if (j == 7) /* A dynamic range excludes a value from j for the rest of f1. */
return -1;
if (i <= 2) /* This dynamic range cannot be combined or compared with that of j. */
return 0;
if (i <= j) /* And so we couldn't compute this result. */
unreachable ();
return 1;
}
int flt22 (int a)
{
unsigned i = a / 4;
unsigned j = i - 2;
if (j == 7)
return -1;
if (i <= 2)
return 0;
if (i < j)
unreachable ();
return 1;
}
int flt32 (int a)
{
unsigned i = a / 4;
unsigned j = i - 3;
if (j == 7)
return -1;
if (i <= 2)
return 0;
if (i < j)
unreachable ();
return 1;
}
int fgt22 (int a)
{
unsigned i = a / 4;
unsigned j = i + 2;
if (j == -7)
return -1;
if (i >= -3)
return 0;
if (i > j)
unreachable ();
return 1;
}
int fgt32 (int a)
{
unsigned i = a / 4;
unsigned j = i + 3;
if (j == -7)
return -1;
if (i >= -3)
return 0;
if (i > j)
unreachable ();
return 1;
}
int fge22 (int a)
{
unsigned i = a / 4;
unsigned j = i + 2;
if (j == -7)
return -1;
if (i >= -3)
return 0;
if (i >= j)
unreachable ();
return 1;
}
int fge32 (int a)
{
unsigned i = a / 4;
unsigned j = i + 3;
if (j == -7)
return -1;
if (i >= -3)
return 0;
if (i >= j)
unreachable ();
return 1;
}
int main (int argc, char *argv[]) {
fle22 (argc);
fle32 (argc);
flt22 (argc);
flt32 (argc);
fgt22 (argc);
fgt32 (argc);
fge22 (argc);
fge32 (argc);
}