This is a second stab at
https://gcc.gnu.org/pipermail/gcc-patches/2026-January/704823.html, which
concerns cleaning up some testcases in gcc.dg/vect/complex.  The original
commit message reads:

---------------------------------------------------------------------------
Some of the testcases in the gcc.dg/vect/complex directory try to match
"stmt.*$internal_fn" in the slp1/vect logs, which leads to many false
positives; this patch changes this to "add new stmt: \[^\n\r]*$internal_fn",
making sure that the log fragments matched in this way are limited to
single lines and correspond to actual newly created GIMPLE statements.
This main change results in some fallout, necessitating the following
additional tweaks:

- For fast-math testcases, replace the "1"s in scan-tree-dump-times
  directives by appropriate counts.
- XFAIL bb-slp and vect testcases featuring integral types,
  since the cadd{90,270} optabs are not implemented for integral modes.
- Disable some FP16 tests for arm targets due to absence of cadd{90,270}
  for V8HF.
- Replace "target { X } && ! target { Y }" selectors with the correct
  "target { X && { ! Y } }" form.
- In bb-slp-complex-add-pattern-long.c, adjust the testcase header to
  match other tests so that different scan-tree-dump-times directives
  can be switched off selectively.
- In bb-slp-complex-add-pattern-long.c, remove an extraneous scan for
  "Found COMPLEX_ADD_ROT90".
- In bb-slp-complex-add-pattern-int.c, use vect_complex_add_int instead of
  vect_complex_add_byte.
---------------------------------------------------------------------------

Following Tamar's feedback, tweaks 2 and 3 above have been fixed by these
changes since v1:

- Change what dg-add-options does for arm_v8_3a{,_fp16}_complex_neon so
  that the correct flags are returned regardless of configure-time values
  of -mfpu.
- For integer tests, require MVE rather than AdvSIMD from the arm
  backend's side, as only that ISA has cadd{90,270} for integral modes.
- Un-XFAIL testcases that gcc is currently able to vectorize, separately
  for the arm and aarch64 backends.

Re-regtested on aarch64 (with and without SVE2) and arm.

gcc/testsuite/ChangeLog:

        * gcc.dg/vect/complex/bb-slp-complex-add-pattern-int.c: Adjust testcase.
        * gcc.dg/vect/complex/bb-slp-complex-add-pattern-long.c: Likewise.
        * gcc.dg/vect/complex/bb-slp-complex-add-pattern-short.c: Likewise.
        * gcc.dg/vect/complex/bb-slp-complex-add-pattern-unsigned-int.c:
        Likewise.
        * gcc.dg/vect/complex/bb-slp-complex-add-pattern-unsigned-long.c:
        Likewise.
        * gcc.dg/vect/complex/bb-slp-complex-add-pattern-unsigned-short.c:
        Likewise.
        * gcc.dg/vect/complex/complex-add-pattern-template.c: Likewise.
        * gcc.dg/vect/complex/complex-add-template.c: Likewise.
        * gcc.dg/vect/complex/fast-math-bb-slp-complex-add-double.c: Likewise.
        * gcc.dg/vect/complex/fast-math-bb-slp-complex-add-float.c: Likewise.
        * gcc.dg/vect/complex/fast-math-bb-slp-complex-add-half-float.c:
        Likewise.
        * gcc.dg/vect/complex/fast-math-bb-slp-complex-add-pattern-double.c:
        Likewise.
        * gcc.dg/vect/complex/fast-math-bb-slp-complex-add-pattern-float.c:
        Likewise.
        * gcc.dg/vect/complex/fast-math-bb-slp-complex-add-pattern-half-float.c:
        Likewise.
        * gcc.dg/vect/complex/fast-math-complex-add-double.c: Likewise.
        * gcc.dg/vect/complex/fast-math-complex-add-float.c: Likewise.
        * gcc.dg/vect/complex/fast-math-complex-add-half-float.c: Likewise.
        * gcc.dg/vect/complex/fast-math-complex-add-pattern-double.c: Likewise.
        * gcc.dg/vect/complex/fast-math-complex-add-pattern-float.c: Likewise.
        * gcc.dg/vect/complex/fast-math-complex-add-pattern-half-float.c:
        * gcc.dg/vect/complex/vect-complex-add-pattern-byte.c: Likewise.
        * gcc.dg/vect/complex/vect-complex-add-pattern-int.c: Likewise.
        * gcc.dg/vect/complex/vect-complex-add-pattern-long.c: Likewise.
        * gcc.dg/vect/complex/vect-complex-add-pattern-short.c: Likewise.
        * gcc.dg/vect/complex/vect-complex-add-pattern-unsigned-byte.c:
        Likewise.
        * gcc.dg/vect/complex/vect-complex-add-pattern-unsigned-int.c: Likewise.
        * gcc.dg/vect/complex/vect-complex-add-pattern-unsigned-long.c:
        Likewise.
        * gcc.dg/vect/complex/vect-complex-add-pattern-unsigned-short.c:
        Likewise.
        * lib/target-supports.exp:
        (check_effective_target_arm_v8_3a_complex_neon_ok_nocache): Add
        explicit "+simd" and tighten check-compile code fragment.
        (check_effective_target_arm_v8_3a_fp16_complex_neon_ok_nocache):
        Likewise.
---
 .../vect/complex/bb-slp-complex-add-pattern-int.c   |  6 +++---
 .../vect/complex/bb-slp-complex-add-pattern-long.c  | 10 +++++-----
 .../vect/complex/bb-slp-complex-add-pattern-short.c |  6 +++---
 .../bb-slp-complex-add-pattern-unsigned-int.c       |  6 +++---
 .../bb-slp-complex-add-pattern-unsigned-long.c      |  6 +++---
 .../bb-slp-complex-add-pattern-unsigned-short.c     |  6 +++---
 .../vect/complex/complex-add-pattern-template.c     |  8 ++++----
 .../gcc.dg/vect/complex/complex-add-template.c      |  8 ++++----
 .../complex/fast-math-bb-slp-complex-add-double.c   |  4 ++--
 .../complex/fast-math-bb-slp-complex-add-float.c    |  4 ++--
 .../fast-math-bb-slp-complex-add-half-float.c       |  4 ++--
 .../fast-math-bb-slp-complex-add-pattern-double.c   |  4 ++--
 .../fast-math-bb-slp-complex-add-pattern-float.c    |  4 ++--
 ...ast-math-bb-slp-complex-add-pattern-half-float.c |  4 ++--
 .../vect/complex/fast-math-complex-add-double.c     |  4 ++--
 .../vect/complex/fast-math-complex-add-float.c      |  4 ++--
 .../vect/complex/fast-math-complex-add-half-float.c |  4 ++--
 .../complex/fast-math-complex-add-pattern-double.c  |  4 ++--
 .../complex/fast-math-complex-add-pattern-float.c   |  4 ++--
 .../fast-math-complex-add-pattern-half-float.c      |  4 ++--
 .../vect/complex/vect-complex-add-pattern-byte.c    |  6 +++---
 .../vect/complex/vect-complex-add-pattern-int.c     |  6 +++---
 .../vect/complex/vect-complex-add-pattern-long.c    |  6 +++---
 .../vect/complex/vect-complex-add-pattern-short.c   |  6 +++---
 .../vect-complex-add-pattern-unsigned-byte.c        |  6 +++---
 .../complex/vect-complex-add-pattern-unsigned-int.c |  6 +++---
 .../vect-complex-add-pattern-unsigned-long.c        |  6 +++---
 .../vect-complex-add-pattern-unsigned-short.c       |  6 +++---
 gcc/testsuite/lib/target-supports.exp               | 13 +++++++++----
 29 files changed, 85 insertions(+), 80 deletions(-)

diff --git a/gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-add-pattern-int.c 
b/gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-add-pattern-int.c
index cead05f1cc4..d5550165b8c 100644
--- a/gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-add-pattern-int.c
+++ b/gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-add-pattern-int.c
@@ -1,7 +1,7 @@
 /* { dg-do compile } */
 /* { dg-require-effective-target stdint_types } */
 /* { dg-require-effective-target vect_int } */
-/* { dg-add-options arm_v8_3a_complex_neon } */
+/* { dg-add-options arm_v8_1m_mve_fp } */
 /* { dg-additional-options "-fno-tree-loop-vectorize" } */
 
 #define TYPE int32_t
@@ -9,7 +9,7 @@
 #include <stdint.h>
 #include "complex-add-pattern-template.c"
 
-/* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT90" 1 "slp1" { 
target { vect_complex_add_byte } } } } */
-/* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT270" 1 "slp1" { 
target { vect_complex_add_int } && ! target { aarch64_sve2 } } } } */
+/* { dg-final { scan-tree-dump "add new stmt: \[^\n\r]*COMPLEX_ADD_ROT90" 
"slp1" { target { vect_complex_add_int } xfail { aarch64*-*-* } } } } */
+/* { dg-final { scan-tree-dump "add new stmt: \[^\n\r]*COMPLEX_ADD_ROT270" 
"slp1" { target { vect_complex_add_int } xfail { *-*-* } } } } */
 /* { dg-final { scan-tree-dump "Found COMPLEX_ADD_ROT270" "slp1" } } */
 /* { dg-final { scan-tree-dump "Found COMPLEX_ADD_ROT90" "slp1" } } */
diff --git 
a/gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-add-pattern-long.c 
b/gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-add-pattern-long.c
index 0d21f57666e..c46e365236c 100644
--- a/gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-add-pattern-long.c
+++ b/gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-add-pattern-long.c
@@ -1,7 +1,8 @@
 /* { dg-do compile } */
-/* { dg-require-effective-target vect_complex_add_long } */
 /* { dg-require-effective-target stdint_types } */
-/* { dg-add-options arm_v8_3a_complex_neon } */
+/* { dg-require-effective-target vect_int } */
+/* { dg-additional-options "-fno-tree-loop-vectorize" } */
+/* { dg-add-options arm_v8_1m_mve_fp } */
 
 #define UNROLL
 
@@ -10,8 +11,7 @@
 #include <stdint.h>
 #include "complex-add-pattern-template.c"
 
-/* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT90" 1 "slp1" { 
target { vect_complex_add_long } } } } */
-/* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT270" 1 "slp1" { 
target { vect_complex_add_long } && ! target { aarch64_sve2 } } } } */
+/* { dg-final { scan-tree-dump "add new stmt: \[^\n\r]*COMPLEX_ADD_ROT90" 
"slp1" { target { vect_complex_add_long } xfail { *-*-* } } } } */
+/* { dg-final { scan-tree-dump "add new stmt: \[^\n\r]*COMPLEX_ADD_ROT270" 
"slp1" { target { vect_complex_add_long } xfail { *-*-* } } } } */
 /* { dg-final { scan-tree-dump "Found COMPLEX_ADD_ROT270" "slp1" { target { 
vect_long_long } } } } */
 /* { dg-final { scan-tree-dump "Found COMPLEX_ADD_ROT90" "slp1" { target { 
vect_long_long } } } } */
-/* { dg-final { scan-tree-dump "Found COMPLEX_ADD_ROT90" "slp1" { target { 
vect_long_long } } } } */
diff --git 
a/gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-add-pattern-short.c 
b/gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-add-pattern-short.c
index 8928386a517..5e16867aafb 100644
--- a/gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-add-pattern-short.c
+++ b/gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-add-pattern-short.c
@@ -2,7 +2,7 @@
 /* { dg-require-effective-target stdint_types } */
 /* { dg-require-effective-target vect_int } */
 /* { dg-additional-options "-fno-tree-loop-vectorize" } */
-/* { dg-add-options arm_v8_3a_complex_neon } */
+/* { dg-add-options arm_v8_1m_mve_fp } */
 
 #define UNROLL
 
@@ -11,7 +11,7 @@
 #include <stdint.h>
 #include "complex-add-pattern-template.c"
 
-/* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT90" 1 "slp1" { 
target { vect_complex_add_short } } } } */
-/* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT270" 1 "slp1" { 
target { vect_complex_add_short } && ! target { aarch64_sve2 } } } } */
+/* { dg-final { scan-tree-dump "add new stmt: \[^\n\r]*COMPLEX_ADD_ROT90" 
"slp1" { target { vect_complex_add_short } xfail { *-*-* } } } } */
+/* { dg-final { scan-tree-dump "add new stmt: \[^\n\r]*COMPLEX_ADD_ROT270" 
"slp1" { target { vect_complex_add_short } xfail { *-*-* } } } } */
 /* { dg-final { scan-tree-dump "Found COMPLEX_ADD_ROT270" "slp1" } } */
 /* { dg-final { scan-tree-dump "Found COMPLEX_ADD_ROT90" "slp1" } } */
diff --git 
a/gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-add-pattern-unsigned-int.c 
b/gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-add-pattern-unsigned-int.c
index 4ab4b9a446a..a0d199f8e9d 100644
--- 
a/gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-add-pattern-unsigned-int.c
+++ 
b/gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-add-pattern-unsigned-int.c
@@ -2,7 +2,7 @@
 /* { dg-require-effective-target stdint_types } */
 /* { dg-require-effective-target vect_int } */
 /* { dg-additional-options "-fno-tree-loop-vectorize" } */
-/* { dg-add-options arm_v8_3a_complex_neon } */
+/* { dg-add-options arm_v8_1m_mve_fp } */
 
 #define UNROLL
 
@@ -11,7 +11,7 @@
 #include <stdint.h>
 #include "complex-add-pattern-template.c"
 
-/* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT90" 1 "slp1" { 
target { vect_complex_add_int } } } } */
-/* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT270" 1 "slp1" { 
target { vect_complex_add_int } && ! target { aarch64_sve2 } } } } */
+/* { dg-final { scan-tree-dump "add new stmt: \[^\n\r]*COMPLEX_ADD_ROT90" 
"slp1" { target { vect_complex_add_int } xfail { aarch64*-*-* } } } }*/
+/* { dg-final { scan-tree-dump "add new stmt: \[^\n\r]*COMPLEX_ADD_ROT270" 
"slp1" { target { vect_complex_add_int } xfail { aarch64*-*-* } } } } */
 /* { dg-final { scan-tree-dump "Found COMPLEX_ADD_ROT270" "slp1" } } */
 /* { dg-final { scan-tree-dump "Found COMPLEX_ADD_ROT90" "slp1" } } */
diff --git 
a/gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-add-pattern-unsigned-long.c 
b/gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-add-pattern-unsigned-long.c
index 38aa9c0b9d5..c254721d519 100644
--- 
a/gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-add-pattern-unsigned-long.c
+++ 
b/gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-add-pattern-unsigned-long.c
@@ -1,7 +1,7 @@
 /* { dg-do compile } */
 /* { dg-require-effective-target stdint_types } */
 /* { dg-additional-options "-fno-tree-loop-vectorize" } */
-/* { dg-add-options arm_v8_3a_complex_neon } */
+/* { dg-add-options arm_v8_1m_mve_fp } */
 
 #define UNROLL
 
@@ -10,7 +10,7 @@
 #include <stdint.h>
 #include "complex-add-pattern-template.c"
 
-/* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT90" 1 "slp1" { 
target { vect_complex_add_long } } } } */
-/* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT270" 1 "slp1" { 
target { vect_complex_add_long } && ! target { aarch64_sve2 } } } } */
+/* { dg-final { scan-tree-dump "add new stmt: \[^\n\r]*COMPLEX_ADD_ROT90" 
"slp1" { target { vect_complex_add_long } xfail { *-*-* } } } } */
+/* { dg-final { scan-tree-dump "add new stmt: \[^\n\r]*COMPLEX_ADD_ROT270" 
"slp1" { target { vect_complex_add_long } xfail { *-*-* } } } } */
 /* { dg-final { scan-tree-dump "Found COMPLEX_ADD_ROT270" "slp1" { target { 
vect_long_long } } } } */
 /* { dg-final { scan-tree-dump "Found COMPLEX_ADD_ROT90" "slp1" { target { 
vect_long_long } } } } */
diff --git 
a/gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-add-pattern-unsigned-short.c 
b/gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-add-pattern-unsigned-short.c
index 8846c9889fb..015f4eaa852 100644
--- 
a/gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-add-pattern-unsigned-short.c
+++ 
b/gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-add-pattern-unsigned-short.c
@@ -2,7 +2,7 @@
 /* { dg-require-effective-target stdint_types } */
 /* { dg-require-effective-target vect_int } */
 /* { dg-additional-options "-fno-tree-loop-vectorize" } */
-/* { dg-add-options arm_v8_3a_complex_neon } */
+/* { dg-add-options arm_v8_1m_mve_fp } */
 
 #define UNROLL
 
@@ -11,7 +11,7 @@
 #include <stdint.h>
 #include "complex-add-pattern-template.c"
 
-/* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT90" 1 "slp1" { 
target { vect_complex_add_short } } } } */
-/* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT270" 1 "slp1" { 
target { vect_complex_add_short } && ! target { aarch64_sve2 } } } } */
+/* { dg-final { scan-tree-dump "add new stmt: \[^\n\r]*COMPLEX_ADD_ROT90" 
"slp1" { target { vect_complex_add_short } xfail { aarch64*-*-* } } } } */
+/* { dg-final { scan-tree-dump "add new stmt: \[^\n\r]*COMPLEX_ADD_ROT270" 
"slp1" { target { vect_complex_add_short } xfail { aarch64*-*-* } } } } */
 /* { dg-final { scan-tree-dump "Found COMPLEX_ADD_ROT270" "slp1" } } */
 /* { dg-final { scan-tree-dump "Found COMPLEX_ADD_ROT90" "slp1" } } */
diff --git a/gcc/testsuite/gcc.dg/vect/complex/complex-add-pattern-template.c 
b/gcc/testsuite/gcc.dg/vect/complex/complex-add-pattern-template.c
index 658af294f1c..9b9f0a4a7d8 100644
--- a/gcc/testsuite/gcc.dg/vect/complex/complex-add-pattern-template.c
+++ b/gcc/testsuite/gcc.dg/vect/complex/complex-add-pattern-template.c
@@ -10,7 +10,7 @@ void add90 (TYPE a[restrict N], TYPE b[restrict N], TYPE 
c[restrict N])
     }
 }
 
-/* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT90" 1 "vect" } } */
+/* { dg-final { scan-tree-dump-times "add new stmt: 
\[^\n\r]*COMPLEX_ADD_ROT90" 1 "vect" } } */
 
 void add270 (TYPE a[restrict N], TYPE b[restrict N], TYPE c[restrict N])
 {
@@ -24,7 +24,7 @@ void add270 (TYPE a[restrict N], TYPE b[restrict N], TYPE 
c[restrict N])
     }
 }
 
-/* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT270" 1 "vect" } } */
+/* { dg-final { scan-tree-dump-times "add new stmt: 
\[^\n\r]*COMPLEX_ADD_ROT270" 1 "vect" } } */
 
 void addMixed (TYPE a[restrict N], TYPE b[restrict N], TYPE c[restrict N])
 {
@@ -55,7 +55,7 @@ void add90HandUnrolled (TYPE a[restrict N], TYPE b[restrict 
N],
     }
 }
 
-/* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT90" 1 "vect" } } */
+/* { dg-final { scan-tree-dump-times "add new stmt: 
\[^\n\r]*COMPLEX_ADD_ROT90" 1 "vect" } } */
 
 void add90Hybrid (TYPE a[restrict N], TYPE b[restrict N], TYPE c[restrict N],
                  TYPE d[restrict N])
@@ -72,4 +72,4 @@ void add90Hybrid (TYPE a[restrict N], TYPE b[restrict N], 
TYPE c[restrict N],
     }
 }
 
-/* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT90" 2 "vect" } } */
+/* { dg-final { scan-tree-dump-times "add new stmt: 
\[^\n\r]*COMPLEX_ADD_ROT90" 2 "vect" } } */
diff --git a/gcc/testsuite/gcc.dg/vect/complex/complex-add-template.c 
b/gcc/testsuite/gcc.dg/vect/complex/complex-add-template.c
index f37ab98813f..3870196b9fb 100644
--- a/gcc/testsuite/gcc.dg/vect/complex/complex-add-template.c
+++ b/gcc/testsuite/gcc.dg/vect/complex/complex-add-template.c
@@ -20,7 +20,7 @@ void add90snd (_Complex TYPE a[restrict N], _Complex TYPE 
b[restrict N],
     c[i] = a[i] + (b[i] * I);
 }
 
-/* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT90" 1 "vect" } } */
+/* { dg-final { scan-tree-dump-times "add new stmt: 
\[^\n\r]*COMPLEX_ADD_ROT90" 1 "vect" } } */
 
 void add180snd (_Complex TYPE a[restrict N], _Complex TYPE b[restrict N],
                _Complex TYPE c[restrict N])
@@ -42,7 +42,7 @@ void add270snd (_Complex TYPE a[restrict N], _Complex TYPE 
b[restrict N],
     c[i] = a[i] + (b[i] * I * I * I);
 }
 
-/* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT270" 1 "vect" } } */
+/* { dg-final { scan-tree-dump-times "add new stmt: 
\[^\n\r]*COMPLEX_ADD_ROT270" 1 "vect" } } */
 
 void add90fst (_Complex TYPE a[restrict N], _Complex TYPE b[restrict N],
               _Complex TYPE c[restrict N])
@@ -54,7 +54,7 @@ void add90fst (_Complex TYPE a[restrict N], _Complex TYPE 
b[restrict N],
     c[i] = (a[i] * I) + b[i];
 }
 
-/* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT90" 1 "vect" } } */
+/* { dg-final { scan-tree-dump-times "add new stmt: 
\[^\n\r]*COMPLEX_ADD_ROT90" 1 "vect" } } */
 
 void add180fst (_Complex TYPE a[restrict N], _Complex TYPE b[restrict N],
                _Complex TYPE c[restrict N])
@@ -76,7 +76,7 @@ void add270fst (_Complex TYPE a[restrict N], _Complex TYPE 
b[restrict N],
     c[i] = (a[i] * I * I * I) + b[i];
 }
 
-/* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT270" 1 "vect" } } */
+/* { dg-final { scan-tree-dump-times "add new stmt: 
\[^\n\r]*COMPLEX_ADD_ROT270" 1 "vect" } } */
 
 void addconjfst (_Complex TYPE a[restrict N], _Complex TYPE b[restrict N],
                 _Complex TYPE c[restrict N])
diff --git 
a/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-add-double.c 
b/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-add-double.c
index fd5bd9b2da0..ec8109c9b51 100644
--- a/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-add-double.c
+++ b/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-add-double.c
@@ -9,8 +9,8 @@
 #define N 16
 #include "complex-add-template.c"
 
-/* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT90" 1 "slp1" { 
target { vect_complex_add_double } } } } */
-/* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT270" 1 "slp1" { 
target { vect_complex_add_double } } } } */
+/* { dg-final { scan-tree-dump-times "add new stmt: 
\[^\n\r]*COMPLEX_ADD_ROT90" 32 "slp1" { target { vect_complex_add_double } } } 
} */
+/* { dg-final { scan-tree-dump-times "add new stmt: 
\[^\n\r]*COMPLEX_ADD_ROT270" 32 "slp1" { target { vect_complex_add_double } } } 
} */
 
 /* { dg-final { scan-tree-dump "Found COMPLEX_ADD_ROT270" "slp1" } } */
 /* { dg-final { scan-tree-dump "Found COMPLEX_ADD_ROT90" "slp1" } } */
diff --git 
a/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-add-float.c 
b/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-add-float.c
index a859b233030..40b79f5c5d9 100644
--- a/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-add-float.c
+++ b/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-add-float.c
@@ -9,7 +9,7 @@
 #define N 16
 #include "complex-add-template.c"
 
-/* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT90" 1 "slp1" { 
target { vect_complex_add_float } } } } */
-/* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT270" 1 "slp1" { 
target { vect_complex_add_float } } } } */
+/* { dg-final { scan-tree-dump-times "add new stmt: 
\[^\n\r]*COMPLEX_ADD_ROT90" 16 "slp1" { target { vect_complex_add_float } } } } 
*/
+/* { dg-final { scan-tree-dump-times "add new stmt: 
\[^\n\r]*COMPLEX_ADD_ROT270" 16 "slp1" { target { vect_complex_add_float } } } 
} */
 /* { dg-final { scan-tree-dump "Found COMPLEX_ADD_ROT270" "slp1" } } */
 /* { dg-final { scan-tree-dump "Found COMPLEX_ADD_ROT90" "slp1" } } */
diff --git 
a/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-add-half-float.c 
b/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-add-half-float.c
index 12df361c06d..c486fba13d7 100644
--- 
a/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-add-half-float.c
+++ 
b/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-add-half-float.c
@@ -10,5 +10,5 @@
 
 /* Vectorization is failing for these cases.  They should work but for now 
ignore.  */
 
-/* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT270" 1 "slp1" { 
xfail *-*-* } } } */
-/* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT90" 1 "slp1" { 
xfail *-*-* } } } */
+/* { dg-final { scan-tree-dump "add new stmt: \[^\n\r]*COMPLEX_ADD_ROT270" 
"slp1" { xfail *-*-* } } } */
+/* { dg-final { scan-tree-dump "add new stmt: \[^\n\r]*COMPLEX_ADD_ROT90" 
"slp1" { xfail *-*-* } } } */
diff --git 
a/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-add-pattern-double.c
 
b/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-add-pattern-double.c
index 2cd7eb25b3e..7678e26bec0 100644
--- 
a/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-add-pattern-double.c
+++ 
b/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-add-pattern-double.c
@@ -9,7 +9,7 @@
 #define N 16
 #include "complex-add-pattern-template.c"
 
-/* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT90" 1 "slp1" { 
target { vect_complex_add_double } } } } */
-/* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT270" 1 "slp1" { 
target { vect_complex_add_double } } } } */
+/* { dg-final { scan-tree-dump-times "add new stmt: 
\[^\n\r]*COMPLEX_ADD_ROT90" 20 "slp1" { target { vect_complex_add_double } } } 
} */
+/* { dg-final { scan-tree-dump-times "add new stmt: 
\[^\n\r]*COMPLEX_ADD_ROT270" 8 "slp1" { target { vect_complex_add_double } } } 
} */
 /* { dg-final { scan-tree-dump "Found COMPLEX_ADD_ROT270" "slp1" } } */
 /* { dg-final { scan-tree-dump "Found COMPLEX_ADD_ROT90" "slp1" } } */
diff --git 
a/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-add-pattern-float.c
 
b/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-add-pattern-float.c
index 6e560d8778e..65d8c3956d9 100644
--- 
a/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-add-pattern-float.c
+++ 
b/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-add-pattern-float.c
@@ -9,7 +9,7 @@
 #define N 16
 #include "complex-add-pattern-template.c"
 
-/* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT90" 1 "slp1" { 
target { vect_complex_add_float } } } } */
-/* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT270" 1 "slp1" { 
target { vect_complex_add_float } } } } */
+/* { dg-final { scan-tree-dump-times "add new stmt: 
\[^\n\r]*COMPLEX_ADD_ROT90" 10 "slp1" { target { vect_complex_add_float } } } } 
*/
+/* { dg-final { scan-tree-dump-times "add new stmt: 
\[^\n\r]*COMPLEX_ADD_ROT270" 4 "slp1" { target { vect_complex_add_float } } } } 
*/
 /* { dg-final { scan-tree-dump "Found COMPLEX_ADD_ROT270" "slp1" } } */
 /* { dg-final { scan-tree-dump "Found COMPLEX_ADD_ROT90" "slp1" } } */
diff --git 
a/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-add-pattern-half-float.c
 
b/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-add-pattern-half-float.c
index e90d10e584f..ae1e02e301e 100644
--- 
a/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-add-pattern-half-float.c
+++ 
b/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-add-pattern-half-float.c
@@ -10,7 +10,7 @@
 #define N 16
 #include "complex-add-pattern-template.c"
 
-/* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT90" 1 "slp1" { 
target { vect_complex_add_half } } } } */
-/* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT270" 1 "slp1" { 
target { vect_complex_add_half } && ! target { arm*-*-* } } } } */
+/* { dg-final { scan-tree-dump-times "add new stmt: 
\[^\n\r]*COMPLEX_ADD_ROT90" 5 "slp1" { target { vect_complex_add_half } } } } */
+/* { dg-final { scan-tree-dump-times "add new stmt: 
\[^\n\r]*COMPLEX_ADD_ROT270" 2 "slp1" { target { vect_complex_add_half } } } } 
*/
 /* { dg-final { scan-tree-dump "Found COMPLEX_ADD_ROT270" "slp1" } } */
 /* { dg-final { scan-tree-dump "Found COMPLEX_ADD_ROT90" "slp1" } } */
diff --git a/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-double.c 
b/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-double.c
index c95c573d560..32ef5faeaa8 100644
--- a/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-double.c
+++ b/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-double.c
@@ -7,7 +7,7 @@
 #define N 200
 #include "complex-add-template.c"
 
-/* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT270" 1 "vect" { 
target { vect_complex_add_double } } } } */
-/* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT90" 1 "vect"  { 
target { vect_complex_add_double } } } } */
+/* { dg-final { scan-tree-dump-times "add new stmt: 
\[^\n\r]*COMPLEX_ADD_ROT270" 2 "vect" { target { vect_complex_add_double } } } 
} */
+/* { dg-final { scan-tree-dump-times "add new stmt: 
\[^\n\r]*COMPLEX_ADD_ROT90" 2 "vect"  { target { vect_complex_add_double } } } 
} */
 /* { dg-final { scan-tree-dump "Found COMPLEX_ADD_ROT270" "vect" } } */
 /* { dg-final { scan-tree-dump "Found COMPLEX_ADD_ROT90" "vect" } } */
diff --git a/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-float.c 
b/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-float.c
index 954644b82f9..e9fd02ea88e 100644
--- a/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-float.c
+++ b/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-float.c
@@ -7,7 +7,7 @@
 #define N 200
 #include "complex-add-template.c"
 
-/* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT270" 1 "vect" { 
target { vect_complex_add_float } } } } */
-/* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT90" 1 "vect" { 
target { vect_complex_add_float } } } } */
+/* { dg-final { scan-tree-dump-times "add new stmt: 
\[^\n\r]*COMPLEX_ADD_ROT270" 2 "vect" { target { vect_complex_add_float } } } } 
*/
+/* { dg-final { scan-tree-dump-times "add new stmt: 
\[^\n\r]*COMPLEX_ADD_ROT90" 2 "vect" { target { vect_complex_add_float } } } } 
*/
 /* { dg-final { scan-tree-dump "Found COMPLEX_ADD_ROT270" "vect" } } */
 /* { dg-final { scan-tree-dump "Found COMPLEX_ADD_ROT90" "vect" } } */
diff --git 
a/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-half-float.c 
b/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-half-float.c
index a773e796ddc..1c8625b0e19 100644
--- a/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-half-float.c
+++ b/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-half-float.c
@@ -8,5 +8,5 @@
 #define N 200
 #include "complex-add-template.c"
 
-/* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT270" 1 "vect" } } */
-/* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT90" 1 "vect" } } */
+/* { dg-final { scan-tree-dump-times "add new stmt: 
\[^\n\r]*COMPLEX_ADD_ROT270" 2 "vect" } } */
+/* { dg-final { scan-tree-dump-times "add new stmt: 
\[^\n\r]*COMPLEX_ADD_ROT90" 2 "vect" } } */
diff --git 
a/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-pattern-double.c 
b/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-pattern-double.c
index 2dede5c7639..8e98b85f590 100644
--- a/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-pattern-double.c
+++ b/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-pattern-double.c
@@ -7,7 +7,7 @@
 #define N 200
 #include "complex-add-pattern-template.c"
 
-/* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT90" 1 "vect" { 
target { vect_complex_add_double } } } } */
-/* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT270" 1 "vect" { 
target { vect_complex_add_double } } } } */
+/* { dg-final { scan-tree-dump-times "add new stmt: 
\[^\n\r]*COMPLEX_ADD_ROT90" 4 "vect" { target { vect_complex_add_double } } } } 
*/
+/* { dg-final { scan-tree-dump-times "add new stmt: 
\[^\n\r]*COMPLEX_ADD_ROT270" 1 "vect" { target { vect_complex_add_double } } } 
} */
 /* { dg-final { scan-tree-dump "Found COMPLEX_ADD_ROT270" "vect" } } */
 /* { dg-final { scan-tree-dump "Found COMPLEX_ADD_ROT90" "vect" } } */
diff --git 
a/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-pattern-float.c 
b/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-pattern-float.c
index 73f2f07d7df..3415cc2287a 100644
--- a/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-pattern-float.c
+++ b/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-pattern-float.c
@@ -7,7 +7,7 @@
 #define N 200
 #include "complex-add-pattern-template.c"
 
-/* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT90" 1 "vect" { 
target { vect_complex_add_float } } } } */
-/* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT270" 1 "vect" { 
target { vect_complex_add_float } } } } */
+/* { dg-final { scan-tree-dump-times "add new stmt: 
\[^\n\r]*COMPLEX_ADD_ROT90" 3 "vect" { target { vect_complex_add_float } } } } 
*/
+/* { dg-final { scan-tree-dump-times "add new stmt: 
\[^\n\r]*COMPLEX_ADD_ROT270" 1 "vect" { target { vect_complex_add_float } } } } 
*/
 /* { dg-final { scan-tree-dump "Found COMPLEX_ADD_ROT270" "vect" } } */
 /* { dg-final { scan-tree-dump "Found COMPLEX_ADD_ROT90" "vect" } } */
diff --git 
a/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-pattern-half-float.c 
b/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-pattern-half-float.c
index e634da93873..18e0800eb85 100644
--- 
a/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-pattern-half-float.c
+++ 
b/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-pattern-half-float.c
@@ -8,8 +8,8 @@
 #define N 200
 #include "complex-add-pattern-template.c"
 
-/* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT90" 1 "vect" { 
target { vect_complex_add_half } } } } */
-/* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT270" 1 "vect" { 
target { vect_complex_add_half } && ! target { arm*-*-* } } } } */
+/* { dg-final { scan-tree-dump-times "add new stmt: 
\[^\n\r]*COMPLEX_ADD_ROT90" 3 "vect" { target { vect_complex_add_half } } } } */
+/* { dg-final { scan-tree-dump-times "add new stmt: 
\[^\n\r]*COMPLEX_ADD_ROT270" 1 "vect" { target { vect_complex_add_half } } } }  
*/
 
 /* { dg-final { scan-tree-dump "Found COMPLEX_ADD_ROT270" "vect" } } */
 /* { dg-final { scan-tree-dump "Found COMPLEX_ADD_ROT90" "vect" } } */
diff --git a/gcc/testsuite/gcc.dg/vect/complex/vect-complex-add-pattern-byte.c 
b/gcc/testsuite/gcc.dg/vect/complex/vect-complex-add-pattern-byte.c
index bf7c135fa1a..0f63ff4eea4 100644
--- a/gcc/testsuite/gcc.dg/vect/complex/vect-complex-add-pattern-byte.c
+++ b/gcc/testsuite/gcc.dg/vect/complex/vect-complex-add-pattern-byte.c
@@ -1,14 +1,14 @@
 /* { dg-do compile } */
 /* { dg-require-effective-target stdint_types } */
 /* { dg-require-effective-target vect_int } */
-/* { dg-add-options arm_v8_3a_complex_neon } */
+/* { dg-add-options arm_v8_1m_mve_fp } */
 
 #define TYPE int8_t
 #define N 200
 #include <stdint.h>
 #include "complex-add-pattern-template.c"
 
-/* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT90" 1 "vect" { 
target { vect_complex_add_byte } } } } */
-/* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT270" 1 "vect" { 
target { vect_complex_add_byte } } } } */
+/* { dg-final { scan-tree-dump-times "add new stmt: 
\[^\n\r]*COMPLEX_ADD_ROT90" 3 "vect" { target { vect_complex_add_byte } xfail { 
*-*-* } } } } */
+/* { dg-final { scan-tree-dump-times "add new stmt: 
\[^\n\r]*COMPLEX_ADD_ROT270" 1 "vect" { target { vect_complex_add_byte } xfail 
{ *-*-* } } } } */
 /* { dg-final { scan-tree-dump "Found COMPLEX_ADD_ROT270" "vect" } } */
 /* { dg-final { scan-tree-dump "Found COMPLEX_ADD_ROT90" "vect" } } */
diff --git a/gcc/testsuite/gcc.dg/vect/complex/vect-complex-add-pattern-int.c 
b/gcc/testsuite/gcc.dg/vect/complex/vect-complex-add-pattern-int.c
index 2fd2a9f0617..346bd86feaf 100644
--- a/gcc/testsuite/gcc.dg/vect/complex/vect-complex-add-pattern-int.c
+++ b/gcc/testsuite/gcc.dg/vect/complex/vect-complex-add-pattern-int.c
@@ -1,14 +1,14 @@
 /* { dg-do compile } */
 /* { dg-require-effective-target stdint_types } */
 /* { dg-require-effective-target vect_int } */
-/* { dg-add-options arm_v8_3a_complex_neon } */
+/* { dg-add-options arm_v8_1m_mve_fp } */
 
 #define TYPE int32_t
 #define N 200
 #include <stdint.h>
 #include "complex-add-pattern-template.c"
 
-/* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT90" 1 "vect" { 
target { vect_complex_add_int } } } } */
-/* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT270" 1 "vect" { 
target { vect_complex_add_int } } } } */
+/* { dg-final { scan-tree-dump-times "add new stmt: 
\[^\n\r]*COMPLEX_ADD_ROT90" 3 "vect" { target { vect_complex_add_int } } } } */
+/* { dg-final { scan-tree-dump-times "add new stmt: 
\[^\n\r]*COMPLEX_ADD_ROT270" 1 "vect" { target { vect_complex_add_int } } } } */
 /* { dg-final { scan-tree-dump "Found COMPLEX_ADD_ROT270" "vect" } } */
 /* { dg-final { scan-tree-dump "Found COMPLEX_ADD_ROT90" "vect" } } */
diff --git a/gcc/testsuite/gcc.dg/vect/complex/vect-complex-add-pattern-long.c 
b/gcc/testsuite/gcc.dg/vect/complex/vect-complex-add-pattern-long.c
index 70977155256..c3ab2be2251 100644
--- a/gcc/testsuite/gcc.dg/vect/complex/vect-complex-add-pattern-long.c
+++ b/gcc/testsuite/gcc.dg/vect/complex/vect-complex-add-pattern-long.c
@@ -1,6 +1,6 @@
 /* { dg-do compile } */
 /* { dg-require-effective-target stdint_types } */
-/* { dg-add-options arm_v8_3a_complex_neon } */
+/* { dg-add-options arm_v8_1m_mve_fp } */
 
 #define UNROLL
 
@@ -9,7 +9,7 @@
 #include <stdint.h>
 #include "complex-add-pattern-template.c"
 
-/* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT90" 1 "vect" { 
target { vect_complex_add_long } } } } */
-/* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT270" 1 "vect" { 
target { vect_complex_add_long } } } } */
+/* { dg-final { scan-tree-dump-times "add new stmt: 
\[^\n\r]*COMPLEX_ADD_ROT90" 3 "vect" { target { vect_complex_add_long } xfail { 
*-*-* } } } } */
+/* { dg-final { scan-tree-dump-times "add new stmt: 
\[^\n\r]*COMPLEX_ADD_ROT270" 1 "vect" { target { vect_complex_add_long } xfail 
{ *-*-* } } } } */
 /* { dg-final { scan-tree-dump "Found COMPLEX_ADD_ROT270" "vect" { target { 
vect_long_long } } } } */
 /* { dg-final { scan-tree-dump "Found COMPLEX_ADD_ROT90" "vect" { target { 
vect_long_long } } } } */
diff --git a/gcc/testsuite/gcc.dg/vect/complex/vect-complex-add-pattern-short.c 
b/gcc/testsuite/gcc.dg/vect/complex/vect-complex-add-pattern-short.c
index 8cbb8ac0c19..23e63f702d3 100644
--- a/gcc/testsuite/gcc.dg/vect/complex/vect-complex-add-pattern-short.c
+++ b/gcc/testsuite/gcc.dg/vect/complex/vect-complex-add-pattern-short.c
@@ -1,14 +1,14 @@
 /* { dg-do compile } */
 /* { dg-require-effective-target stdint_types } */
 /* { dg-require-effective-target vect_int } */
-/* { dg-add-options arm_v8_3a_complex_neon } */
+/* { dg-add-options arm_v8_1m_mve_fp } */
 
 #define TYPE int16_t
 #define N 200
 #include <stdint.h>
 #include "complex-add-pattern-template.c"
 
-/* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT90" 1 "vect" { 
target { vect_complex_add_short } } } } */
-/* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT270" 1 "vect" { 
target { vect_complex_add_short } } } } */
+/* { dg-final { scan-tree-dump-times "add new stmt: 
\[^\n\r]*COMPLEX_ADD_ROT90" 3 "vect" { target { vect_complex_add_short } xfail 
{ *-*-* } } } } */
+/* { dg-final { scan-tree-dump-times "add new stmt: 
\[^\n\r]*COMPLEX_ADD_ROT270" 1 "vect" { target { vect_complex_add_short } xfail 
{ *-*-* } } } } */
 /* { dg-final { scan-tree-dump "Found COMPLEX_ADD_ROT270" "vect" } } */
 /* { dg-final { scan-tree-dump "Found COMPLEX_ADD_ROT90" "vect" } } */
diff --git 
a/gcc/testsuite/gcc.dg/vect/complex/vect-complex-add-pattern-unsigned-byte.c 
b/gcc/testsuite/gcc.dg/vect/complex/vect-complex-add-pattern-unsigned-byte.c
index 9477f0d92d8..ca24416cc43 100644
--- a/gcc/testsuite/gcc.dg/vect/complex/vect-complex-add-pattern-unsigned-byte.c
+++ b/gcc/testsuite/gcc.dg/vect/complex/vect-complex-add-pattern-unsigned-byte.c
@@ -1,14 +1,14 @@
 /* { dg-do compile } */
 /* { dg-require-effective-target stdint_types } */
 /* { dg-require-effective-target vect_int } */
-/* { dg-add-options arm_v8_3a_complex_neon } */
+/* { dg-add-options arm_v8_1m_mve_fp } */
 
 #define TYPE uint8_t
 #define N 200
 #include <stdint.h>
 #include "complex-add-pattern-template.c"
 
-/* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT90" 1 "vect" { 
target { vect_complex_add_byte } } } } */
-/* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT270" 1 "vect" { 
target { vect_complex_add_byte } } } } */
+/* { dg-final { scan-tree-dump-times "add new stmt: 
\[^\n\r]*COMPLEX_ADD_ROT90" 3 "vect" { target { vect_complex_add_byte } } } } */
+/* { dg-final { scan-tree-dump-times "add new stmt: 
\[^\n\r]*COMPLEX_ADD_ROT270" 1 "vect" { target { vect_complex_add_byte } } } } 
*/
 /* { dg-final { scan-tree-dump "Found COMPLEX_ADD_ROT270" "vect" } } */
 /* { dg-final { scan-tree-dump "Found COMPLEX_ADD_ROT90" "vect" } } */
diff --git 
a/gcc/testsuite/gcc.dg/vect/complex/vect-complex-add-pattern-unsigned-int.c 
b/gcc/testsuite/gcc.dg/vect/complex/vect-complex-add-pattern-unsigned-int.c
index 41f60042ee9..260f778a4fe 100644
--- a/gcc/testsuite/gcc.dg/vect/complex/vect-complex-add-pattern-unsigned-int.c
+++ b/gcc/testsuite/gcc.dg/vect/complex/vect-complex-add-pattern-unsigned-int.c
@@ -1,14 +1,14 @@
 /* { dg-do compile } */
 /* { dg-require-effective-target stdint_types } */
 /* { dg-require-effective-target vect_int } */
-/* { dg-add-options arm_v8_3a_complex_neon } */
+/* { dg-add-options arm_v8_1m_mve_fp } */
 
 #define TYPE uint32_t
 #define N 200
 #include <stdint.h>
 #include "complex-add-pattern-template.c"
 
-/* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT90" 1 "vect" { 
target { vect_complex_add_int } } } } */
-/* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT270" 1 "vect" { 
target { vect_complex_add_int } } } } */
+/* { dg-final { scan-tree-dump-times "add new stmt: 
\[^\n\r]*COMPLEX_ADD_ROT90" 3 "vect" { target { vect_complex_add_int } } } } */
+/* { dg-final { scan-tree-dump-times "add new stmt: 
\[^\n\r]*COMPLEX_ADD_ROT270" 1 "vect" { target { vect_complex_add_int } } } } */
 /* { dg-final { scan-tree-dump "Found COMPLEX_ADD_ROT270" "vect" } } */
 /* { dg-final { scan-tree-dump "Found COMPLEX_ADD_ROT90" "vect" } } */
diff --git 
a/gcc/testsuite/gcc.dg/vect/complex/vect-complex-add-pattern-unsigned-long.c 
b/gcc/testsuite/gcc.dg/vect/complex/vect-complex-add-pattern-unsigned-long.c
index 7708ac495b8..6a88a82f374 100644
--- a/gcc/testsuite/gcc.dg/vect/complex/vect-complex-add-pattern-unsigned-long.c
+++ b/gcc/testsuite/gcc.dg/vect/complex/vect-complex-add-pattern-unsigned-long.c
@@ -1,6 +1,6 @@
 /* { dg-do compile } */
 /* { dg-require-effective-target stdint_types } */
-/* { dg-add-options arm_v8_3a_complex_neon } */
+/* { dg-add-options arm_v8_1m_mve_fp } */
 
 #define UNROLL
 
@@ -9,7 +9,7 @@
 #include <stdint.h>
 #include "complex-add-pattern-template.c"
 
-/* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT90" 1 "vect" { 
target { vect_complex_add_long } } } } */
-/* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT270" 1 "vect" { 
target { vect_complex_add_long } } } } */
+/* { dg-final { scan-tree-dump-times "add new stmt: 
\[^\n\r]*COMPLEX_ADD_ROT90" 3 "vect" { target { vect_complex_add_long } xfail { 
*-*-* } } } } */
+/* { dg-final { scan-tree-dump-times "add new stmt: 
\[^\n\r]*COMPLEX_ADD_ROT270" 1 "vect" { target { vect_complex_add_long } xfail 
{ *-*-* } } } } */
 /* { dg-final { scan-tree-dump "Found COMPLEX_ADD_ROT270" "vect" { target { 
vect_long_long } } } } */
 /* { dg-final { scan-tree-dump "Found COMPLEX_ADD_ROT90" "vect" { target { 
vect_long_long } } } } */
diff --git 
a/gcc/testsuite/gcc.dg/vect/complex/vect-complex-add-pattern-unsigned-short.c 
b/gcc/testsuite/gcc.dg/vect/complex/vect-complex-add-pattern-unsigned-short.c
index 6260be4d121..db86837ffe7 100644
--- 
a/gcc/testsuite/gcc.dg/vect/complex/vect-complex-add-pattern-unsigned-short.c
+++ 
b/gcc/testsuite/gcc.dg/vect/complex/vect-complex-add-pattern-unsigned-short.c
@@ -1,14 +1,14 @@
 /* { dg-do compile } */
 /* { dg-require-effective-target stdint_types } */
 /* { dg-require-effective-target vect_int } */
-/* { dg-add-options arm_v8_3a_complex_neon } */
+/* { dg-add-options arm_v8_1m_mve_fp } */
 
 #define TYPE uint16_t
 #define N 200
 #include <stdint.h>
 #include "complex-add-pattern-template.c"
 
-/* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT90" 1 "vect" { 
target { vect_complex_add_short } } } } */
-/* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT270" 1 "vect" { 
target { vect_complex_add_short } } } } */
+/* { dg-final { scan-tree-dump-times "add new stmt: 
\[^\n\r]*COMPLEX_ADD_ROT90" 3 "vect" { target { vect_complex_add_short } } } } 
*/
+/* { dg-final { scan-tree-dump-times "add new stmt: 
\[^\n\r]*COMPLEX_ADD_ROT270" 1 "vect" { target { vect_complex_add_short } } } } 
*/
 /* { dg-final { scan-tree-dump "Found COMPLEX_ADD_ROT270" "vect" } } */
 /* { dg-final { scan-tree-dump "Found COMPLEX_ADD_ROT90" "vect" } } */
diff --git a/gcc/testsuite/lib/target-supports.exp 
b/gcc/testsuite/lib/target-supports.exp
index d335735382c..dbcba42629f 100644
--- a/gcc/testsuite/lib/target-supports.exp
+++ b/gcc/testsuite/lib/target-supports.exp
@@ -13735,8 +13735,9 @@ proc 
check_effective_target_arm_v8_3a_complex_neon_ok_nocache { } {
            #if !defined (__ARM_FEATURE_COMPLEX)
            #error "__ARM_FEATURE_COMPLEX not defined"
            #endif
-       } "$flags $cpu_unset -march=armv8.3-a"] } {
-           set et_arm_v8_3a_complex_neon_flags "$flags $cpu_unset 
-march=armv8.3-a"
+           #include <complex.h>
+       } "$flags $cpu_unset -march=armv8.3-a+simd"] } {
+           set et_arm_v8_3a_complex_neon_flags "$flags $cpu_unset 
-march=armv8.3-a+simd"
            return 1;
        }
     }
@@ -13782,9 +13783,13 @@ proc 
check_effective_target_arm_v8_3a_fp16_complex_neon_ok_nocache { } {
            #if !defined (__ARM_FEATURE_COMPLEX)
            #error "__ARM_FEATURE_COMPLEX not defined"
            #endif
-       } "$flags $cpu_unset -march=armv8.3-a+fp16"] } {
+           #if !defined (__ARM_FEATURE_FP16_VECTOR_ARITHMETIC)
+           #error "__ARM_FEATURE_FP16_VECTOR_ARITHMETIC not defined"
+           #endif
+           #include <complex.h>
+       } "$flags $cpu_unset -march=armv8.3-a+fp16+simd"] } {
            set et_arm_v8_3a_fp16_complex_neon_flags \
-                       "$flags $cpu_unset -march=armv8.3-a+fp16"
+                       "$flags $cpu_unset -march=armv8.3-a+fp16+simd"
            return 1;
        }
     }
-- 
2.43.0

Reply via email to