https://gcc.gnu.org/g:ebe7cd9f2833a79877fbc56829c4f37a518a9b1d
commit r15-7711-gebe7cd9f2833a79877fbc56829c4f37a518a9b1d Author: Tamar Christina <tamar.christ...@arm.com> Date: Wed Feb 26 07:31:28 2025 +0000 testsuite: Add pragma novector to more tests [PR118464] These loops will now vectorize the entry finding loops. As such we get more failures because they were not expecting to be vectorized. Fixed by adding #pragma GCC novector. gcc/testsuite/ChangeLog: PR tree-optimization/118464 PR tree-optimization/116855 * g++.dg/ext/pragma-unroll-lambda-lto.C: Add pragma novector. * gcc.dg/tree-ssa/gen-vect-2.c: Likewise. * gcc.dg/tree-ssa/gen-vect-25.c: Likewise. * gcc.dg/tree-ssa/gen-vect-32.c: Likewise. * gcc.dg/tree-ssa/ivopt_mult_2g.c: Likewise. * gcc.dg/tree-ssa/ivopts-5.c: Likewise. * gcc.dg/tree-ssa/ivopts-6.c: Likewise. * gcc.dg/tree-ssa/ivopts-7.c: Likewise. * gcc.dg/tree-ssa/ivopts-8.c: Likewise. * gcc.dg/tree-ssa/ivopts-9.c: Likewise. * gcc.dg/tree-ssa/predcom-dse-1.c: Likewise. * gcc.dg/tree-ssa/predcom-dse-10.c: Likewise. * gcc.dg/tree-ssa/predcom-dse-11.c: Likewise. * gcc.dg/tree-ssa/predcom-dse-12.c: Likewise. * gcc.dg/tree-ssa/predcom-dse-2.c: Likewise. * gcc.dg/tree-ssa/predcom-dse-3.c: Likewise. * gcc.dg/tree-ssa/predcom-dse-4.c: Likewise. * gcc.dg/tree-ssa/predcom-dse-5.c: Likewise. * gcc.dg/tree-ssa/predcom-dse-6.c: Likewise. * gcc.dg/tree-ssa/predcom-dse-7.c: Likewise. * gcc.dg/tree-ssa/predcom-dse-8.c: Likewise. * gcc.dg/tree-ssa/predcom-dse-9.c: Likewise. * gcc.target/i386/pr90178.c: Likewise. Diff: --- gcc/testsuite/g++.dg/ext/pragma-unroll-lambda-lto.C | 1 + gcc/testsuite/gcc.dg/tree-ssa/gen-vect-2.c | 1 + gcc/testsuite/gcc.dg/tree-ssa/gen-vect-25.c | 2 ++ gcc/testsuite/gcc.dg/tree-ssa/gen-vect-32.c | 1 + gcc/testsuite/gcc.dg/tree-ssa/ivopt_mult_2g.c | 2 +- gcc/testsuite/gcc.dg/tree-ssa/ivopts-5.c | 1 + gcc/testsuite/gcc.dg/tree-ssa/ivopts-6.c | 1 + gcc/testsuite/gcc.dg/tree-ssa/ivopts-7.c | 1 + gcc/testsuite/gcc.dg/tree-ssa/ivopts-8.c | 1 + gcc/testsuite/gcc.dg/tree-ssa/ivopts-9.c | 1 + gcc/testsuite/gcc.dg/tree-ssa/predcom-dse-1.c | 1 + gcc/testsuite/gcc.dg/tree-ssa/predcom-dse-10.c | 1 + gcc/testsuite/gcc.dg/tree-ssa/predcom-dse-11.c | 1 + gcc/testsuite/gcc.dg/tree-ssa/predcom-dse-12.c | 1 + gcc/testsuite/gcc.dg/tree-ssa/predcom-dse-2.c | 1 + gcc/testsuite/gcc.dg/tree-ssa/predcom-dse-3.c | 1 + gcc/testsuite/gcc.dg/tree-ssa/predcom-dse-4.c | 1 + gcc/testsuite/gcc.dg/tree-ssa/predcom-dse-5.c | 1 + gcc/testsuite/gcc.dg/tree-ssa/predcom-dse-6.c | 1 + gcc/testsuite/gcc.dg/tree-ssa/predcom-dse-7.c | 1 + gcc/testsuite/gcc.dg/tree-ssa/predcom-dse-8.c | 1 + gcc/testsuite/gcc.dg/tree-ssa/predcom-dse-9.c | 1 + gcc/testsuite/gcc.target/i386/pr90178.c | 1 + 23 files changed, 24 insertions(+), 1 deletion(-) diff --git a/gcc/testsuite/g++.dg/ext/pragma-unroll-lambda-lto.C b/gcc/testsuite/g++.dg/ext/pragma-unroll-lambda-lto.C index 0db57c8d3a01..5980bf316899 100644 --- a/gcc/testsuite/g++.dg/ext/pragma-unroll-lambda-lto.C +++ b/gcc/testsuite/g++.dg/ext/pragma-unroll-lambda-lto.C @@ -10,6 +10,7 @@ inline Iter my_find(Iter first, Iter last, Pred pred) { #pragma GCC unroll 4 +#pragma GCC novector while (first != last && !pred(*first)) ++first; return first; diff --git a/gcc/testsuite/gcc.dg/tree-ssa/gen-vect-2.c b/gcc/testsuite/gcc.dg/tree-ssa/gen-vect-2.c index a35999a172ac..00fc8f01991c 100644 --- a/gcc/testsuite/gcc.dg/tree-ssa/gen-vect-2.c +++ b/gcc/testsuite/gcc.dg/tree-ssa/gen-vect-2.c @@ -29,6 +29,7 @@ int main () } /* check results: */ +#pragma GCC novector for (i = 0; i < N; i++) { if (ca[i] != cb[i]) diff --git a/gcc/testsuite/gcc.dg/tree-ssa/gen-vect-25.c b/gcc/testsuite/gcc.dg/tree-ssa/gen-vect-25.c index 9f14a54c4137..99d5e6231ff0 100644 --- a/gcc/testsuite/gcc.dg/tree-ssa/gen-vect-25.c +++ b/gcc/testsuite/gcc.dg/tree-ssa/gen-vect-25.c @@ -27,6 +27,7 @@ int main_1 (int n, int *p) } /* check results: */ +#pragma GCC novector for (i = 0; i < N; i++) { if (ia[i] != n) @@ -40,6 +41,7 @@ int main_1 (int n, int *p) } /* check results: */ +#pragma GCC novector for (i = 0; i < N; i++) { if (ib[i] != k) diff --git a/gcc/testsuite/gcc.dg/tree-ssa/gen-vect-32.c b/gcc/testsuite/gcc.dg/tree-ssa/gen-vect-32.c index 62d2b5049fd9..1202ec326c7e 100644 --- a/gcc/testsuite/gcc.dg/tree-ssa/gen-vect-32.c +++ b/gcc/testsuite/gcc.dg/tree-ssa/gen-vect-32.c @@ -23,6 +23,7 @@ int main () } /* check results: */ +#pragma GCC novector for (i = 0; i < N; i++) { if (s.ca[i] != 5) diff --git a/gcc/testsuite/gcc.dg/tree-ssa/ivopt_mult_2g.c b/gcc/testsuite/gcc.dg/tree-ssa/ivopt_mult_2g.c index dd06e598f7f4..b79bd10585f5 100644 --- a/gcc/testsuite/gcc.dg/tree-ssa/ivopt_mult_2g.c +++ b/gcc/testsuite/gcc.dg/tree-ssa/ivopt_mult_2g.c @@ -1,5 +1,5 @@ /* { dg-do compile { target {{ i?86-*-* x86_64-*-* } && lp64 } } } */ -/* { dg-options "-O2 -fgimple -m64 -fdump-tree-ivopts-details" } */ +/* { dg-options "-O2 -fgimple -m64 -fdump-tree-ivopts-details -fno-tree-vectorize" } */ /* Exit tests 'i < N1' and 'p2 > p_limit2' can be replaced, so * two ivs i and p2 can be eliminate. */ diff --git a/gcc/testsuite/gcc.dg/tree-ssa/ivopts-5.c b/gcc/testsuite/gcc.dg/tree-ssa/ivopts-5.c index a6af497f4bf7..7b9615f07f3c 100644 --- a/gcc/testsuite/gcc.dg/tree-ssa/ivopts-5.c +++ b/gcc/testsuite/gcc.dg/tree-ssa/ivopts-5.c @@ -5,6 +5,7 @@ int* foo (int* mem, int sz, int val) { int i; +#pragma GCC novector for (i = 0; i < sz; i++) if (mem[i] == val) return &mem[i]; diff --git a/gcc/testsuite/gcc.dg/tree-ssa/ivopts-6.c b/gcc/testsuite/gcc.dg/tree-ssa/ivopts-6.c index 8383154f99f2..08304293140a 100644 --- a/gcc/testsuite/gcc.dg/tree-ssa/ivopts-6.c +++ b/gcc/testsuite/gcc.dg/tree-ssa/ivopts-6.c @@ -5,6 +5,7 @@ int* foo (int* mem, int sz, int val) { int i; +#pragma GCC novector for (i = 0; i != sz; i++) if (mem[i] == val) return &mem[i]; diff --git a/gcc/testsuite/gcc.dg/tree-ssa/ivopts-7.c b/gcc/testsuite/gcc.dg/tree-ssa/ivopts-7.c index 44f5603d4f5b..03160f234f74 100644 --- a/gcc/testsuite/gcc.dg/tree-ssa/ivopts-7.c +++ b/gcc/testsuite/gcc.dg/tree-ssa/ivopts-7.c @@ -5,6 +5,7 @@ int* foo (int* mem, int beg, int end, int val) { int i; +#pragma GCC novector for (i = beg; i < end; i++) if (mem[i] == val) return &mem[i]; diff --git a/gcc/testsuite/gcc.dg/tree-ssa/ivopts-8.c b/gcc/testsuite/gcc.dg/tree-ssa/ivopts-8.c index b2556eaac0d0..a7fd3c9de374 100644 --- a/gcc/testsuite/gcc.dg/tree-ssa/ivopts-8.c +++ b/gcc/testsuite/gcc.dg/tree-ssa/ivopts-8.c @@ -5,6 +5,7 @@ int* foo (int* mem, char sz, int val) { char i; +#pragma GCC novector for (i = 0; i < sz; i++) if (mem[i] == val) return &mem[i]; diff --git a/gcc/testsuite/gcc.dg/tree-ssa/ivopts-9.c b/gcc/testsuite/gcc.dg/tree-ssa/ivopts-9.c index d26d994f9bd2..fb9656b88d7b 100644 --- a/gcc/testsuite/gcc.dg/tree-ssa/ivopts-9.c +++ b/gcc/testsuite/gcc.dg/tree-ssa/ivopts-9.c @@ -5,6 +5,7 @@ int* foo (int* mem, unsigned char sz, int val) { unsigned char i; +#pragma GCC novector for (i = 0; i < sz; i++) if (mem[i] == val) return &mem[i]; diff --git a/gcc/testsuite/gcc.dg/tree-ssa/predcom-dse-1.c b/gcc/testsuite/gcc.dg/tree-ssa/predcom-dse-1.c index a0a04a08c61d..b660f9d25842 100644 --- a/gcc/testsuite/gcc.dg/tree-ssa/predcom-dse-1.c +++ b/gcc/testsuite/gcc.dg/tree-ssa/predcom-dse-1.c @@ -32,6 +32,7 @@ void check (int *a, int *res, int len) { int i; +#pragma GCC novector for (i = 0; i < len; i++) if (a[i] != res[i]) abort (); diff --git a/gcc/testsuite/gcc.dg/tree-ssa/predcom-dse-10.c b/gcc/testsuite/gcc.dg/tree-ssa/predcom-dse-10.c index f770a8ad812a..8e5a3a434986 100644 --- a/gcc/testsuite/gcc.dg/tree-ssa/predcom-dse-10.c +++ b/gcc/testsuite/gcc.dg/tree-ssa/predcom-dse-10.c @@ -23,6 +23,7 @@ void check (int *a, int *res, int len) { int i; +#pragma GCC novector for (i = 0; i < len; i++) if (a[i] != res[i]) abort (); diff --git a/gcc/testsuite/gcc.dg/tree-ssa/predcom-dse-11.c b/gcc/testsuite/gcc.dg/tree-ssa/predcom-dse-11.c index ed2b96a0d1a4..fd56fd9747e3 100644 --- a/gcc/testsuite/gcc.dg/tree-ssa/predcom-dse-11.c +++ b/gcc/testsuite/gcc.dg/tree-ssa/predcom-dse-11.c @@ -29,6 +29,7 @@ void check (int *a, int *res, int len, int sum, int val) if (sum != val) abort (); +#pragma GCC novector for (i = 0; i < len; i++) if (a[i] != res[i]) abort (); diff --git a/gcc/testsuite/gcc.dg/tree-ssa/predcom-dse-12.c b/gcc/testsuite/gcc.dg/tree-ssa/predcom-dse-12.c index 2487c1c8205a..5eac905aff87 100644 --- a/gcc/testsuite/gcc.dg/tree-ssa/predcom-dse-12.c +++ b/gcc/testsuite/gcc.dg/tree-ssa/predcom-dse-12.c @@ -37,6 +37,7 @@ void check (int *a, int *res, int len, int sval) if (sum != sval) abort (); +#pragma GCC novector for (i = 0; i < len; i++) if (a[i] != res[i]) abort (); diff --git a/gcc/testsuite/gcc.dg/tree-ssa/predcom-dse-2.c b/gcc/testsuite/gcc.dg/tree-ssa/predcom-dse-2.c index 020ca705790d..801acad33e9d 100644 --- a/gcc/testsuite/gcc.dg/tree-ssa/predcom-dse-2.c +++ b/gcc/testsuite/gcc.dg/tree-ssa/predcom-dse-2.c @@ -32,6 +32,7 @@ void check (int *a, int *res, int len) { int i; +#pragma GCC novector for (i = 0; i < len; i++) if (a[i] != res[i]) abort (); diff --git a/gcc/testsuite/gcc.dg/tree-ssa/predcom-dse-3.c b/gcc/testsuite/gcc.dg/tree-ssa/predcom-dse-3.c index 667cc333d9f2..8b82bdbc0c92 100644 --- a/gcc/testsuite/gcc.dg/tree-ssa/predcom-dse-3.c +++ b/gcc/testsuite/gcc.dg/tree-ssa/predcom-dse-3.c @@ -40,6 +40,7 @@ void check (int *a, int *res, int len) { int i; +#pragma GCC novector for (i = 0; i < len; i++) if (a[i] != res[i]) abort (); diff --git a/gcc/testsuite/gcc.dg/tree-ssa/predcom-dse-4.c b/gcc/testsuite/gcc.dg/tree-ssa/predcom-dse-4.c index 8118461af0b6..0d64bc72f823 100644 --- a/gcc/testsuite/gcc.dg/tree-ssa/predcom-dse-4.c +++ b/gcc/testsuite/gcc.dg/tree-ssa/predcom-dse-4.c @@ -31,6 +31,7 @@ void check (int *a, int *res, int len) { int i; +#pragma GCC novector for (i = 0; i < len; i++) if (a[i] != res[i]) abort (); diff --git a/gcc/testsuite/gcc.dg/tree-ssa/predcom-dse-5.c b/gcc/testsuite/gcc.dg/tree-ssa/predcom-dse-5.c index 03fa646661e2..7db3bca3b2df 100644 --- a/gcc/testsuite/gcc.dg/tree-ssa/predcom-dse-5.c +++ b/gcc/testsuite/gcc.dg/tree-ssa/predcom-dse-5.c @@ -33,6 +33,7 @@ void check (int *a, int *res, int len) { int i; +#pragma GCC novector for (i = 0; i < len; i++) if (a[i] != res[i]) abort (); diff --git a/gcc/testsuite/gcc.dg/tree-ssa/predcom-dse-6.c b/gcc/testsuite/gcc.dg/tree-ssa/predcom-dse-6.c index ab2fd403d300..1267bae5f1c4 100644 --- a/gcc/testsuite/gcc.dg/tree-ssa/predcom-dse-6.c +++ b/gcc/testsuite/gcc.dg/tree-ssa/predcom-dse-6.c @@ -35,6 +35,7 @@ void check (int *a, int *res, int len) { int i; +#pragma GCC novector for (i = 0; i < len; i++) if (a[i] != res[i]) abort (); diff --git a/gcc/testsuite/gcc.dg/tree-ssa/predcom-dse-7.c b/gcc/testsuite/gcc.dg/tree-ssa/predcom-dse-7.c index c746ebd71556..cfe44a06ce4a 100644 --- a/gcc/testsuite/gcc.dg/tree-ssa/predcom-dse-7.c +++ b/gcc/testsuite/gcc.dg/tree-ssa/predcom-dse-7.c @@ -33,6 +33,7 @@ void check (int *a, int *res, int len) { int i; +#pragma GCC novector for (i = 0; i < len; i++) if (a[i] != res[i]) abort (); diff --git a/gcc/testsuite/gcc.dg/tree-ssa/predcom-dse-8.c b/gcc/testsuite/gcc.dg/tree-ssa/predcom-dse-8.c index 6c4e9afa487e..646e43d9aad2 100644 --- a/gcc/testsuite/gcc.dg/tree-ssa/predcom-dse-8.c +++ b/gcc/testsuite/gcc.dg/tree-ssa/predcom-dse-8.c @@ -31,6 +31,7 @@ void check (int *a, int *res, int len) { int i; +#pragma GCC novector for (i = 0; i < len; i++) if (a[i] != res[i]) abort (); diff --git a/gcc/testsuite/gcc.dg/tree-ssa/predcom-dse-9.c b/gcc/testsuite/gcc.dg/tree-ssa/predcom-dse-9.c index 9c5e8ca9a793..30daf82fac5c 100644 --- a/gcc/testsuite/gcc.dg/tree-ssa/predcom-dse-9.c +++ b/gcc/testsuite/gcc.dg/tree-ssa/predcom-dse-9.c @@ -69,6 +69,7 @@ void check (int *a, int *res, int len) { int i; +#pragma GCC novector for (i = 0; i < len; i++) if (a[i] != res[i]) abort (); diff --git a/gcc/testsuite/gcc.target/i386/pr90178.c b/gcc/testsuite/gcc.target/i386/pr90178.c index 1df36af0541c..e9fea04fb148 100644 --- a/gcc/testsuite/gcc.target/i386/pr90178.c +++ b/gcc/testsuite/gcc.target/i386/pr90178.c @@ -4,6 +4,7 @@ int* find_ptr (int* mem, int sz, int val) { +#pragma GCC novector for (int i = 0; i < sz; i++) if (mem[i] == val) return &mem[i];