diff options
author | Michael Eager <eager@gcc.gnu.org> | 2010-09-30 18:21:57 +0000 |
---|---|---|
committer | Michael Eager <eager@gcc.gnu.org> | 2010-09-30 18:21:57 +0000 |
commit | 809201325afb3d70e517d30a483b39251b1b6e27 (patch) | |
tree | 3e6ddc920dca714da86387abe482505839030906 /gcc/testsuite/gcc.c-torture/execute/cmpsi-2.c | |
parent | 51be162e8ebb3b173c7f93c7719a7bc6192cbc42 (diff) | |
download | gcc-809201325afb3d70e517d30a483b39251b1b6e27.zip gcc-809201325afb3d70e517d30a483b39251b1b6e27.tar.gz gcc-809201325afb3d70e517d30a483b39251b1b6e27.tar.bz2 |
Check in support for Xilinx MicroBlaze processor.
From-SVN: r164756
Diffstat (limited to 'gcc/testsuite/gcc.c-torture/execute/cmpsi-2.c')
-rw-r--r-- | gcc/testsuite/gcc.c-torture/execute/cmpsi-2.c | 199 |
1 files changed, 199 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.c-torture/execute/cmpsi-2.c b/gcc/testsuite/gcc.c-torture/execute/cmpsi-2.c new file mode 100644 index 0000000..cf58b9e7 --- /dev/null +++ b/gcc/testsuite/gcc.c-torture/execute/cmpsi-2.c @@ -0,0 +1,199 @@ +#define F 140 +#define T 13 + +feq (long x, long y) +{ + if (x == y) + return T; + else + return F; +} + +fne (long x, long y) +{ + if (x != y) + return T; + else + return F; +} + +flt (long x, long y) +{ + if (x < y) + return T; + else + return F; +} + +fge (long x, long y) +{ + if (x >= y) + return T; + else + return F; +} + +fgt (long x, long y) +{ + if (x > y) + return T; + else + return F; +} + +fle (long x, long y) +{ + if (x <= y) + return T; + else + return F; +} + +fltu (long x, long y) +{ + if (x < y) + return T; + else + return F; +} + +fgeu (long x, long y) +{ + if (x >= y) + return T; + else + return F; +} + +fgtu (long x, long y) +{ + if (x > y) + return T; + else + return F; +} + +fleu (long x, long y) +{ + if (x <= y) + return T; + else + return F; +} + +long args[] = +{ + 0L, + 1L, + -1L, + 0x7fffffffL, + 0x80000000L, + 0x80000001L, + 0x1A3F2373L, + 0x93850E92L +}; + +int correct_results[] = +{ + T, F, F, T, F, T, F, T, F, T, + F, T, T, F, F, T, T, F, F, T, + F, T, F, T, T, F, T, F, F, T, + F, T, T, F, F, T, T, F, F, T, + F, T, F, T, T, F, T, F, F, T, + F, T, F, T, T, F, T, F, F, T, + F, T, T, F, F, T, T, F, F, T, + F, T, F, T, T, F, T, F, F, T, + F, T, F, T, T, F, F, T, T, F, + T, F, F, T, F, T, F, T, F, T, + F, T, F, T, T, F, T, F, F, T, + F, T, T, F, F, T, T, F, F, T, + F, T, F, T, T, F, T, F, F, T, + F, T, F, T, T, F, T, F, F, T, + F, T, T, F, F, T, T, F, F, T, + F, T, F, T, T, F, T, F, F, T, + F, T, T, F, F, T, F, T, T, F, + F, T, T, F, F, T, F, T, T, F, + T, F, F, T, F, T, F, T, F, T, + F, T, T, F, F, T, F, T, T, F, + F, T, F, T, T, F, F, T, T, F, + F, T, F, T, T, F, F, T, T, F, + F, T, T, F, F, T, F, T, T, F, + F, T, F, T, T, F, F, T, T, F, + F, T, F, T, T, F, F, T, T, F, + F, T, F, T, T, F, F, T, T, F, + F, T, F, T, T, F, T, F, F, T, + T, F, F, T, F, T, F, T, F, T, + F, T, F, T, T, F, T, F, F, T, + F, T, F, T, T, F, T, F, F, T, + F, T, F, T, T, F, F, T, T, F, + F, T, F, T, T, F, T, F, F, T, + F, T, T, F, F, T, F, T, T, F, + F, T, T, F, F, T, F, T, T, F, + F, T, T, F, F, T, T, F, F, T, + F, T, T, F, F, T, F, T, T, F, + T, F, F, T, F, T, F, T, F, T, + F, T, T, F, F, T, T, F, F, T, + F, T, T, F, F, T, F, T, T, F, + F, T, T, F, F, T, T, F, F, T, + F, T, T, F, F, T, F, T, T, F, + F, T, T, F, F, T, F, T, T, F, + F, T, T, F, F, T, T, F, F, T, + F, T, T, F, F, T, F, T, T, F, + F, T, F, T, T, F, F, T, T, F, + T, F, F, T, F, T, F, T, F, T, + F, T, T, F, F, T, F, T, T, F, + F, T, T, F, F, T, T, F, F, T, + F, T, F, T, T, F, F, T, T, F, + F, T, F, T, T, F, F, T, T, F, + F, T, F, T, T, F, T, F, F, T, + F, T, T, F, F, T, T, F, F, T, + F, T, F, T, T, F, T, F, F, T, + F, T, F, T, T, F, T, F, F, T, + T, F, F, T, F, T, F, T, F, T, + F, T, F, T, T, F, T, F, F, T, + F, T, T, F, F, T, F, T, T, F, + F, T, T, F, F, T, F, T, T, F, + F, T, T, F, F, T, T, F, F, T, + F, T, T, F, F, T, F, T, T, F, + F, T, F, T, T, F, F, T, T, F, + F, T, F, T, T, F, F, T, T, F, + F, T, T, F, F, T, F, T, T, F, + T, F, F, T, F, T, F, T, F, T +}; + +int +main (void) +{ + int i, j, *res = correct_results; + + for (i = 0; i < 8; i++) + { + long arg0 = args[i]; + for (j = 0; j < 8; j++) + { + long arg1 = args[j]; + + if (feq (arg0, arg1) != *res++) + abort (); + if (fne (arg0, arg1) != *res++) + abort (); + if (flt (arg0, arg1) != *res++) + abort (); + if (fge (arg0, arg1) != *res++) + abort (); + if (fgt (arg0, arg1) != *res++) + abort (); + if (fle (arg0, arg1) != *res++) + abort (); + if (fltu (arg0, arg1) != *res++) + abort (); + if (fgeu (arg0, arg1) != *res++) + abort (); + if (fgtu (arg0, arg1) != *res++) + abort (); + if (fleu (arg0, arg1) != *res++) + abort (); + } + } + exit (0); +} |