Since the addition of DCE after complex lowering, reassoc1 has no
longer been impeded by COMPLEX_EXPRs, so it changes (a - (b + c)),
where (b + c) is the imaginary part of an intermediate complex value,
to ((a - b) - c), and this prevents the vectorizer from recognizing
the expected COMPLEX_ADD_ROT270 pattern in fms_elemconjsnd.

Stop expecting that pattern to be found on that test.

Regstrapped on x86_64-linux-gnu.  Also tested with aarch64-elf and
arm-eabi with gcc-15.  Ok to install?


for  gcc/testsuite/ChangeLog

        * gcc.dg/vect/complex/fast-math-complex-mls-half-float.c:
        Don't expect COMPLEX_ADD_ROT270.
---
 .../complex/fast-math-complex-mls-half-float.c     |    1 -
 1 file changed, 1 deletion(-)

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 fb7e9a5619e9e..5ce5ae0b9912c 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
@@ -7,6 +7,5 @@
 #define TYPE _Float16
 #define N 200
 #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" } } */

-- 
Alexandre Oliva, happy hacker            https://blog.lx.oliva.nom.br/
Free Software Activist     FSFLA co-founder     GNU Toolchain Engineer
More tolerance and less prejudice are key for inclusion and diversity.
Excluding neuro-others for not behaving ""normal"" is *not* inclusive!

Reply via email to