From: Tamar Christina Date: Fri, 29 Oct 2021 11:47:39 +0000 (+0100) Subject: middle-end: Add target independent tests for Arm complex numbers vectorization. X-Git-Tag: basepoints/gcc-13~3527 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4045d5fa42f2ee7b284977c8f2f0edc300a63e43;p=thirdparty%2Fgcc.git middle-end: Add target independent tests for Arm complex numbers vectorization. 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. 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. --- 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 aadee7f86fa4..000000000000 --- 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 -#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 8eba24dc1878..0f01efb49b54 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 #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 9275ff12e0cc..ccf165176cad 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 #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 8cbbdb825ddb..3aaa70b23b67 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 #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 b753914bea73..000000000000 --- 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 -#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 270c49efbf95..a6fd31d967b3 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 #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 88144e52014d..a2a1b7a7e404 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 #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 445af3943d31..938f9f7d1350 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 #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 7bbb61adfab0..4445119fc9d2 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 cf99f1de3105..ff53719d1a89 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 9f535dde7c0d..dc8c6bd6d088 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 e121113320ec..c79cc3b7365d 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 8565833887f0..8bc7117565e7 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 857ee9de6b48..80e0f5d54123 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 d9d13c29578f..99f0a5e67994 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 ac680cbca81b..bc84cedb8012 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 d0a48d007178..0fbd9172c2f3 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 d9d13c29578f..b74ed8e1f64b 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 ac680cbca81b..0ae3b7ee4e40 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 d0a48d007178..727bae51778c 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 ab8313f01226..33f194b30950 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 49bf961c7a17..020336649364 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 f5c23fbe20d6..332cc51e7028 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 0d4d3ce8869c..5c51d232d791 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 b9866966be37..2850aca29ee5 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 c3dca57b4f49..d2de8501493b 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 df4d3f671f40..c2365045d771 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 6df5c6d18309..2db785195acc 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 a72511262784..094aecd959e1 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 c85ff07a6cc4..8fe90fe0c0e2 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 a17b91b1bd4b..d8ef7068887c 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 fa81985b9085..7fa5150df022 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 c85ff07a6cc4..2648e7874ab2 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 a17b91b1bd4b..f9e285c2b92e 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 fa81985b9085..88f8215e7a42 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 77c01a82bb25..67d1acf340c5 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 a8b44f206987..05740f23758c 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 d57df82808d5..3d8f6851faa4 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 438d2192723a..de065150325c 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 #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 04c27dcf4102..2b10bab8a5ae 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 #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 27988ad34233..ad045b1cf365 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 #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 88d225d6ff80..81f0f7124bf9 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 #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 59109c008bb2..d0a73a18cd54 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 #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 44d96354d607..fe7f605503fb 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 #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 667145751cd9..f52e7391f8bc 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 #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 841adf830c8e..c6794cde224c 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 #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" } } */