From 3a62950e85e0940e6bd78752ea09fb68f41feda2 Mon Sep 17 00:00:00 2001
From: hubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Wed, 8 Jan 2003 11:51:42 +0000
Subject: [PATCH] 	* gcc.dg/i386-cadd.c: New test. 	*
 gcc.dg/i386-cmov4.c: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@61039 138bc75d-0d04-0410-961f-82ee72b054a4
---
 gcc/testsuite/ChangeLog           |  5 +++++
 gcc/testsuite/gcc.dg/i386-cadd.c  | 22 ++++++++++++++++++++++
 gcc/testsuite/gcc.dg/i386-cmov4.c | 19 +++++++++++++++++++
 3 files changed, 46 insertions(+)
 create mode 100644 gcc/testsuite/gcc.dg/i386-cadd.c
 create mode 100644 gcc/testsuite/gcc.dg/i386-cmov4.c

diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 2ae706048873..ba32c50072b7 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -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
index 000000000000..46bfd221e076
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/i386-cadd.c
@@ -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
index 000000000000..1601f2251b52
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/i386-cmov4.c
@@ -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;
+  }
+}
-- 
GitLab