Hi All,

The testcase for PR/tree-optimization 88903 hits
undefined behavior for the overwide shifts.  This is
causing the testcases to fail for all Arm platforms.

This updates the testcase to add an explicit & such
that the behavior is consistent.

Regtested on aarch64-none-linux-gnu and no issues.

Ok for trunk?

Thanks,
Tamar

gcc/testsuite/ChangeLog:

2019-01-21  Tamar Christina  <tamar.christ...@arm.com>

        PR/tree-optimization 88903
        * gcc.dg/vect/pr88903-1.c: Add explicit &.

-- 
diff --git a/gcc/testsuite/gcc.dg/vect/pr88903-1.c b/gcc/testsuite/gcc.dg/vect/pr88903-1.c
index dead2b5e723eaff77fa1edb6ae32d12b005c680e..77dbfd47c91be8cce0edde8b09b7b90d40268306 100644
--- a/gcc/testsuite/gcc.dg/vect/pr88903-1.c
+++ b/gcc/testsuite/gcc.dg/vect/pr88903-1.c
@@ -7,8 +7,8 @@ foo()
 {
   for (int i = 0; i < 512; ++i)
     {
-      x[2*i] = x[2*i] << (i+1);
-      x[2*i+1] = x[2*i+1] << (i+1);
+      x[2*i] = x[2*i] << ((i+1) & 31);
+      x[2*i+1] = x[2*i+1] << ((i+1) & 31);
     }
 }
 
@@ -20,7 +20,7 @@ main()
     x[i] = i;
   foo ();
   for (int i = 0; i < 1024; ++i)
-    if (x[i] != i << (i/2+1))
+    if (x[i] != i << ((i/2+1) & 31))
       __builtin_abort ();
   return 0;
 }

Reply via email to