Hi,
This should fix the regression failures in aarch64, x86_64 targets reported.
Thanks and regards,
Avinash Jayakar
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.
---
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 7078776a577..cc0cb45bc40 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 7aa9ae84627..8abd3535056 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 6f903ffda92..e4a8d306229 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 ee6dfb92de9..6e559ab4b06 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 de409ea349a..9fdbf2713c4 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 f2ba9367461..3f852184d20 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 db1f797c1da..d8365c0d2c2 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 06b4257d58f..389b6c31a0a 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 ef6e8563ce0..54aa4fbf08a 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 2d0a5dbaf77..190b805da3d 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 2d0a5dbaf77..190b805da3d 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 949a5091e36..632fd46cdee 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 d93e0513984..b9db0d2d9eb 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 9e986a75dd1..5000c29b437 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 89dd270364c..ed34249070a 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 0c5c1621e0d..62995bb55cc 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 f3de1450000..b92243dbc86 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 3e6bbe978b5..63843b9795d 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 c242ccb9b61..c72866a9144 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 365c2c59866..9e3e1ed2e09 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 5c377d118ab..5dd0f374640 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 6430b3ea9ad..fe8f8bb0196 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 46c1789e939..cd3bbda29a4 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 e7ca44e2f84..e617623e1ee 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 4d42f4e3c02..de5e0a42da1 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 137b249dc44..a802b97c28c 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 183a930aef9..7d5db9223b7 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 f321e0e5c2d..155b26aea18 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 041ecd17f56..1b4911a0592 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 b5ddad1d472..3db289e7b57 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 6f14e4b3103..c0973535a8c 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;
--
2.51.0