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