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
> 

Reply via email to