https://gcc.gnu.org/g:01c854c2a3b7d7a3207c3e63caf4e8422174fe96
commit r16-4535-g01c854c2a3b7d7a3207c3e63caf4e8422174fe96 Author: Avinash Jayakar <[email protected]> Date: Tue Oct 21 15:03:41 2025 +0530 vect: Fix regression for PR104116 The commit gcc-16-4464-g6883d51304f added 30 new tests for testing vectorization of {FLOOR,MOD,ROUND}_{DIV,MOD}_EXPR. Few of them failed for certain targets due to the vectorization of runtime-check loop which was not intended. This patch disables optimization for all of the run-time check loops so that the count of vectorized loop is always 1. 2025-10-21 Avinash Jayakar <[email protected]> gcc/testsuite/ChangeLog: PR target/104116 * gcc.dg/vect/pr104116-ceil-div-2.c: disable vectorization. * gcc.dg/vect/pr104116-ceil-div-pow2.c: disable vectorization. * gcc.dg/vect/pr104116-ceil-div.c: disable vectorization. * gcc.dg/vect/pr104116-ceil-mod-2.c: disable vectorization. * gcc.dg/vect/pr104116-ceil-mod-pow2.c: disable vectorization. * gcc.dg/vect/pr104116-ceil-mod.c: disable vectorization. * gcc.dg/vect/pr104116-ceil-udiv-2.c: disable vectorization. * gcc.dg/vect/pr104116-ceil-udiv-pow2.c: disable vectorization. * gcc.dg/vect/pr104116-ceil-udiv.c: disable vectorization. * gcc.dg/vect/pr104116-ceil-umod-2.c: disable vectorization. * gcc.dg/vect/pr104116-ceil-umod-pow2.c: disable vectorization. * gcc.dg/vect/pr104116-ceil-umod.c: disable vectorization. * gcc.dg/vect/pr104116-floor-div-2.c: disable vectorization. * gcc.dg/vect/pr104116-floor-div-pow2.c: disable vectorization. * gcc.dg/vect/pr104116-floor-div.c: disable vectorization. * gcc.dg/vect/pr104116-floor-mod-2.c: disable vectorization. * gcc.dg/vect/pr104116-floor-mod-pow2.c: disable vectorization. * gcc.dg/vect/pr104116-floor-mod.c: disable vectorization. * gcc.dg/vect/pr104116-round-div-2.c: disable vectorization. * gcc.dg/vect/pr104116-round-div-pow2.c: disable vectorization. * gcc.dg/vect/pr104116-round-div.c: disable vectorization. * gcc.dg/vect/pr104116-round-mod-2.c: disable vectorization. * gcc.dg/vect/pr104116-round-mod-pow2.c: disable vectorization. * gcc.dg/vect/pr104116-round-mod.c: disable vectorization. * gcc.dg/vect/pr104116-round-udiv-2.c: disable vectorization. * gcc.dg/vect/pr104116-round-udiv-pow2.c: disable vectorization. * gcc.dg/vect/pr104116-round-udiv.c: disable vectorization. * gcc.dg/vect/pr104116-round-umod-2.c: disable vectorization. * gcc.dg/vect/pr104116-round-umod-pow2.c: disable vectorization. * gcc.dg/vect/pr104116-round-umod.c: disable vectorization. * gcc.dg/vect/pr104116.h (init_arr): use std idiom, correct indentation. (init_uarr): use std idiom. Diff: --- gcc/testsuite/gcc.dg/vect/pr104116-ceil-div-2.c | 1 + gcc/testsuite/gcc.dg/vect/pr104116-ceil-div-pow2.c | 1 + gcc/testsuite/gcc.dg/vect/pr104116-ceil-div.c | 1 + gcc/testsuite/gcc.dg/vect/pr104116-ceil-mod-2.c | 1 + gcc/testsuite/gcc.dg/vect/pr104116-ceil-mod-pow2.c | 1 + gcc/testsuite/gcc.dg/vect/pr104116-ceil-mod.c | 1 + gcc/testsuite/gcc.dg/vect/pr104116-ceil-udiv-2.c | 1 + gcc/testsuite/gcc.dg/vect/pr104116-ceil-udiv-pow2.c | 1 + gcc/testsuite/gcc.dg/vect/pr104116-ceil-udiv.c | 1 + gcc/testsuite/gcc.dg/vect/pr104116-ceil-umod-2.c | 1 + gcc/testsuite/gcc.dg/vect/pr104116-ceil-umod-pow2.c | 1 + gcc/testsuite/gcc.dg/vect/pr104116-ceil-umod.c | 1 + gcc/testsuite/gcc.dg/vect/pr104116-floor-div-2.c | 1 + gcc/testsuite/gcc.dg/vect/pr104116-floor-div-pow2.c | 1 + gcc/testsuite/gcc.dg/vect/pr104116-floor-div.c | 1 + gcc/testsuite/gcc.dg/vect/pr104116-floor-mod-2.c | 1 + gcc/testsuite/gcc.dg/vect/pr104116-floor-mod-pow2.c | 1 + gcc/testsuite/gcc.dg/vect/pr104116-floor-mod.c | 1 + gcc/testsuite/gcc.dg/vect/pr104116-round-div-2.c | 1 + gcc/testsuite/gcc.dg/vect/pr104116-round-div-pow2.c | 1 + gcc/testsuite/gcc.dg/vect/pr104116-round-div.c | 1 + gcc/testsuite/gcc.dg/vect/pr104116-round-mod-2.c | 1 + gcc/testsuite/gcc.dg/vect/pr104116-round-mod-pow2.c | 1 + gcc/testsuite/gcc.dg/vect/pr104116-round-mod.c | 1 + gcc/testsuite/gcc.dg/vect/pr104116-round-udiv-2.c | 1 + gcc/testsuite/gcc.dg/vect/pr104116-round-udiv-pow2.c | 1 + gcc/testsuite/gcc.dg/vect/pr104116-round-udiv.c | 1 + gcc/testsuite/gcc.dg/vect/pr104116-round-umod-2.c | 1 + gcc/testsuite/gcc.dg/vect/pr104116-round-umod-pow2.c | 1 + gcc/testsuite/gcc.dg/vect/pr104116-round-umod.c | 1 + gcc/testsuite/gcc.dg/vect/pr104116.h | 9 ++++----- 31 files changed, 34 insertions(+), 5 deletions(-) diff --git a/gcc/testsuite/gcc.dg/vect/pr104116-ceil-div-2.c b/gcc/testsuite/gcc.dg/vect/pr104116-ceil-div-2.c index 7078776a5771..cc0cb45bc407 100644 --- a/gcc/testsuite/gcc.dg/vect/pr104116-ceil-div-2.c +++ b/gcc/testsuite/gcc.dg/vect/pr104116-ceil-div-2.c @@ -16,6 +16,7 @@ int main (void) int *a = (int*)&arr; init_arr(a, N); div(a); + #pragma GCC novector for (int i=0; i<N; i++) { int expected = cl_div (i - N/2, 2); diff --git a/gcc/testsuite/gcc.dg/vect/pr104116-ceil-div-pow2.c b/gcc/testsuite/gcc.dg/vect/pr104116-ceil-div-pow2.c index 7aa9ae846274..8abd35350564 100644 --- a/gcc/testsuite/gcc.dg/vect/pr104116-ceil-div-pow2.c +++ b/gcc/testsuite/gcc.dg/vect/pr104116-ceil-div-pow2.c @@ -17,6 +17,7 @@ int main (void) int *a = (int*)&arr; init_arr(a, N); div(a); + #pragma GCC novector for (int i=0; i<N; i++) { int expected = cl_div (i - N/2, 8); diff --git a/gcc/testsuite/gcc.dg/vect/pr104116-ceil-div.c b/gcc/testsuite/gcc.dg/vect/pr104116-ceil-div.c index 6f903ffda925..e4a8d3062292 100644 --- a/gcc/testsuite/gcc.dg/vect/pr104116-ceil-div.c +++ b/gcc/testsuite/gcc.dg/vect/pr104116-ceil-div.c @@ -17,6 +17,7 @@ int main (void) int *a = (int*)&arr; init_arr(a, N); div(a); + #pragma GCC novector for (int i=0; i<N; i++) { int expected = cl_div (i - N/2, 19); diff --git a/gcc/testsuite/gcc.dg/vect/pr104116-ceil-mod-2.c b/gcc/testsuite/gcc.dg/vect/pr104116-ceil-mod-2.c index ee6dfb92de94..6e559ab4b068 100644 --- a/gcc/testsuite/gcc.dg/vect/pr104116-ceil-mod-2.c +++ b/gcc/testsuite/gcc.dg/vect/pr104116-ceil-mod-2.c @@ -17,6 +17,7 @@ int main (void) int *a = (int*)&arr; init_arr(a, N); div(a); + #pragma GCC novector for (int i=0; i<N; i++) { int expected = cl_mod (i - N/2, 2); diff --git a/gcc/testsuite/gcc.dg/vect/pr104116-ceil-mod-pow2.c b/gcc/testsuite/gcc.dg/vect/pr104116-ceil-mod-pow2.c index de409ea349a2..9fdbf2713c40 100644 --- a/gcc/testsuite/gcc.dg/vect/pr104116-ceil-mod-pow2.c +++ b/gcc/testsuite/gcc.dg/vect/pr104116-ceil-mod-pow2.c @@ -17,6 +17,7 @@ int main (void) unsigned int *a = (unsigned int*)&arr; init_arr(a, N); div(a); + #pragma GCC novector for (int i=0; i<N; i++) { unsigned int expected = cl_mod (i - N/2, 8); diff --git a/gcc/testsuite/gcc.dg/vect/pr104116-ceil-mod.c b/gcc/testsuite/gcc.dg/vect/pr104116-ceil-mod.c index f2ba93674611..3f852184d209 100644 --- a/gcc/testsuite/gcc.dg/vect/pr104116-ceil-mod.c +++ b/gcc/testsuite/gcc.dg/vect/pr104116-ceil-mod.c @@ -17,6 +17,7 @@ int main (void) int *a = (int*)&arr; init_arr(a, N); div(a); + #pragma GCC novector for (int i=0; i<N; i++) { int expected = cl_mod (i - N/2, 19); diff --git a/gcc/testsuite/gcc.dg/vect/pr104116-ceil-udiv-2.c b/gcc/testsuite/gcc.dg/vect/pr104116-ceil-udiv-2.c index db1f797c1da1..d8365c0d2c2c 100644 --- a/gcc/testsuite/gcc.dg/vect/pr104116-ceil-udiv-2.c +++ b/gcc/testsuite/gcc.dg/vect/pr104116-ceil-udiv-2.c @@ -16,6 +16,7 @@ int main (void) unsigned int *ua = (unsigned int*)↑ init_uarr(ua, N); udiv(ua); + #pragma GCC novector for (int i=0; i<N; i++) { unsigned int expected = cl_udiv (0xf0000000 + i, 2); diff --git a/gcc/testsuite/gcc.dg/vect/pr104116-ceil-udiv-pow2.c b/gcc/testsuite/gcc.dg/vect/pr104116-ceil-udiv-pow2.c index 06b4257d58f0..389b6c31a0ab 100644 --- a/gcc/testsuite/gcc.dg/vect/pr104116-ceil-udiv-pow2.c +++ b/gcc/testsuite/gcc.dg/vect/pr104116-ceil-udiv-pow2.c @@ -16,6 +16,7 @@ int main (void) unsigned int *ua = (unsigned int*)↑ init_uarr(ua, N); udiv(ua); + #pragma GCC novector for (int i=0; i<N; i++) { unsigned int expected = cl_udiv (0xf0000000 + i, 8); diff --git a/gcc/testsuite/gcc.dg/vect/pr104116-ceil-udiv.c b/gcc/testsuite/gcc.dg/vect/pr104116-ceil-udiv.c index ef6e8563ce01..54aa4fbf08a9 100644 --- a/gcc/testsuite/gcc.dg/vect/pr104116-ceil-udiv.c +++ b/gcc/testsuite/gcc.dg/vect/pr104116-ceil-udiv.c @@ -16,6 +16,7 @@ int main (void) unsigned int *ua = (unsigned int*)↑ init_uarr(ua, N); udiv(ua); + #pragma GCC novector for (int i=0; i<N; i++) { unsigned int expected = cl_udiv (0xf0000000 + i, 19); diff --git a/gcc/testsuite/gcc.dg/vect/pr104116-ceil-umod-2.c b/gcc/testsuite/gcc.dg/vect/pr104116-ceil-umod-2.c index 2d0a5dbaf77a..190b805da3d0 100644 --- a/gcc/testsuite/gcc.dg/vect/pr104116-ceil-umod-2.c +++ b/gcc/testsuite/gcc.dg/vect/pr104116-ceil-umod-2.c @@ -17,6 +17,7 @@ int main (void) unsigned int *a = (unsigned int*)↑ init_uarr(a, N); mod(a); + #pragma GCC novector for (int i=0; i<N; i++) { unsigned int expected = cl_umod (0xf0000000 + i, 2); diff --git a/gcc/testsuite/gcc.dg/vect/pr104116-ceil-umod-pow2.c b/gcc/testsuite/gcc.dg/vect/pr104116-ceil-umod-pow2.c index 2d0a5dbaf77a..190b805da3d0 100644 --- a/gcc/testsuite/gcc.dg/vect/pr104116-ceil-umod-pow2.c +++ b/gcc/testsuite/gcc.dg/vect/pr104116-ceil-umod-pow2.c @@ -17,6 +17,7 @@ int main (void) unsigned int *a = (unsigned int*)↑ init_uarr(a, N); mod(a); + #pragma GCC novector for (int i=0; i<N; i++) { unsigned int expected = cl_umod (0xf0000000 + i, 2); diff --git a/gcc/testsuite/gcc.dg/vect/pr104116-ceil-umod.c b/gcc/testsuite/gcc.dg/vect/pr104116-ceil-umod.c index 949a5091e36b..632fd46cdee3 100644 --- a/gcc/testsuite/gcc.dg/vect/pr104116-ceil-umod.c +++ b/gcc/testsuite/gcc.dg/vect/pr104116-ceil-umod.c @@ -17,6 +17,7 @@ int main (void) unsigned int *a = (unsigned int*)↑ init_uarr(a, N); mod(a); + #pragma GCC novector for (int i=0; i<N; i++) { unsigned int expected = cl_umod (0xf0000000 + i, 19); diff --git a/gcc/testsuite/gcc.dg/vect/pr104116-floor-div-2.c b/gcc/testsuite/gcc.dg/vect/pr104116-floor-div-2.c index d93e0513984a..b9db0d2d9eb8 100644 --- a/gcc/testsuite/gcc.dg/vect/pr104116-floor-div-2.c +++ b/gcc/testsuite/gcc.dg/vect/pr104116-floor-div-2.c @@ -16,6 +16,7 @@ int main (void) int * a = (int*)&arr; init_arr(a, N); div_2(a); + #pragma GCC novector for (int i=0; i<N; i++) { int expected = fl_div (i - N/2, 2); diff --git a/gcc/testsuite/gcc.dg/vect/pr104116-floor-div-pow2.c b/gcc/testsuite/gcc.dg/vect/pr104116-floor-div-pow2.c index 9e986a75dd17..5000c29b437b 100644 --- a/gcc/testsuite/gcc.dg/vect/pr104116-floor-div-pow2.c +++ b/gcc/testsuite/gcc.dg/vect/pr104116-floor-div-pow2.c @@ -16,6 +16,7 @@ int main (void) int * a = (int*)&arr; init_arr(a, N); div_2(a); + #pragma GCC novector for (int i=0; i<N; i++) { int expected = fl_div (i - N/2, 8); diff --git a/gcc/testsuite/gcc.dg/vect/pr104116-floor-div.c b/gcc/testsuite/gcc.dg/vect/pr104116-floor-div.c index 89dd270364cb..ed34249070ab 100644 --- a/gcc/testsuite/gcc.dg/vect/pr104116-floor-div.c +++ b/gcc/testsuite/gcc.dg/vect/pr104116-floor-div.c @@ -16,6 +16,7 @@ int main (void) int * a = (int*)&arr; init_arr(a, N); div_2(a); + #pragma GCC novector for (int i=0; i<N; i++) { int expected = fl_div (i - N/2, 19); diff --git a/gcc/testsuite/gcc.dg/vect/pr104116-floor-mod-2.c b/gcc/testsuite/gcc.dg/vect/pr104116-floor-mod-2.c index 0c5c1621e0db..62995bb55cc3 100644 --- a/gcc/testsuite/gcc.dg/vect/pr104116-floor-mod-2.c +++ b/gcc/testsuite/gcc.dg/vect/pr104116-floor-mod-2.c @@ -16,6 +16,7 @@ int main (void) int * a = (int*)&arr; init_arr(a, N); mod(a); + #pragma GCC novector for (int i=0; i<N; i++) { int expected = fl_mod (i - N/2, 2); diff --git a/gcc/testsuite/gcc.dg/vect/pr104116-floor-mod-pow2.c b/gcc/testsuite/gcc.dg/vect/pr104116-floor-mod-pow2.c index f3de1450000f..b92243dbc865 100644 --- a/gcc/testsuite/gcc.dg/vect/pr104116-floor-mod-pow2.c +++ b/gcc/testsuite/gcc.dg/vect/pr104116-floor-mod-pow2.c @@ -16,6 +16,7 @@ int main (void) int * a = (int*)&arr; init_arr(a, N); mod(a); + #pragma GCC novector for (int i=0; i<N; i++) { int expected = fl_mod (i - N/2, 8); diff --git a/gcc/testsuite/gcc.dg/vect/pr104116-floor-mod.c b/gcc/testsuite/gcc.dg/vect/pr104116-floor-mod.c index 3e6bbe978b5a..63843b9795de 100644 --- a/gcc/testsuite/gcc.dg/vect/pr104116-floor-mod.c +++ b/gcc/testsuite/gcc.dg/vect/pr104116-floor-mod.c @@ -16,6 +16,7 @@ int main (void) int * a = (int*)&arr; init_arr(a, N); mod(a); + #pragma GCC novector for (int i=0; i<N; i++) { int expected = fl_mod (i - N/2, 19); diff --git a/gcc/testsuite/gcc.dg/vect/pr104116-round-div-2.c b/gcc/testsuite/gcc.dg/vect/pr104116-round-div-2.c index c242ccb9b61c..c72866a9144d 100644 --- a/gcc/testsuite/gcc.dg/vect/pr104116-round-div-2.c +++ b/gcc/testsuite/gcc.dg/vect/pr104116-round-div-2.c @@ -16,6 +16,7 @@ int main (void) int * a = (int*)&arr; init_arr(a, N); div(a); + #pragma GCC novector for (int i=0; i<N; i++) { int expected = rd_div (i - N/2, 2); diff --git a/gcc/testsuite/gcc.dg/vect/pr104116-round-div-pow2.c b/gcc/testsuite/gcc.dg/vect/pr104116-round-div-pow2.c index 365c2c59866f..9e3e1ed2e094 100644 --- a/gcc/testsuite/gcc.dg/vect/pr104116-round-div-pow2.c +++ b/gcc/testsuite/gcc.dg/vect/pr104116-round-div-pow2.c @@ -16,6 +16,7 @@ int main (void) int * a = (int*)&arr; init_arr(a, N); div(a); + #pragma GCC novector for (int i=0; i<N; i++) { int expected = rd_div (i - N/2, 8); diff --git a/gcc/testsuite/gcc.dg/vect/pr104116-round-div.c b/gcc/testsuite/gcc.dg/vect/pr104116-round-div.c index 5c377d118ab6..5dd0f3746406 100644 --- a/gcc/testsuite/gcc.dg/vect/pr104116-round-div.c +++ b/gcc/testsuite/gcc.dg/vect/pr104116-round-div.c @@ -16,6 +16,7 @@ int main (void) int * a = (int*)&arr; init_arr(a, N); div(a); + #pragma GCC novector for (int i=0; i<N; i++) { int expected = rd_div (i - N/2, 19); diff --git a/gcc/testsuite/gcc.dg/vect/pr104116-round-mod-2.c b/gcc/testsuite/gcc.dg/vect/pr104116-round-mod-2.c index 6430b3ea9ade..fe8f8bb01967 100644 --- a/gcc/testsuite/gcc.dg/vect/pr104116-round-mod-2.c +++ b/gcc/testsuite/gcc.dg/vect/pr104116-round-mod-2.c @@ -16,6 +16,7 @@ int main (void) int * a = (int*)&arr; init_arr(a, N); mod(a); + #pragma GCC novector for (int i=0; i<N; i++) { int expected = rd_mod (i - N/2, 2); diff --git a/gcc/testsuite/gcc.dg/vect/pr104116-round-mod-pow2.c b/gcc/testsuite/gcc.dg/vect/pr104116-round-mod-pow2.c index 46c1789e9391..cd3bbda29a48 100644 --- a/gcc/testsuite/gcc.dg/vect/pr104116-round-mod-pow2.c +++ b/gcc/testsuite/gcc.dg/vect/pr104116-round-mod-pow2.c @@ -16,6 +16,7 @@ int main (void) int * a = (int*)&arr; init_arr(a, N); mod(a); + #pragma GCC novector for (int i=0; i<N; i++) { int expected = rd_mod (i - N/2, 8); diff --git a/gcc/testsuite/gcc.dg/vect/pr104116-round-mod.c b/gcc/testsuite/gcc.dg/vect/pr104116-round-mod.c index e7ca44e2f84b..e617623e1eec 100644 --- a/gcc/testsuite/gcc.dg/vect/pr104116-round-mod.c +++ b/gcc/testsuite/gcc.dg/vect/pr104116-round-mod.c @@ -16,6 +16,7 @@ int main (void) int * a = (int*)&arr; init_arr(a, N); mod(a); + #pragma GCC novector for (int i=0; i<N; i++) { int expected = rd_mod (i - N/2, 19); diff --git a/gcc/testsuite/gcc.dg/vect/pr104116-round-udiv-2.c b/gcc/testsuite/gcc.dg/vect/pr104116-round-udiv-2.c index 4d42f4e3c02c..de5e0a42da10 100644 --- a/gcc/testsuite/gcc.dg/vect/pr104116-round-udiv-2.c +++ b/gcc/testsuite/gcc.dg/vect/pr104116-round-udiv-2.c @@ -16,6 +16,7 @@ int main (void) unsigned int * a = (unsigned int*)↑ init_uarr(a, N); div(a); + #pragma GCC novector for (unsigned int i=0; i<N; i++) { unsigned int expected = rd_udiv (0xf0000000 + i, 2); diff --git a/gcc/testsuite/gcc.dg/vect/pr104116-round-udiv-pow2.c b/gcc/testsuite/gcc.dg/vect/pr104116-round-udiv-pow2.c index 137b249dc444..a802b97c28cd 100644 --- a/gcc/testsuite/gcc.dg/vect/pr104116-round-udiv-pow2.c +++ b/gcc/testsuite/gcc.dg/vect/pr104116-round-udiv-pow2.c @@ -16,6 +16,7 @@ int main (void) unsigned int * a = (unsigned int*)↑ init_uarr(a, N); div(a); + #pragma GCC novector for (unsigned int i=0; i<N; i++) { unsigned int expected = rd_udiv (0xf0000000 + i, 8); diff --git a/gcc/testsuite/gcc.dg/vect/pr104116-round-udiv.c b/gcc/testsuite/gcc.dg/vect/pr104116-round-udiv.c index 183a930aef90..7d5db9223b77 100644 --- a/gcc/testsuite/gcc.dg/vect/pr104116-round-udiv.c +++ b/gcc/testsuite/gcc.dg/vect/pr104116-round-udiv.c @@ -16,6 +16,7 @@ int main (void) unsigned int * a = (unsigned int*)↑ init_uarr(a, N); div(a); + #pragma GCC novector for (unsigned int i=0; i<N; i++) { unsigned int expected = rd_udiv (0xf0000000 + i, 19); diff --git a/gcc/testsuite/gcc.dg/vect/pr104116-round-umod-2.c b/gcc/testsuite/gcc.dg/vect/pr104116-round-umod-2.c index f321e0e5c2d3..155b26aea187 100644 --- a/gcc/testsuite/gcc.dg/vect/pr104116-round-umod-2.c +++ b/gcc/testsuite/gcc.dg/vect/pr104116-round-umod-2.c @@ -16,6 +16,7 @@ int main (void) unsigned int * a = (unsigned int*)↑ init_uarr(a, N); mod(a); + #pragma GCC novector for (unsigned int i=0; i<N; i++) { unsigned int expected = rd_umod (0xf0000000 + i, 2); diff --git a/gcc/testsuite/gcc.dg/vect/pr104116-round-umod-pow2.c b/gcc/testsuite/gcc.dg/vect/pr104116-round-umod-pow2.c index 041ecd17f562..1b4911a05924 100644 --- a/gcc/testsuite/gcc.dg/vect/pr104116-round-umod-pow2.c +++ b/gcc/testsuite/gcc.dg/vect/pr104116-round-umod-pow2.c @@ -16,6 +16,7 @@ int main (void) unsigned int * a = (unsigned int*)↑ init_uarr(a, N); mod(a); + #pragma GCC novector for (unsigned int i=0; i<N; i++) { unsigned int expected = rd_umod (0xf0000000 + i, 8); diff --git a/gcc/testsuite/gcc.dg/vect/pr104116-round-umod.c b/gcc/testsuite/gcc.dg/vect/pr104116-round-umod.c index b5ddad1d472d..3db289e7b57a 100644 --- a/gcc/testsuite/gcc.dg/vect/pr104116-round-umod.c +++ b/gcc/testsuite/gcc.dg/vect/pr104116-round-umod.c @@ -16,6 +16,7 @@ int main (void) unsigned int * a = (unsigned int*)↑ init_uarr(a, N); mod(a); + #pragma GCC novector for (unsigned int i=0; i<N; i++) { unsigned int expected = rd_umod (0xf0000000 + i, 19); diff --git a/gcc/testsuite/gcc.dg/vect/pr104116.h b/gcc/testsuite/gcc.dg/vect/pr104116.h index 6f14e4b31033..c0973535a8c6 100644 --- a/gcc/testsuite/gcc.dg/vect/pr104116.h +++ b/gcc/testsuite/gcc.dg/vect/pr104116.h @@ -82,17 +82,17 @@ NAME (unsigned int * a) \ #define N 1024 int arr[N]; -__attribute__((optimize("O0"))) void init_arr (int *a, int n) { - for (int i=0; i<n; i++) - a[i] = i - n/2; + #pragma GCC novector + for (int i=0; i<n; i++) + a[i] = i - n/2; } unsigned int uarr[N]; -__attribute__((optimize("O0"))) void init_uarr (unsigned int *a, int n) { + #pragma GCC novector for (unsigned int i=0; i<n; i++) a[i] = 0xf0000000 + i; } @@ -141,7 +141,6 @@ int fl_div (int x, int y) return q; } - int fl_mod (int x, int y) { int r = x % y;
