aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/gcc/testsuite/gcc.dg/autopar/pr46969.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc-4.9/gcc/testsuite/gcc.dg/autopar/pr46969.c')
-rw-r--r--gcc-4.9/gcc/testsuite/gcc.dg/autopar/pr46969.c31
1 files changed, 31 insertions, 0 deletions
diff --git a/gcc-4.9/gcc/testsuite/gcc.dg/autopar/pr46969.c b/gcc-4.9/gcc/testsuite/gcc.dg/autopar/pr46969.c
new file mode 100644
index 000000000..807ce4f92
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/gcc.dg/autopar/pr46969.c
@@ -0,0 +1,31 @@
+/* PR tree-optimization/46969 */
+/* { dg-do compile } */
+/* { dg-options "-O3 -ftree-parallelize-loops=2 -fcompare-debug" } */
+
+extern void abort (void);
+#define F(name) \
+int \
+name (unsigned char *x) \
+{ \
+ int i; \
+ unsigned int c, d, e; \
+ if (x != 0) \
+ { \
+ for (i = 0, d = 0, e = 0xFFFFFFFF; \
+ i < 64; \
+ i += (int) sizeof(unsigned int)) \
+ { \
+ c = *((unsigned int *)(&x[i])); \
+ d = d | c; \
+ e = e & c; \
+ } \
+ if (!((d == e) && ((d >> 8) == (e & 0x00FFFFFF)))) \
+ abort (); \
+ } \
+ return 0; \
+}
+F (foo0) F (foo1)
+F (foo2) F (foo3)
+F (foo4) F (foo5)
+F (foo6) F (foo7)
+F (foo8) F (foo9)