We're now able to vectorise the set-up loop: int p = power2 (fns[i].po2); for (int j = 0; j < N; j++) a[j] = ((p << 4) * j) / (N - 1) - (p << 5);
Rather than adjust the expected output for that, it seemed better to disable optimisation for the testing code. Tested on aarch64-linux-gnu (with and without SVE), arm-linux-gnueabihf and x86_64-linux-gnu. OK to install? Richard gcc/testsuite/ * gcc.dg/vect/vect-sdiv-pow2-1.c (main): Disable optimization. --- gcc/testsuite/gcc.dg/vect/vect-sdiv-pow2-1.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gcc/testsuite/gcc.dg/vect/vect-sdiv-pow2-1.c b/gcc/testsuite/gcc.dg/vect/vect-sdiv-pow2-1.c index be70bc6c47e..bf387133d01 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-sdiv-pow2-1.c +++ b/gcc/testsuite/gcc.dg/vect/vect-sdiv-pow2-1.c @@ -53,7 +53,7 @@ power2 (int x) #define N 50 -int +int __attribute__ ((optimize (0))) main (void) { int a[N], b[N], c[N];