aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.c-torture/execute/cmpsi-2.c
diff options
context:
space:
mode:
authorMichael Eager <eager@gcc.gnu.org>2010-09-30 18:21:57 +0000
committerMichael Eager <eager@gcc.gnu.org>2010-09-30 18:21:57 +0000
commit809201325afb3d70e517d30a483b39251b1b6e27 (patch)
tree3e6ddc920dca714da86387abe482505839030906 /gcc/testsuite/gcc.c-torture/execute/cmpsi-2.c
parent51be162e8ebb3b173c7f93c7719a7bc6192cbc42 (diff)
downloadgcc-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.c199
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);
+}