The scan-assembler vclz....2s 34 test in here has been failing since r230091:

        * tree-vect-slp.c (vect_bb_vectorization_profitable_p): Make equal
        cost favor vectorized version.

which transforms a load of piecewise array assignments (in tree) into
2-element-vector writes to MEMs, and the first RUN_TEST for the V2SI cases
then constant-propagates because the INHIB_OPTIMIZATION (which clobbers the
data arrays) comes after the load from those arrays.

Hence, put the INHIB_OPTIMIZATION in the right place.

Moreover, the memory clobber does not affect the registers now holding the
values loaded anyway, so we can drop the second one altogether.

Tested on aarch64-none-linux-gnu, committed as r230421.

gcc/testsuite/ChangeLog:

        * gcc.target/aarch64/vclz.c: Correctly place INHIB_OPTIMIZATION.
---
 gcc/testsuite/gcc.target/aarch64/vclz.c | 11 +++--------
 1 file changed, 3 insertions(+), 8 deletions(-)

diff --git a/gcc/testsuite/gcc.target/aarch64/vclz.c 
b/gcc/testsuite/gcc.target/aarch64/vclz.c
index 455ba63..60494a8 100644
--- a/gcc/testsuite/gcc.target/aarch64/vclz.c
+++ b/gcc/testsuite/gcc.target/aarch64/vclz.c
@@ -67,18 +67,13 @@ extern void abort (void);
   CONCAT1 (vclz, POSTFIX (reg_len, data_len, is_signed))
 
 #define RUN_TEST(test_set, answ_set, reg_len, data_len, is_signed, n)  \
+  INHIB_OPTIMIZATION;                                                  \
   a = LOAD_INST (reg_len, data_len, is_signed) (test_set);             \
   b = LOAD_INST (reg_len, data_len, is_signed) (answ_set);             \
-  INHIB_OPTIMIZATION;                                                  \
   a = CLZ_INST (reg_len, data_len, is_signed) (a);                     \
   for (i = 0; i < n; i++)                                              \
-    {                                                                  \
-      INHIB_OPTIMIZATION;                                              \
-      if (a [i] != b [i])                                              \
-        {                                                              \
-          return 1;                                                    \
-        }                                                              \
-    }
+    if (a [i] != b [i])                                                        
\
+      return 1;
 
 int
 test_vclz_s8 ()
-- 
1.9.1

Reply via email to