i386-cadd.c: New test.
authorJan Hubicka <jh@suse.cz>
Wed, 8 Jan 2003 11:51:42 +0000 (12:51 +0100)
committerJan Hubicka <hubicka@gcc.gnu.org>
Wed, 8 Jan 2003 11:51:42 +0000 (11:51 +0000)
* gcc.dg/i386-cadd.c: New test.
* gcc.dg/i386-cmov4.c: Likewise.

From-SVN: r61039

gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/i386-cadd.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/i386-cmov4.c [new file with mode: 0644]

index 2ae706048873ad06f5bb2b3857d49c1d3688655f..ba32c50072b7f77dab348ae1010dc3ac1d7b36d1 100644 (file)
@@ -1,3 +1,8 @@
+Wed Jan  8 11:41:47 CET 2003  Jan Hubicka  <jh@suse.cz>
+
+       * gcc.dg/i386-cadd.c: New test.
+       * gcc.dg/i386-cmov4.c: Likewise.
+
 2003-01-06  Mark Mitchell  <mark@codesourcery.com>
 
        PR c++/9165
diff --git a/gcc/testsuite/gcc.dg/i386-cadd.c b/gcc/testsuite/gcc.dg/i386-cadd.c
new file mode 100644 (file)
index 0000000..46bfd22
--- /dev/null
@@ -0,0 +1,22 @@
+/* { dg-do compile { target i?86-*-* x86_64-*-* } } */
+/* { dg-options "-O2 -march=athlon" } */
+/* { dg-final { scan-assembler "sbb" } } */
+
+/* Conditional increment is best done using sbb $-1, val.  */
+int t[]={0,0,0,0,1,1,1,1,1,1};
+q()
+{
+  int sum=0;
+  int i;
+  for (i=0;i<10;i++)
+    if (t[i])
+       sum++;
+  if (sum != 6)
+    abort ();
+}
+main()
+{
+  int i;
+  for (i=0;i<10000000;i++)
+    q();
+}
diff --git a/gcc/testsuite/gcc.dg/i386-cmov4.c b/gcc/testsuite/gcc.dg/i386-cmov4.c
new file mode 100644 (file)
index 0000000..1601f22
--- /dev/null
@@ -0,0 +1,19 @@
+/* { dg-do compile { target i?86-*-* x86_64-*-* } } */
+/* { dg-options "-O2 -march=athlon" } */
+/* { dg-final { scan-assembler "cmov" } } */
+
+/* Verify that if conversion happends for memory references.  */
+int ARCHnodes;
+int *nodekind;
+float *nodekindf;
+t()
+{
+int i;
+/* Redefine nodekind to be 1 for all surface nodes */
+
+  for (i = 0; i < ARCHnodes; i++) {
+    nodekind[i] = (int) nodekindf[i];
+    if (nodekind[i] == 3)
+      nodekind[i] = 1;
+  }
+}