On Mon, Jan 05, 2026 at 10:47:06AM +0000, Tamar Christina wrote:
> > -----Original Message-----
> > From: Artemiy Volkov <[email protected]>
> > Sent: 05 January 2026 10:23
> > To: [email protected]
> > Cc: Tamar Christina <[email protected]>; Christophe Lyon
> > <[email protected]>; Artemiy Volkov <[email protected]>
> > Subject: [PATCH] testsuite: rework some vect/complex testcases
> >
> > 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:
> >
>
> Thanks for doing this,
>
> > - 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.
>
> They're implemented for SVE2. So the tests for AArch64 should enable SVE2
> instead of xfail-ing.
You're right in that they shouldn't have all been blanket-XFAILed, but
even with SVE2 most of them aren't vectorized for various reasons. I went
over the testcases one by one and un-XFAILed those that are currently
being vectorized.
>
> > - Disable some FP16 tests for arm targets due to absence of cadd{90,270}
> > for V8HF.
>
> Hmm that also doesn't look right. The md file has
>
> (define_expand "cadd<rot><mode>3"
> [(set (match_operand:VHSDF 0 "register_operand")
> (unspec:VHSDF [(match_operand:VHSDF 1 "register_operand")
> (match_operand:VHSDF 2 "register_operand")]
> FCADD))]
> "TARGET_COMPLEX && !BYTES_BIG_ENDIAN"
> )
>
> (define_mode_iterator VHSDF [(V4HF "TARGET_SIMD_F16INST")
> (V8HF "TARGET_SIMD_F16INST")
> V2SF V4SF V2DF])
>
> So are you sure it's not just missing `+fp16` on Arm targets?
Something like that. In the arm backend it's actually:
;; All supported floating-point vector modes (except V2DF).
(define_mode_iterator VF [(V4HF "TARGET_NEON_FP16INST")
(V8HF "TARGET_NEON_FP16INST") V2SF V4SF])
The issue here has to do with what exact flags the testcases are being
compiled with after "dg-add-options arm_v8_3a_fp16_complex_neon",
specifically if gcc wasn't configured with "-mfpu=auto".
Both these things will be fixed in v2.
Thanks for the review,
Artemiy
>
> Thanks,
> Tamar
>
> > - 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.
> >
> > 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.
> > ---
> > .../gcc.dg/vect/complex/bb-slp-complex-add-pattern-int.c | 4 ++--
> > .../gcc.dg/vect/complex/bb-slp-complex-add-pattern-long.c | 8 ++++----
> > .../vect/complex/bb-slp-complex-add-pattern-short.c | 4 ++--
> > .../complex/bb-slp-complex-add-pattern-unsigned-int.c | 4 ++--
> > .../complex/bb-slp-complex-add-pattern-unsigned-long.c | 4 ++--
> > .../complex/bb-slp-complex-add-pattern-unsigned-short.c | 4 ++--
> > .../gcc.dg/vect/complex/complex-add-pattern-template.c | 8 ++++----
> > gcc/testsuite/gcc.dg/vect/complex/complex-add-template.c | 8 ++++----
> > .../vect/complex/fast-math-bb-slp-complex-add-double.c | 4 ++--
> > .../vect/complex/fast-math-bb-slp-complex-add-float.c | 4 ++--
> > .../complex/fast-math-bb-slp-complex-add-half-float.c | 4 ++--
> > .../complex/fast-math-bb-slp-complex-add-pattern-double.c | 4 ++--
> > .../complex/fast-math-bb-slp-complex-add-pattern-float.c | 4 ++--
> > .../fast-math-bb-slp-complex-add-pattern-half-float.c | 4 ++--
> > .../gcc.dg/vect/complex/fast-math-complex-add-double.c | 4 ++--
> > .../gcc.dg/vect/complex/fast-math-complex-add-float.c | 4 ++--
> > .../vect/complex/fast-math-complex-add-half-float.c | 4 ++--
> > .../vect/complex/fast-math-complex-add-pattern-double.c | 4 ++--
> > .../vect/complex/fast-math-complex-add-pattern-float.c | 4 ++--
> > .../complex/fast-math-complex-add-pattern-half-float.c | 4 ++--
> > .../gcc.dg/vect/complex/vect-complex-add-pattern-byte.c | 4 ++--
> > .../gcc.dg/vect/complex/vect-complex-add-pattern-int.c | 4 ++--
> > .../gcc.dg/vect/complex/vect-complex-add-pattern-long.c | 4 ++--
> > .../gcc.dg/vect/complex/vect-complex-add-pattern-short.c | 4 ++--
> > .../vect/complex/vect-complex-add-pattern-unsigned-byte.c | 4 ++--
> > .../vect/complex/vect-complex-add-pattern-unsigned-int.c | 4 ++--
> > .../vect/complex/vect-complex-add-pattern-unsigned-long.c | 4 ++--
> > .../complex/vect-complex-add-pattern-unsigned-short.c | 4 ++--
> > 28 files changed, 62 insertions(+), 62 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..d12e4d988ca 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
> > @@ -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
> > { *-*-* } } } } */
> > +/* { dg-final { scan-tree-dump "add new stmt:
> > \[^\n\r]*COMPLEX_ADD_ROT270" "slp1" { target { vect_complex_add_int &&
> > { ! aarch64_sve2 } } 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..eaaee5c9122 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,6 +1,7 @@
> > /* { dg-do compile } */
> > -/* { dg-require-effective-target vect_complex_add_long } */
> > /* { 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 } */
> >
> > #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
> > && { ! aarch64_sve2 } } 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..0cc4f6e4e69 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
> > @@ -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
> > && { ! aarch64_sve2 } } 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..388f37eb30d 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
> > @@ -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
> > { *-*-* } } } } */
> > +/* { dg-final { scan-tree-dump "add new stmt:
> > \[^\n\r]*COMPLEX_ADD_ROT270" "slp1" { target { vect_complex_add_int &&
> > { ! aarch64_sve2 } } 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-long.c b/gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-add-
> > pattern-unsigned-long.c
> > index 38aa9c0b9d5..c44e774deb5 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
> > @@ -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
> > && { ! aarch64_sve2 } } 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..14d88cf52f8 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
> > @@ -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
> > && { ! aarch64_sve2 } } 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/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..2e0ff5b3e8d 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
> > && { ! arm*-*-* } } } } } */
> > +/* { dg-final { scan-tree-dump-times "add new stmt:
> > \[^\n\r]*COMPLEX_ADD_ROT270" 2 "slp1" { target { vect_complex_add_half
> > && { ! arm*-*-* } } } } } */
> > /* { 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..4d9cd425932 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" { target { !arm*-*-* } } } } */
> > +/* { dg-final { scan-tree-dump-times "add new stmt:
> > \[^\n\r]*COMPLEX_ADD_ROT90" 2 "vect" { target { !arm*-*-* } } } } */
> > 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..32aca36bf86 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
> > && { !arm*-*-* } } } } } */
> > +/* { dg-final { scan-tree-dump-times "add new stmt:
> > \[^\n\r]*COMPLEX_ADD_ROT270" 1 "vect" { target { vect_complex_add_half
> > && { ! arm*-*-* } } } } } */
> >
> > /* { 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..cf2c5de35b2 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
> > @@ -8,7 +8,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_byte } } } } */
> > -/* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT270" 1
> > "vect" { target { vect_complex_add_byte } } } } */
> > +/* { dg-final { scan-tree-dump "add new stmt:
> > \[^\n\r]*COMPLEX_ADD_ROT90" "vect" { target { vect_complex_add_byte }
> > xfail { *-*-* } } } } */
> > +/* { dg-final { scan-tree-dump "add new stmt:
> > \[^\n\r]*COMPLEX_ADD_ROT270" "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..9a147716fb1 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
> > @@ -8,7 +8,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_int } } } } */
> > -/* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT270" 1
> > "vect" { target { vect_complex_add_int } } } } */
> > +/* { dg-final { scan-tree-dump "add new stmt:
> > \[^\n\r]*COMPLEX_ADD_ROT90" "vect" { target { vect_complex_add_int } xfail
> > { *-*-* } } } } */
> > +/* { dg-final { scan-tree-dump "add new stmt:
> > \[^\n\r]*COMPLEX_ADD_ROT270" "vect" { target { vect_complex_add_int }
> > 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-
> > long.c b/gcc/testsuite/gcc.dg/vect/complex/vect-complex-add-pattern-long.c
> > index 70977155256..d7177cd8601 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
> > @@ -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 "add new stmt:
> > \[^\n\r]*COMPLEX_ADD_ROT90" "vect" { target { vect_complex_add_long }
> > xfail { *-*-* } } } } */
> > +/* { dg-final { scan-tree-dump "add new stmt:
> > \[^\n\r]*COMPLEX_ADD_ROT270" "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..12554d151bb 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
> > @@ -8,7 +8,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_short } } } } */
> > -/* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT270" 1
> > "vect" { target { vect_complex_add_short } } } } */
> > +/* { dg-final { scan-tree-dump "add new stmt:
> > \[^\n\r]*COMPLEX_ADD_ROT90" "vect" { target { vect_complex_add_short }
> > xfail { *-*-* } } } } */
> > +/* { dg-final { scan-tree-dump "add new stmt:
> > \[^\n\r]*COMPLEX_ADD_ROT270" "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..2b8c1decfa4 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
> > @@ -8,7 +8,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_byte } } } } */
> > -/* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT270" 1
> > "vect" { target { vect_complex_add_byte } } } } */
> > +/* { dg-final { scan-tree-dump "add new stmt:
> > \[^\n\r]*COMPLEX_ADD_ROT90" "vect" { target { vect_complex_add_byte }
> > xfail { *-*-* } } } } */
> > +/* { dg-final { scan-tree-dump "add new stmt:
> > \[^\n\r]*COMPLEX_ADD_ROT270" "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-
> > unsigned-int.c b/gcc/testsuite/gcc.dg/vect/complex/vect-complex-add-
> > pattern-unsigned-int.c
> > index 41f60042ee9..adef69aa9ff 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
> > @@ -8,7 +8,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_int } } } } */
> > -/* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT270" 1
> > "vect" { target { vect_complex_add_int } } } } */
> > +/* { dg-final { scan-tree-dump "add new stmt:
> > \[^\n\r]*COMPLEX_ADD_ROT90" "vect" { target { vect_complex_add_int } xfail
> > { *-*-* } } } } */
> > +/* { dg-final { scan-tree-dump "add new stmt:
> > \[^\n\r]*COMPLEX_ADD_ROT270" "vect" { target { vect_complex_add_int }
> > 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-long.c b/gcc/testsuite/gcc.dg/vect/complex/vect-complex-add-
> > pattern-unsigned-long.c
> > index 7708ac495b8..e3d9ceec6ec 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
> > @@ -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 "add new stmt:
> > \[^\n\r]*COMPLEX_ADD_ROT90" "vect" { target { vect_complex_add_long }
> > xfail { *-*-* } } } } */
> > +/* { dg-final { scan-tree-dump "add new stmt:
> > \[^\n\r]*COMPLEX_ADD_ROT270" "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..ad0e4cd222a 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
> > @@ -8,7 +8,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_short } } } } */
> > -/* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT270" 1
> > "vect" { target { vect_complex_add_short } } } } */
> > +/* { dg-final { scan-tree-dump "add new stmt:
> > \[^\n\r]*COMPLEX_ADD_ROT90" "vect" { target { vect_complex_add_short }
> > xfail { *-*-* } } } } */
> > +/* { dg-final { scan-tree-dump "add new stmt:
> > \[^\n\r]*COMPLEX_ADD_ROT270" "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" } } */
> > --
> > 2.43.0
>