aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/gcc/testsuite/gcc.dg/vect/pr51581-3.c
diff options
context:
space:
mode:
authorBen Cheng <bccheng@google.com>2014-03-25 22:37:19 -0700
committerBen Cheng <bccheng@google.com>2014-03-25 22:37:19 -0700
commit1bc5aee63eb72b341f506ad058502cd0361f0d10 (patch)
treec607e8252f3405424ff15bc2d00aa38dadbb2518 /gcc-4.9/gcc/testsuite/gcc.dg/vect/pr51581-3.c
parent283a0bf58fcf333c58a2a92c3ebbc41fb9eb1fdb (diff)
downloadtoolchain_gcc-1bc5aee63eb72b341f506ad058502cd0361f0d10.tar.gz
toolchain_gcc-1bc5aee63eb72b341f506ad058502cd0361f0d10.tar.bz2
toolchain_gcc-1bc5aee63eb72b341f506ad058502cd0361f0d10.zip
Initial checkin of GCC 4.9.0 from trunk (r208799).
Change-Id: I48a3c08bb98542aa215912a75f03c0890e497dba
Diffstat (limited to 'gcc-4.9/gcc/testsuite/gcc.dg/vect/pr51581-3.c')
-rw-r--r--gcc-4.9/gcc/testsuite/gcc.dg/vect/pr51581-3.c118
1 files changed, 118 insertions, 0 deletions
diff --git a/gcc-4.9/gcc/testsuite/gcc.dg/vect/pr51581-3.c b/gcc-4.9/gcc/testsuite/gcc.dg/vect/pr51581-3.c
new file mode 100644
index 000000000..a47813617
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/gcc.dg/vect/pr51581-3.c
@@ -0,0 +1,118 @@
+/* PR tree-optimization/51581 */
+
+#include "tree-vect.h"
+
+int a[8], b[8];
+unsigned int c[8], d[8];
+
+void
+f1 (void)
+{
+ a[0] = b[0] / 8;
+ a[1] = b[1] / 8;
+ a[2] = b[2] / 8;
+ a[3] = b[3] / 8;
+ a[4] = b[4] / 8;
+ a[5] = b[5] / 8;
+ a[6] = b[6] / 8;
+ a[7] = b[7] / 8;
+}
+
+void
+f2 (void)
+{
+ c[0] = d[0] / 3;
+ c[1] = d[1] / 3;
+ c[2] = d[2] / 3;
+ c[3] = d[3] / 3;
+ c[4] = d[4] / 3;
+ c[5] = d[5] / 3;
+ c[6] = d[6] / 3;
+ c[7] = d[7] / 3;
+}
+
+void
+f3 (void)
+{
+ a[0] = b[0] / 8;
+ a[1] = b[1] / 4;
+ a[2] = b[2] / 8;
+ a[3] = b[3] / 4;
+ a[4] = b[4] / 8;
+ a[5] = b[5] / 4;
+ a[6] = b[6] / 8;
+ a[7] = b[7] / 4;
+}
+
+void
+f4 (void)
+{
+ c[0] = d[0] / 3;
+ c[1] = d[1] / 5;
+ c[2] = d[2] / 3;
+ c[3] = d[3] / 5;
+ c[4] = d[4] / 3;
+ c[5] = d[5] / 5;
+ c[6] = d[6] / 3;
+ c[7] = d[7] / 5;
+}
+
+void
+f5 (void)
+{
+ a[0] = b[0] / 14;
+ a[1] = b[1] / 15;
+ a[2] = b[2] / 14;
+ a[3] = b[3] / 15;
+ a[4] = b[4] / 14;
+ a[5] = b[5] / 15;
+ a[6] = b[6] / 14;
+ a[7] = b[7] / 15;
+}
+
+void
+f6 (void)
+{
+ c[0] = d[0] / 6;
+ c[1] = d[1] / 5;
+ c[2] = d[2] / 6;
+ c[3] = d[3] / 5;
+ c[4] = d[4] / 6;
+ c[5] = d[5] / 5;
+ c[6] = d[6] / 13;
+ c[7] = d[7] / 5;
+}
+
+int
+main ()
+{
+ int i;
+ check_vect ();
+ asm ("");
+ for (i = 0; i < 8; i++)
+ {
+ asm ("");
+ b[i] = i - 4;
+ d[i] = i - 4;
+ }
+ f1 ();
+ f2 ();
+ for (i = 0; i < 8; i++)
+ if (a[i] != b[i] / 8 || c[i] != d[i] / 3)
+ abort ();
+ f3 ();
+ f4 ();
+ for (i = 0; i < 8; i+= 2)
+ if (a[i] != b[i] / 8 || a[i + 1] != b[i + 1] / 4
+ || c[i] != d[i] / 3 || c[i + 1] != d[i + 1] / 5)
+ abort ();
+ f5 ();
+ f6 ();
+ for (i = 0; i < 8; i+= 2)
+ if (a[i] != b[i] / 14 || a[i + 1] != b[i + 1] / 15
+ || c[i] != d[i] / (i == 6 ? 13 : 6) || c[i + 1] != d[i + 1] / 5)
+ abort ();
+ return 0;
+}
+
+/* { dg-final { cleanup-tree-dump "vect" } } */