On Tue, 21 Oct 2025, Avinash Jayakar wrote:
> Hi,
>
> As suggested in patch v1, I have updated the tests to use the "#pragma
> GCC novector" for all unwanted loop vectorization. Ok for trunk?
>
> Thanks and regards,
> Avinash Jayakar
>
> Changes from v1:
> - Use standard idiom to disable unwanted loop vect in all tests.
> - Minor indentation correction.
>
> 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.
OK.
Richard.
> 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;
>
--
Richard Biener <[email protected]>
SUSE Software Solutions Germany GmbH,
Frankenstrasse 146, 90461 Nuernberg, Germany;
GF: Ivo Totev, Andrew McDonald, Werner Knoblich; (HRB 36809, AG Nuernberg)