diff mbox

[Obvious,AArch64] Fix gcc.target/aarch64/vclz.c

Message ID 1447677756-28680-1-git-send-email-alan.lawrence@arm.com
State New
Headers show

Commit Message

Alan Lawrence Nov. 16, 2015, 12:42 p.m. UTC
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 mbox

Patch

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 ()