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*)&uarr;
>    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*)&uarr;
>    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*)&uarr;
>    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*)&uarr;
>    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*)&uarr;
>    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*)&uarr;
>    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*)&uarr;
>    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*)&uarr;
>    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*)&uarr;
>    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*)&uarr;
>    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*)&uarr;
>    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*)&uarr;
>    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)

Reply via email to