OSDN Git Service

* gcc.dg/20000614-1.c: New test.
authorjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 15 Jun 2000 15:25:52 +0000 (15:25 +0000)
committerjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 15 Jun 2000 15:25:52 +0000 (15:25 +0000)
* gcc.dg/20000614-2.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@34564 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/20000614-1.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/20000614-2.c [new file with mode: 0644]

index 64c98be..24377d2 100644 (file)
@@ -1,3 +1,8 @@
+2000-06-14  Jakub Jelinek  <jakub@redhat.com>
+
+       * gcc.dg/20000614-1.c: New test.
+       * gcc.dg/20000614-2.c: New test.
+
 2000-06-14  Hans-Peter Nilsson  <hp@axis.com>
 
        * g++.old-deja/g++.other/inline12.C: New test.
diff --git a/gcc/testsuite/gcc.dg/20000614-1.c b/gcc/testsuite/gcc.dg/20000614-1.c
new file mode 100644 (file)
index 0000000..62d9b29
--- /dev/null
@@ -0,0 +1,23 @@
+/* { dg-do run { target i?86-*-* } } */
+/* { dg-options "-O2" } */
+
+void bar(char *p)
+{
+}
+
+static inline void foo (unsigned long base, unsigned char val)
+{
+  val ^= (1<<2);
+  bar (val & (1<<5) ? "1" : "2");
+  bar (val & (1<<4) ? "1" : "2");
+  bar (val & (1<<3) ? "1" : "2");
+  bar (val & (1<<2) ? "1" : "2");
+  bar (val & (1<<1) ? "1" : "2");
+  bar (val & (1<<0) ? "1" : "2");
+  asm volatile ("": :"a" (val), "d" (base));
+}
+
+int main (void)
+{
+  foo (23, 1);
+}
diff --git a/gcc/testsuite/gcc.dg/20000614-2.c b/gcc/testsuite/gcc.dg/20000614-2.c
new file mode 100644 (file)
index 0000000..18d42ec
--- /dev/null
@@ -0,0 +1,27 @@
+/* { dg-do run { target i?86-*-* } } */
+/* { dg-options "-O2 -fno-strength-reduce" } */
+
+void bar(char *p)
+{
+}
+
+int main()
+{
+  union {
+    unsigned int val;
+    unsigned char p[4];
+  } serial;
+  char buf[8];
+  int i;
+
+  serial.val = 0;
+  bar(buf);
+  for(i = 0; i < 8; i += 4)
+    {
+      serial.p [0] += buf [i + 0];
+      serial.p [1] += buf [i + 1];
+      serial.p [2] += buf [i + 2];
+      serial.p [3] += buf [i + 3];
+    }
+  return serial.val;
+}