> -----Original Message-----
> From: Artemiy Volkov <[email protected]>
> Sent: 06 January 2026 07:19
> To: [email protected]
> Cc: Tamar Christina <[email protected]>; Christophe Lyon
> <[email protected]>; Artemiy Volkov <[email protected]>
> Subject: [PATCH v2] testsuite: rework some vect/complex testcases
>
> 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_nocach
> e):
> Likewise.
OK.
Thanks for the cleanup,
Tamar
> ---
> .../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