On Fri, 29 Oct 2021, Tamar Christina wrote:

> Hi All,
> 
> This beefs up the complex numbers vectorization testsuite
> and adds target independent checks next to the target
> dependent ones.
> 
> This allows regressions to the detection code to be found
> when running on any target, not just aarch64.
> 
> Regtested on aarch64-none-linux-gnu,
> x86_64-pc-linux-gnu and no regressions.
> 
> Ok for master?

OK.

Thanks,
Richard.

> Thanks,
> Tamar
> 
> gcc/testsuite/ChangeLog:
> 
>       PR tree-optimization/102977
>       * gcc.dg/vect/complex/bb-slp-complex-add-pattern-int.c: Updated.
>       * gcc.dg/vect/complex/bb-slp-complex-add-pattern-long.c: Updated.
>       * gcc.dg/vect/complex/bb-slp-complex-add-pattern-short.c: Updated.
>       * gcc.dg/vect/complex/bb-slp-complex-add-pattern-unsigned-int.c:
>       Updated.
>       * gcc.dg/vect/complex/bb-slp-complex-add-pattern-unsigned-long.c:
>       Updated.
>       * gcc.dg/vect/complex/bb-slp-complex-add-pattern-unsigned-short.c:
>       Updated.
>       * gcc.dg/vect/complex/fast-math-bb-slp-complex-add-double.c:
>       * gcc.dg/vect/complex/fast-math-bb-slp-complex-add-float.c: Updated.
>       * gcc.dg/vect/complex/fast-math-bb-slp-complex-add-half-float.c:
>       Updated.
>       * gcc.dg/vect/complex/fast-math-bb-slp-complex-add-pattern-double.c:
>       Updated.
>       * gcc.dg/vect/complex/fast-math-bb-slp-complex-add-pattern-float.c:
>       Updated.
>       * gcc.dg/vect/complex/fast-math-bb-slp-complex-add-pattern-half-float.c:
>       Updated.
>       * gcc.dg/vect/complex/fast-math-bb-slp-complex-mla-double.c:
>       Updated.
>       * gcc.dg/vect/complex/fast-math-bb-slp-complex-mla-float.c: Updated.
>       * gcc.dg/vect/complex/fast-math-bb-slp-complex-mla-half-float.c:
>       Updated.
>       * gcc.dg/vect/complex/fast-math-bb-slp-complex-mls-double.c:
>       Updated.
>       * gcc.dg/vect/complex/fast-math-bb-slp-complex-mls-float.c: Updated.
>       * gcc.dg/vect/complex/fast-math-bb-slp-complex-mls-half-float.c:
>       Updated.
>       * gcc.dg/vect/complex/fast-math-bb-slp-complex-mul-double.c: Updated.
>       * gcc.dg/vect/complex/fast-math-bb-slp-complex-mul-float.c: Updated.
>       * gcc.dg/vect/complex/fast-math-bb-slp-complex-mul-half-float.c:
>       Updated.
>       * gcc.dg/vect/complex/fast-math-complex-add-double.c: Updated.
>       * gcc.dg/vect/complex/fast-math-complex-add-float.c: Updated.
>       * gcc.dg/vect/complex/fast-math-complex-add-half-float.c: Updated.
>       * gcc.dg/vect/complex/fast-math-complex-add-pattern-double.c: Updated.
>       * gcc.dg/vect/complex/fast-math-complex-add-pattern-float.c: Updated.
>       * gcc.dg/vect/complex/fast-math-complex-add-pattern-half-float.c:
>       Updated.
>       * gcc.dg/vect/complex/fast-math-complex-mla-double.c: Updated.
>       * gcc.dg/vect/complex/fast-math-complex-mla-float.c: Updated.
>       * gcc.dg/vect/complex/fast-math-complex-mla-half-float.c: Updated.
>       * gcc.dg/vect/complex/fast-math-complex-mls-double.c: Updated.
>       * gcc.dg/vect/complex/fast-math-complex-mls-float.c: Updated.
>       * gcc.dg/vect/complex/fast-math-complex-mls-half-float.c: Updated.
>       * gcc.dg/vect/complex/fast-math-complex-mul-double.c: Updated.
>       * gcc.dg/vect/complex/fast-math-complex-mul-float.c: Updated.
>       * gcc.dg/vect/complex/fast-math-complex-mul-half-float.c: Updated.
>       * gcc.dg/vect/complex/vect-complex-add-pattern-byte.c: Updated.
>       * gcc.dg/vect/complex/vect-complex-add-pattern-int.c: Updated.
>       * gcc.dg/vect/complex/vect-complex-add-pattern-long.c: Updated.
>       * gcc.dg/vect/complex/vect-complex-add-pattern-short.c: Updated.
>       * gcc.dg/vect/complex/vect-complex-add-pattern-unsigned-byte.c:
>       Updated.
>       * gcc.dg/vect/complex/vect-complex-add-pattern-unsigned-int.c:
>       Updated.
>       * gcc.dg/vect/complex/vect-complex-add-pattern-unsigned-long.c:
>       Updated.
>       * gcc.dg/vect/complex/vect-complex-add-pattern-unsigned-short.c:
>       Updated.
>       * gcc.dg/vect/complex/bb-slp-complex-add-pattern-byte.c: Removed.
>       * gcc.dg/vect/complex/bb-slp-complex-add-pattern-unsigned-byte.c:
>       Removed.
> 
> --- inline copy of patch -- 
> diff --git 
> a/gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-add-pattern-byte.c 
> b/gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-add-pattern-byte.c
> deleted file mode 100644
> index 
> aadee7f86fa42895ffc6bec481a95a2b185bf86d..0000000000000000000000000000000000000000
> --- a/gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-add-pattern-byte.c
> +++ /dev/null
> @@ -1,12 +0,0 @@
> -/* { dg-do compile } */
> -/* { dg-require-effective-target vect_complex_add_byte } */
> -/* { dg-require-effective-target stdint_types } */
> -/* { dg-add-options arm_v8_1m_mve_fp } */
> -
> -#define TYPE int8_t
> -#define N 16
> -#include <stdint.h>
> -#include "complex-add-pattern-template.c"
> -
> -/* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT90" 1 "slp1" { 
> xfail aarch64_sve2 } } } */
> -/* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT270" 1 "slp1" { 
> xfail aarch64_sve2 } } } */
> 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 
> 8eba24dc187895150ee3515d5bd2a35b46528388..0f01efb49b544c4f849057b0cecbc42b3acea41b
>  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,12 +1,14 @@
>  /* { dg-do compile } */
> -/* { dg-require-effective-target vect_complex_add_int } */
>  /* { dg-require-effective-target stdint_types } */
>  /* { dg-add-options arm_v8_1m_mve_fp } */
> +/* { dg-additional-options "-fno-tree-loop-vectorize" } */
>  
>  #define TYPE int32_t
>  #define N 16
>  #include <stdint.h>
>  #include "complex-add-pattern-template.c"
>  
> -/* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT90" 1 "slp1" } } 
> */
> -/* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT270" 1 "slp1" { 
> xfail aarch64_sve2 } } } */
> +/* { 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 && !arch64_sve2 } } } } */
> +/* { 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 
> 9275ff12e0cc4fd643c3d60d1a5ce51cd3550833..ccf165176cad5a13b7cdee78ab4a30830eb492f5
>  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
> @@ -8,5 +8,8 @@
>  #include <stdint.h>
>  #include "complex-add-pattern-template.c"
>  
> -/* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT90" 1 "slp1" } } 
> */
> -/* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT270" 1 "slp1" { 
> xfail aarch64_sve2 } } } */
> +/* { 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 && !arch64_sve2 } } } } */
> +/* { dg-final { scan-tree-dump "Found COMPLEX_ADD_ROT270" "slp1" } } */
> +/* { dg-final { scan-tree-dump "Found COMPLEX_ADD_ROT90" "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-short.c 
> b/gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-add-pattern-short.c
> index 
> 8cbbdb825ddb616cc9c3ac7c0b62ad53e0e54045..3aaa70b23b67f53d3614ecb34bf8e6eb0f206b6d
>  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
> @@ -1,6 +1,6 @@
>  /* { dg-do compile } */
> -/* { dg-require-effective-target vect_complex_add_short } */
>  /* { dg-require-effective-target stdint_types } */
> +/* { dg-additional-options "-fno-tree-loop-vectorize" } */
>  /* { dg-add-options arm_v8_1m_mve_fp } */
>  
>  #define TYPE int16_t
> @@ -8,5 +8,7 @@
>  #include <stdint.h>
>  #include "complex-add-pattern-template.c"
>  
> -/* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT90" 1 "slp1" } } 
> */
> -/* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT270" 1 "slp1" { 
> xfail aarch64_sve2 } } } */
> +/* { 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 && !arch64_sve2 } } } } */
> +/* { 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-byte.c
>  
> b/gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-add-pattern-unsigned-byte.c
> deleted file mode 100644
> index 
> b753914bea73189f90a6caf50c881d72800085e6..0000000000000000000000000000000000000000
> --- 
> a/gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-add-pattern-unsigned-byte.c
> +++ /dev/null
> @@ -1,12 +0,0 @@
> -/* { dg-do compile } */
> -/* { dg-require-effective-target vect_complex_add_byte } */
> -/* { dg-require-effective-target stdint_types } */
> -/* { dg-add-options arm_v8_1m_mve_fp } */
> -
> -#define TYPE uint8_t
> -#define N 16
> -#include <stdint.h>
> -#include "complex-add-pattern-template.c"
> -
> -/* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT90" 1 "slp1" { 
> xfail aarch64_sve2 } } } */
> -/* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT270" 1 "slp1" { 
> xfail aarch64_sve2 } } } */
> 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 
> 270c49efbf95ffbc21ff5c3b7ae34280fa1b6059..a6fd31d967b372328792d07aa52ae1f684132fa0
>  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
> @@ -1,6 +1,6 @@
>  /* { dg-do compile } */
> -/* { dg-require-effective-target vect_complex_add_int } */
>  /* { dg-require-effective-target stdint_types } */
> +/* { dg-additional-options "-fno-tree-loop-vectorize" } */
>  /* { dg-add-options arm_v8_1m_mve_fp } */
>  
>  #define TYPE uint32_t
> @@ -8,5 +8,7 @@
>  #include <stdint.h>
>  #include "complex-add-pattern-template.c"
>  
> -/* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT90" 1 "slp1" } } 
> */
> -/* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT270" 1 "slp1" { 
> xfail aarch64_sve2 } } } */
> +/* { 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 && !arch64_sve2 } } } } */
> +/* { 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 
> 88144e52014d86842b16520b0940123d5448459c..a2a1b7a7e40408752dc03dfeccf2c263f39a91a0
>  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,6 +1,6 @@
>  /* { dg-do compile } */
> -/* { dg-require-effective-target vect_complex_add_long } */
>  /* { dg-require-effective-target stdint_types } */
> +/* { dg-additional-options "-fno-tree-loop-vectorize" } */
>  /* { dg-add-options arm_v8_1m_mve_fp } */
>  
>  #define TYPE uint64_t
> @@ -8,5 +8,7 @@
>  #include <stdint.h>
>  #include "complex-add-pattern-template.c"
>  
> -/* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT90" 1 "slp1" } } 
> */
> -/* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT270" 1 "slp1" { 
> xfail aarch64_sve2 } } } */
> +/* { 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 && !arch64_sve2 } } } } */
> +/* { 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-short.c
>  
> b/gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-add-pattern-unsigned-short.c
> index 
> 445af3943d318c4daa69334fa6c1095592e2dec0..938f9f7d1350ab7d8f5c45994f1486d8e793f2a6
>  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
> @@ -1,6 +1,6 @@
>  /* { dg-do compile } */
> -/* { dg-require-effective-target vect_complex_add_short } */
>  /* { dg-require-effective-target stdint_types } */
> +/* { dg-additional-options "-fno-tree-loop-vectorize" } */
>  /* { dg-add-options arm_v8_1m_mve_fp } */
>  
>  #define TYPE uint16_t
> @@ -8,5 +8,7 @@
>  #include <stdint.h>
>  #include "complex-add-pattern-template.c"
>  
> -/* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT90" 1 "slp1" } } 
> */
> -/* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT270" 1 "slp1" { 
> xfail aarch64_sve2 } } } */
> +/* { 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 && !arch64_sve2 } } } } */
> +/* { 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-double.c 
> b/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-add-double.c
> index 
> 7bbb61adfab06a89ac36a66f848746033158c41c..4445119fc9d2c7dafe6abb5f7fb741c7794144a2
>  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
> @@ -1,12 +1,14 @@
>  /* { dg-do compile } */
> -/* { dg-require-effective-target vect_complex_add_double } */
>  /* { dg-add-options arm_v8_3a_complex_neon } */
> +/* { dg-additional-options "-fno-tree-loop-vectorize" } */
>  /* { dg-add-options arm_v8_1m_mve_fp } */
>  
>  #define TYPE double
>  #define N 16
>  #include "complex-add-template.c"
>  
> -/* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT90" 1 "slp1" } } 
> */
> -/* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT270" 1 "slp1" } } 
> */
> +/* { 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 "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 
> cf99f1de31056bbaca3fe8885643289b770ad76d..ff53719d1a895a7161ebcc6fba4903fc3de9095f
>  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
> @@ -1,11 +1,13 @@
>  /* { dg-do compile } */
> -/* { dg-require-effective-target vect_complex_add_float } */
>  /* { dg-add-options arm_v8_3a_complex_neon } */
> +/* { dg-additional-options "-fno-tree-loop-vectorize" } */
>  /* { dg-add-options arm_v8_1m_mve_fp } */
>  
>  #define TYPE float
>  #define N 16
>  #include "complex-add-template.c"
>  
> -/* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT90" 1 "slp1" } } 
> */
> -/* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT270" 1 "slp1" } } 
> */
> +/* { 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 "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 
> 9f535dde7c0d131c1a35e5b6b1d27530faaea88f..dc8c6bd6d0882c7fccde71c323b8bde89c2410af
>  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
> @@ -1,5 +1,6 @@
>  /* { dg-do compile } */
>  /* { dg-require-effective-target vect_complex_add_half } */
> +/* { dg-additional-options "-fno-tree-loop-vectorize" } */
>  /* { dg-add-options arm_v8_3a_fp16_complex_neon } */
>  /* { dg-add-options arm_v8_1m_mve_fp } */
>  
> 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 
> e121113320ec153a732fe8e1c0b25d06929c126b..c79cc3b7365d8ad4a33366df275f9c8adddd1c97
>  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
> @@ -1,11 +1,13 @@
>  /* { dg-do compile } */
> -/* { dg-require-effective-target vect_complex_add_double } */
>  /* { dg-add-options arm_v8_3a_complex_neon } */
> +/* { dg-additional-options "-fno-tree-loop-vectorize" } */
>  /* { dg-add-options arm_v8_1m_mve_fp } */
>  
>  #define TYPE double
>  #define N 16
>  #include "complex-add-pattern-template.c"
>  
> -/* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT90" 1 "slp1" } } 
> */
> -/* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT270" 1 "slp1" } } 
> */
> +/* { 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 "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 
> 8565833887f026b732b86d2c42c3a3d7a883b8d8..8bc7117565e79a0e93a22d2b28a32e9c5ddfe4d3
>  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
> @@ -1,11 +1,13 @@
>  /* { dg-do compile } */
> -/* { dg-require-effective-target vect_complex_add_float } */
>  /* { dg-add-options arm_v8_3a_complex_neon } */
> +/* { dg-additional-options "-fno-tree-loop-vectorize" } */
>  /* { dg-add-options arm_v8_1m_mve_fp } */
>  
>  #define TYPE float
>  #define N 16
>  #include "complex-add-pattern-template.c"
>  
> -/* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT90" 1 "slp1" } } 
> */
> -/* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT270" 1 "slp1" } } 
> */
> +/* { 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 "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 
> 857ee9de6b48407ebb1c6974d4b05cd661cd4f16..80e0f5d5412318d05883813a81dc4a2d9a62f234
>  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
> @@ -1,11 +1,13 @@
>  /* { dg-do compile } */
> -/* { dg-require-effective-target vect_complex_add_half } */
>  /* { dg-add-options arm_v8_3a_fp16_complex_neon } */
> +/* { dg-additional-options "-fno-tree-loop-vectorize" } */
>  /* { dg-add-options arm_v8_1m_mve_fp } */
>  
>  #define TYPE _Float16
>  #define N 16
>  #include "complex-add-pattern-template.c"
>  
> -/* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT90" 1 "slp1" } } 
> */
> -/* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT270" 1 "slp1" { 
> xfail arm*-*-* } } } */
> +/* { 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_byte } && ! target { arm*-*-* } } } } */
> +/* { dg-final { scan-tree-dump "Found COMPLEX_ADD_ROT270" "slp1" { xfail 
> *-*-* } } } */
> +/* { dg-final { scan-tree-dump "Found COMPLEX_ADD_ROT90" "slp1" } } */
> diff --git 
> a/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mla-double.c 
> b/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mla-double.c
> index 
> d9d13c29578f905e793e5d80f08ec7b758d09c5f..99f0a5e67994f112e36a01918ac50670d302e063
>  100644
> --- a/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mla-double.c
> +++ b/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mla-double.c
> @@ -7,3 +7,5 @@
>  #define N 16
>  #include "complex-mla-template.c"
>  
> +/* { dg-final { scan-tree-dump "Found COMPLEX_FMA_CONJ" "slp1" } } */
> +/* { dg-final { scan-tree-dump "Found COMPLEX_FMA" "slp1" } } */
> diff --git 
> a/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mla-float.c 
> b/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mla-float.c
> index 
> ac680cbca81b3b0bc3a51555236faa7f702e5082..bc84cedb80129d0e0a99caa3ea463d26a7511c17
>  100644
> --- a/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mla-float.c
> +++ b/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mla-float.c
> @@ -1,8 +1,11 @@
>  /* { dg-do compile } */
>  /* { dg-require-effective-target vect_complex_add_float } */
> -/* { dg-add-options arm_v8_3a_complex_neon } */
> +/* { dg-additional-options "-fno-tree-loop-vectorize" } */
> +/* { dg-add-options arm_v8_3a_fp16_complex_neon } */
>  /* { dg-add-options arm_v8_1m_mve_fp } */
>  
>  #define TYPE float
>  #define N 16
>  #include "complex-mla-template.c"
> +/* { dg-final { scan-tree-dump "Found COMPLEX_FMA_CONJ" "slp1" { xfail *-*-* 
> } } } */
> +/* { dg-final { scan-tree-dump "Found COMPLEX_FMA" "slp1" { xfail *-*-* } } 
> } */
> diff --git 
> a/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mla-half-float.c 
> b/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mla-half-float.c
> index 
> d0a48d007178a7464ae2e4d00720bb3b3abca18a..0fbd9172c2f3f1efb2dae2307292b5d1a7f6d80a
>  100644
> --- 
> a/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mla-half-float.c
> +++ 
> b/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mla-half-float.c
> @@ -1,5 +1,6 @@
>  /* { dg-do compile } */
>  /* { dg-require-effective-target vect_complex_add_half } */
> +/* { dg-additional-options "-fno-tree-loop-vectorize" } */
>  /* { dg-add-options arm_v8_3a_fp16_complex_neon } */
>  /* { dg-add-options arm_v8_1m_mve_fp } */
>  
> @@ -7,3 +8,5 @@
>  #define N 16
>  #include "complex-mla-template.c"
>  
> +/* { dg-final { scan-tree-dump "Found COMPLEX_FMA_CONJ" "slp1" { xfail *-*-* 
> } } } */
> +/* { dg-final { scan-tree-dump "Found COMPLEX_FMA" "slp1"  { xfail *-*-* } } 
> } */
> diff --git 
> a/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mls-double.c 
> b/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mls-double.c
> index 
> d9d13c29578f905e793e5d80f08ec7b758d09c5f..b74ed8e1f64b3051ae423ae367b36759605ca5a6
>  100644
> --- a/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mls-double.c
> +++ b/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mls-double.c
> @@ -5,5 +5,9 @@
>  
>  #define TYPE double
>  #define N 16
> -#include "complex-mla-template.c"
> +#include "complex-mls-template.c"
>  
> +/* { dg-final { scan-tree-dump "Found COMPLEX_ADD_ROT270" "slp1" } } */
> +/* { dg-final { scan-tree-dump "Found COMPLEX_FMA" "slp1" } } */
> +/* { dg-final { scan-tree-dump "Found COMPLEX_FMS_CONJ" "slp1" } } */
> +/* { dg-final { scan-tree-dump "Found COMPLEX_FMS" "slp1" } } */
> diff --git 
> a/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mls-float.c 
> b/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mls-float.c
> index 
> ac680cbca81b3b0bc3a51555236faa7f702e5082..0ae3b7ee4e40cba72820d5161fa8d5b907e7799b
>  100644
> --- a/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mls-float.c
> +++ b/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mls-float.c
> @@ -1,8 +1,12 @@
>  /* { dg-do compile } */
>  /* { dg-require-effective-target vect_complex_add_float } */
> +/* { dg-additional-options "-fno-tree-loop-vectorize" } */
>  /* { dg-add-options arm_v8_3a_complex_neon } */
>  /* { dg-add-options arm_v8_1m_mve_fp } */
>  
>  #define TYPE float
>  #define N 16
> -#include "complex-mla-template.c"
> +#include "complex-mls-template.c"
> +
> +/* { dg-final { scan-tree-dump "Found COMPLEX_FMS_CONJ" "slp1"  { xfail 
> *-*-* } } } */
> +/* { dg-final { scan-tree-dump "Found COMPLEX_FMS" "slp1"  { xfail *-*-* } } 
> } */
> diff --git 
> a/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mls-half-float.c 
> b/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mls-half-float.c
> index 
> d0a48d007178a7464ae2e4d00720bb3b3abca18a..727bae51778ca175eb6134f3823e6716002d315e
>  100644
> --- 
> a/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mls-half-float.c
> +++ 
> b/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mls-half-float.c
> @@ -1,9 +1,12 @@
>  /* { dg-do compile } */
>  /* { dg-require-effective-target vect_complex_add_half } */
> +/* { dg-additional-options "-fno-tree-loop-vectorize" } */
>  /* { dg-add-options arm_v8_3a_fp16_complex_neon } */
>  /* { dg-add-options arm_v8_1m_mve_fp } */
>  
>  #define TYPE _Float16
>  #define N 16
> -#include "complex-mla-template.c"
> +#include "complex-mls-template.c"
>  
> +/* { dg-final { scan-tree-dump "Found COMPLEX_FMS_CONJ" "slp1"  { xfail 
> *-*-* } } } */
> +/* { dg-final { scan-tree-dump "Found COMPLEX_FMS" "slp1"  { xfail *-*-* } } 
> } */
> diff --git 
> a/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mul-double.c 
> b/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mul-double.c
> index 
> ab8313f01226bfb96b2e304ff7f275cffb665b06..33f194b309501ae00f6f970fa8e8e04d618b3f75
>  100644
> --- a/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mul-double.c
> +++ b/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mul-double.c
> @@ -7,3 +7,5 @@
>  #define N 16
>  #include "complex-mul-template.c"
>  
> +/* { dg-final { scan-tree-dump "Found COMPLEX_MUL_CONJ" "slp1" } } */
> +/* { dg-final { scan-tree-dump "Found COMPLEX_MUL" slp1" } } */
> diff --git 
> a/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mul-float.c 
> b/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mul-float.c
> index 
> 49bf961c7a17d266d45b9112383a89ac406a705c..020336649364526142bf1d59673cc82903858871
>  100644
> --- a/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mul-float.c
> +++ b/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mul-float.c
> @@ -1,8 +1,12 @@
>  /* { dg-do compile } */
>  /* { dg-require-effective-target vect_complex_add_float } */
> +/* { dg-additional-options "-fno-tree-loop-vectorize" } */
>  /* { dg-add-options arm_v8_3a_complex_neon } */
>  /* { dg-add-options arm_v8_1m_mve_fp } */
>  
>  #define TYPE float
>  #define N 16
>  #include "complex-mul-template.c"
> +
> +/* { dg-final { scan-tree-dump "Found COMPLEX_MUL_CONJ" "slp1"  { xfail 
> *-*-* } } } */
> +/* { dg-final { scan-tree-dump "Found COMPLEX_MUL" "slp1"  { xfail *-*-* } } 
> } */
> diff --git 
> a/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mul-half-float.c 
> b/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mul-half-float.c
> index 
> f5c23fbe20d67e88f870417d9a4bde63c169e301..332cc51e70287ee4c51e7c91f6373f13c0e4d9cc
>  100644
> --- 
> a/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mul-half-float.c
> +++ 
> b/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mul-half-float.c
> @@ -1,5 +1,6 @@
>  /* { dg-do compile } */
>  /* { dg-require-effective-target vect_complex_add_half } */
> +/* { dg-additional-options "-fno-tree-loop-vectorize" } */
>  /* { dg-add-options arm_v8_3a_fp16_complex_neon } */
>  /* { dg-add-options arm_v8_1m_mve_fp } */
>  
> @@ -7,3 +8,5 @@
>  #define N 16
>  #include "complex-mul-template.c"
>  
> +/* { dg-final { scan-tree-dump "Found COMPLEX_MUL_CONJ" "slp1"  { xfail 
> *-*-* } } } */
> +/* { dg-final { scan-tree-dump "Found COMPLEX_MUL" "slp1"  { xfail *-*-* } } 
> } */
> 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 
> 0d4d3ce8869cde8e3020b93456421cc268fb8263..5c51d232d791b987930a30583f0f4b7645e1865f
>  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
> @@ -1,5 +1,4 @@
>  /* { dg-do compile } */
> -/* { dg-require-effective-target vect_complex_add_double } */
>  /* { dg-add-options arm_v8_3a_complex_neon } */
>  /* { dg-add-options arm_v8_1m_mve_fp } */
>  
> @@ -7,5 +6,7 @@
>  #define N 200
>  #include "complex-add-template.c"
>  
> -/* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT270" 2 "vect" } } 
> */
> -/* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT90" 2 "vect" } } 
> */
> \ No newline at end of file
> +/* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT270" 2 "vect" { 
> target { vect_complex_add_double } } } } */
> +/* { dg-final { scan-tree-dump-times "stmt.*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 
> b9866966be37ed2e2c5210a06f04474171e0d4f3..2850aca29ee54d67af2f3e723798124f3e109adc
>  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
> @@ -1,5 +1,4 @@
>  /* { dg-do compile } */
> -/* { dg-require-effective-target vect_complex_add_float } */
>  /* { dg-add-options arm_v8_3a_complex_neon } */
>  /* { dg-add-options arm_v8_1m_mve_fp } */
>  
> @@ -7,5 +6,7 @@
>  #define N 200
>  #include "complex-add-template.c"
>  
> -/* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT270" 2 "vect" } } 
> */
> -/* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT90" 2 "vect" } } 
> */
> \ No newline at end of file
> +/* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT270" 2 "vect" { 
> target { vect_complex_add_float } } } } */
> +/* { dg-final { scan-tree-dump-times "stmt.*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 
> c3dca57b4f49932acf28b19ad86774f171072576..d2de8501493be432252d52acc87165451082c570
>  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
> @@ -1,5 +1,4 @@
>  /* { dg-do compile } */
> -/* { dg-require-effective-target vect_complex_add_half } */
>  /* { dg-add-options arm_v8_3a_fp16_complex_neon } */
>  /* { dg-add-options arm_v8_1m_mve_fp } */
>  
> @@ -7,5 +6,5 @@
>  #define N 200
>  #include "complex-add-template.c"
>  
> -/* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT270" 2 "vect" } } 
> */
> -/* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT90" 2 "vect" } } 
> */
> \ No newline at end of file
> +/* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT270" 2 "vect" { 
> target { vect_complex_add_half } } } } */
> +/* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT90" 2 "vect" { 
> target { vect_complex_add_half } } } } */
> 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 
> df4d3f671f40663d779598dcb5b1f94260c6d7e3..c2365045d771a191686f698efc8fca26574c9ec3
>  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
> @@ -1,5 +1,4 @@
>  /* { dg-do compile } */
> -/* { dg-require-effective-target vect_complex_add_double } */
>  /* { dg-add-options arm_v8_3a_complex_neon } */
>  /* { dg-add-options arm_v8_1m_mve_fp } */
>  
> @@ -7,5 +6,8 @@
>  #define N 200
>  #include "complex-add-pattern-template.c"
>  
> -/* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT90" 4 "vect" } } 
> */
> -/* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT270" 1 "vect" } } 
> */
> +/* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT90" 4 "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 "Found COMPLEX_ADD_ROT270" "vect" } } */
> +/* { dg-final { scan-tree-dump "Found COMPLEX_ADD_ROT90" "slp1" } } */
> +/* { 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 
> 6df5c6d18309723d81734429f9034e3f6b10f7fc..2db785195acc86dc377bd61ea46b415ab940690b
>  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
> @@ -1,5 +1,4 @@
>  /* { dg-do compile } */
> -/* { dg-require-effective-target vect_complex_add_float } */
>  /* { dg-add-options arm_v8_3a_complex_neon } */
>  /* { dg-add-options arm_v8_1m_mve_fp } */
>  
> @@ -7,5 +6,8 @@
>  #define N 200
>  #include "complex-add-pattern-template.c"
>  
> -/* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT90" 4 "vect" } } 
> */
> -/* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT270" 1 "vect" } } 
> */
> +/* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT90" 4 "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 "Found COMPLEX_ADD_ROT270" "vect" } } */
> +/* { dg-final { scan-tree-dump "Found COMPLEX_ADD_ROT90" "slp1" } } */
> +/* { 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 
> a72511262784b942d51fad9d0da423890bc3cd92..094aecd959e117d7530c01db4eb4c3de5255ca6c
>  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
> @@ -1,5 +1,4 @@
>  /* { dg-do compile } */
> -/* { dg-require-effective-target vect_complex_add_half } */
>  /* { dg-add-options arm_v8_3a_fp16_complex_neon } */
>  /* { dg-add-options arm_v8_1m_mve_fp } */
>  
> @@ -7,6 +6,10 @@
>  #define N 200
>  #include "complex-add-pattern-template.c"
>  
> -/* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT90" 4 "vect" } } 
> */
> -/* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT270" 1 "vect" } } 
> */
> +/* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT90" 4 "vect" { 
> target { vect_complex_add_half } } } } */
> +/* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT270" 1 "vect" { 
> target { vect_complex_add_half } } } } */
>  
> +/* { dg-final { scan-tree-dump "Found COMPLEX_ADD_ROT270" "slp1" } } */
> +/* { dg-final { scan-tree-dump "Found COMPLEX_ADD_ROT270" "vect" } } */
> +/* { dg-final { scan-tree-dump "Found COMPLEX_ADD_ROT90" "slp1" } } */
> +/* { dg-final { scan-tree-dump "Found COMPLEX_ADD_ROT90" "vect" } } */
> diff --git a/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mla-double.c 
> b/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mla-double.c
> index 
> c85ff07a6cc432051b8dfc70456a31b8e485e024..8fe90fe0c0e27c5794222d566611ac6cca75bd23
>  100644
> --- a/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mla-double.c
> +++ b/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mla-double.c
> @@ -6,3 +6,5 @@
>  #define TYPE double
>  #define N 200
>  #include "complex-mla-template.c"
> +/* { dg-final { scan-tree-dump "Found COMPLEX_FMA_CONJ" "vect" } } */
> +/* { dg-final { scan-tree-dump "Found COMPLEX_FMA" "vect" } } */
> diff --git a/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mla-float.c 
> b/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mla-float.c
> index 
> a17b91b1bd4bb0a26107e973ca1b06f7a9e4c24c..d8ef7068887c89099aca4e2a5cac2078a1edfdb6
>  100644
> --- a/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mla-float.c
> +++ b/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mla-float.c
> @@ -6,3 +6,5 @@
>  #define TYPE float
>  #define N 200
>  #include "complex-mla-template.c"
> +/* { dg-final { scan-tree-dump "Found COMPLEX_FMA_CONJ" "vect" } } */
> +/* { dg-final { scan-tree-dump "Found COMPLEX_FMA" "vect" } } */
> diff --git 
> a/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mla-half-float.c 
> b/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mla-half-float.c
> index 
> fa81985b9085ef760737b471591065388d59aed0..7fa5150df022890330644c0be58471480364abac
>  100644
> --- a/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mla-half-float.c
> +++ b/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mla-half-float.c
> @@ -1,8 +1,9 @@
>  /* { dg-do compile } */
> -/* { dg-require-effective-target vect_complex_add_half } */
>  /* { dg-add-options arm_v8_3a_fp16_complex_neon } */
>  /* { dg-add-options arm_v8_1m_mve_fp } */
>  
>  #define TYPE _Float16
>  #define N 200
>  #include "complex-mla-template.c"
> +/* { dg-final { scan-tree-dump "Found COMPLEX_FMA_CONJ" "vect" } } */
> +/* { dg-final { scan-tree-dump "Found COMPLEX_FMA" "vect" } } */
> diff --git a/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mls-double.c 
> b/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mls-double.c
> index 
> c85ff07a6cc432051b8dfc70456a31b8e485e024..2648e7874ab2b0ea3cf8c6f2f5957badf04595ad
>  100644
> --- a/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mls-double.c
> +++ b/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mls-double.c
> @@ -1,8 +1,11 @@
>  /* { dg-do compile } */
> -/* { dg-require-effective-target vect_complex_add_double } */
>  /* { dg-add-options arm_v8_3a_complex_neon } */
>  /* { dg-add-options arm_v8_1m_mve_fp } */
>  
>  #define TYPE double
>  #define N 200
> -#include "complex-mla-template.c"
> +#include "complex-mls-template.c"
> +/* { dg-final { scan-tree-dump "Found COMPLEX_ADD_ROT270" "vect" } } */
> +/* { dg-final { scan-tree-dump "Found COMPLEX_FMA" "vect" } } */
> +/* { dg-final { scan-tree-dump "Found COMPLEX_FMS_CONJ" "vect" } } */
> +/* { dg-final { scan-tree-dump "Found COMPLEX_FMS" "vect" } } */
> diff --git a/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mls-float.c 
> b/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mls-float.c
> index 
> a17b91b1bd4bb0a26107e973ca1b06f7a9e4c24c..f9e285c2b92e507ab192ef82e6de1023a3254c95
>  100644
> --- a/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mls-float.c
> +++ b/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mls-float.c
> @@ -1,8 +1,11 @@
>  /* { dg-do compile } */
> -/* { dg-require-effective-target vect_complex_add_float } */
>  /* { dg-add-options arm_v8_3a_complex_neon } */
>  /* { dg-add-options arm_v8_1m_mve_fp } */
>  
>  #define TYPE float
>  #define N 200
> -#include "complex-mla-template.c"
> +#include "complex-mls-template.c"
> +/* { dg-final { scan-tree-dump "Found COMPLEX_ADD_ROT270" "vect" } } */
> +/* { dg-final { scan-tree-dump "Found COMPLEX_FMA" "vect" } } */
> +/* { dg-final { scan-tree-dump "Found COMPLEX_FMS_CONJ" "vect" } } */
> +/* { dg-final { scan-tree-dump "Found COMPLEX_FMS" "vect" } } */
> diff --git 
> a/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mls-half-float.c 
> b/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mls-half-float.c
> index 
> fa81985b9085ef760737b471591065388d59aed0..88f8215e7a42e916bd1f33d310603c3c926844ec
>  100644
> --- a/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mls-half-float.c
> +++ b/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mls-half-float.c
> @@ -1,8 +1,10 @@
>  /* { dg-do compile } */
> -/* { dg-require-effective-target vect_complex_add_half } */
>  /* { dg-add-options arm_v8_3a_fp16_complex_neon } */
>  /* { dg-add-options arm_v8_1m_mve_fp } */
>  
>  #define TYPE _Float16
>  #define N 200
> -#include "complex-mla-template.c"
> +#include "complex-mls-template.c"
> +/* { dg-final { scan-tree-dump "Found COMPLEX_ADD_ROT270" "vect" } } */
> +/* { dg-final { scan-tree-dump "Found COMPLEX_FMS_CONJ" "vect" } } */
> +/* { dg-final { scan-tree-dump "Found COMPLEX_FMS" "vect" } } */
> diff --git a/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mul-double.c 
> b/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mul-double.c
> index 
> 77c01a82bb25d62d1fcf56d5015d21d8e3417963..67d1acf340c5ac59fd86b2b039f82da50c76cfe1
>  100644
> --- a/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mul-double.c
> +++ b/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mul-double.c
> @@ -1,8 +1,9 @@
>  /* { dg-do compile } */
> -/* { dg-require-effective-target vect_complex_add_double } */
>  /* { dg-add-options arm_v8_3a_complex_neon } */
>  /* { dg-add-options arm_v8_1m_mve_fp } */
>  
>  #define TYPE double
>  #define N 200
>  #include "complex-mul-template.c"
> +/* { dg-final { scan-tree-dump "Found COMPLEX_MUL_CONJ" "vect" } } */
> +/* { dg-final { scan-tree-dump "Found COMPLEX_MUL" "vect" } } */
> diff --git a/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mul-float.c 
> b/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mul-float.c
> index 
> a8b44f2069877d354572148acf2d8efbccdf89c6..05740f23758c8852b4894ddffa4a256c29a41e78
>  100644
> --- a/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mul-float.c
> +++ b/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mul-float.c
> @@ -1,8 +1,9 @@
>  /* { dg-do compile } */
> -/* { dg-require-effective-target vect_complex_add_float } */
>  /* { dg-add-options arm_v8_3a_complex_neon } */
>  /* { dg-add-options arm_v8_1m_mve_fp } */
>  
>  #define TYPE float
>  #define N 200
>  #include "complex-mul-template.c"
> +/* { dg-final { scan-tree-dump "Found COMPLEX_MUL_CONJ" "vect" } } */
> +/* { dg-final { scan-tree-dump "Found COMPLEX_MUL" "vect" } } */
> diff --git 
> a/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mul-half-float.c 
> b/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mul-half-float.c
> index 
> d57df82808d5a08b52ed905048d7a0b46af41a4b..3d8f6851faa478f8c1a09816f34b09e863e59668
>  100644
> --- a/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mul-half-float.c
> +++ b/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mul-half-float.c
> @@ -1,8 +1,9 @@
>  /* { dg-do compile } */
> -/* { dg-require-effective-target vect_complex_add_half } */
>  /* { dg-add-options arm_v8_3a_fp16_complex_neon } */
>  /* { dg-add-options arm_v8_1m_mve_fp } */
>  
>  #define TYPE _Float16
>  #define N 200
>  #include "complex-mul-template.c"
> +/* { dg-final { scan-tree-dump "Found COMPLEX_MUL_CONJ" "vect" } } */
> +/* { dg-final { scan-tree-dump "Found COMPLEX_MUL" "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 
> 438d2192723a7b15261c346a290ccb0d9e0e02b6..de065150325c2dbf6dc87434ca504f072626a08e
>  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,5 +1,4 @@
>  /* { dg-do compile } */
> -/* { dg-require-effective-target vect_complex_add_byte } */
>  /* { dg-require-effective-target stdint_types } */
>  /* { dg-add-options arm_v8_1m_mve_fp } */
>  
> @@ -8,5 +7,7 @@
>  #include <stdint.h>
>  #include "complex-add-pattern-template.c"
>  
> -/* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT90" 1 "vect" } } 
> */
> -/* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT270" 1 "vect" } } 
> */
> +/* { 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 "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 
> 04c27dcf4102e4d53f2cc4f2aebb55a10d1fe5b1..2b10bab8a5ae6036e55044f7e611a1e1bfde2a3f
>  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,5 +1,4 @@
>  /* { dg-do compile } */
> -/* { dg-require-effective-target vect_complex_add_int } */
>  /* { dg-require-effective-target stdint_types } */
>  /* { dg-add-options arm_v8_1m_mve_fp } */
>  
> @@ -8,5 +7,7 @@
>  #include <stdint.h>
>  #include "complex-add-pattern-template.c"
>  
> -/* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT90" 1 "vect" } } 
> */
> -/* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT270" 1 "vect" } } 
> */
> +/* { 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 "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 
> 27988ad34233f23b359fa4de56cb1d2182496bcc..ad045b1cf3657db32d7ebb577e57ff4f4692abb0
>  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,5 +1,4 @@
>  /* { dg-do compile } */
> -/* { dg-require-effective-target vect_complex_add_long } */
>  /* { dg-require-effective-target stdint_types } */
>  /* { dg-add-options arm_v8_1m_mve_fp } */
>  
> @@ -8,5 +7,7 @@
>  #include <stdint.h>
>  #include "complex-add-pattern-template.c"
>  
> -/* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT90" 1 "vect" } } 
> */
> -/* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT270" 1 "vect" } } 
> */
> +/* { 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 "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-short.c 
> b/gcc/testsuite/gcc.dg/vect/complex/vect-complex-add-pattern-short.c
> index 
> 88d225d6ff8004eabc679a51b9dc01d69be2c3b0..81f0f7124bf9219a8cab8e56a52766d081039779
>  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,5 +1,4 @@
>  /* { dg-do compile } */
> -/* { dg-require-effective-target vect_complex_add_short } */
>  /* { dg-require-effective-target stdint_types } */
>  /* { dg-add-options arm_v8_1m_mve_fp } */
>  
> @@ -8,5 +7,7 @@
>  #include <stdint.h>
>  #include "complex-add-pattern-template.c"
>  
> -/* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT90" 1 "vect" } } 
> */
> -/* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT270" 1 "vect" } } 
> */
> +/* { 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 "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 
> 59109c008bb28bf65600e0427ca86935db10b55c..d0a73a18cd54dc3a1b6b701c2a51df08e130e14c
>  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,5 +1,4 @@
>  /* { dg-do compile } */
> -/* { dg-require-effective-target vect_complex_add_byte } */
>  /* { dg-require-effective-target stdint_types } */
>  /* { dg-add-options arm_v8_1m_mve_fp } */
>  
> @@ -8,5 +7,7 @@
>  #include <stdint.h>
>  #include "complex-add-pattern-template.c"
>  
> -/* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT90" 1 "vect" } } 
> */
> -/* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT270" 1 "vect" } } 
> */
> +/* { 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 "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 
> 44d96354d6071bcd2d7e61d8e5211692560f6cbe..fe7f605503fba66300a871567452b60025accb2c
>  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,5 +1,4 @@
>  /* { dg-do compile } */
> -/* { dg-require-effective-target vect_complex_add_int } */
>  /* { dg-require-effective-target stdint_types } */
>  /* { dg-add-options arm_v8_1m_mve_fp } */
>  
> @@ -8,5 +7,7 @@
>  #include <stdint.h>
>  #include "complex-add-pattern-template.c"
>  
> -/* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT90" 1 "vect" } } 
> */
> -/* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT270" 1 "vect" } } 
> */
> +/* { 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 "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 
> 667145751cd9efbdf8019249cffea7722e1c78e5..f52e7391f8bc4029def1cfc73e478bce2affe44a
>  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,5 +1,4 @@
>  /* { dg-do compile } */
> -/* { dg-require-effective-target vect_complex_add_long } */
>  /* { dg-require-effective-target stdint_types } */
>  /* { dg-add-options arm_v8_1m_mve_fp } */
>  
> @@ -8,5 +7,7 @@
>  #include <stdint.h>
>  #include "complex-add-pattern-template.c"
>  
> -/* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT90" 1 "vect" } } 
> */
> -/* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT270" 1 "vect" } } 
> */
> +/* { 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 "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-short.c 
> b/gcc/testsuite/gcc.dg/vect/complex/vect-complex-add-pattern-unsigned-short.c
> index 
> 841adf830c8e1b2fa9184811b39fb54bfc1af92f..c6794cde224ce989cb2665273d4bf884a065cffa
>  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,5 +1,4 @@
>  /* { dg-do compile } */
> -/* { dg-require-effective-target vect_complex_add_short } */
>  /* { dg-require-effective-target stdint_types } */
>  /* { dg-add-options arm_v8_1m_mve_fp } */
>  
> @@ -8,5 +7,7 @@
>  #include <stdint.h>
>  #include "complex-add-pattern-template.c"
>  
> -/* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT90" 1 "vect" } } 
> */
> -/* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT270" 1 "vect" } } 
> */
> +/* { 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 "Found COMPLEX_ADD_ROT270" "vect" } } */
> +/* { dg-final { scan-tree-dump "Found COMPLEX_ADD_ROT90" "vect" } } */
> 
> 
> 

-- 
Richard Biener <rguent...@suse.de>
SUSE Software Solutions Germany GmbH, Maxfeldstrasse 5, 90409 Nuernberg,
Germany; GF: Ivo Totev; HRB 36809 (AG Nuernberg)

Reply via email to