https://gcc.gnu.org/g:9dceb52664d5af3012507e1d4527ef4362f83aea

commit r16-7207-g9dceb52664d5af3012507e1d4527ef4362f83aea
Author: Alexandre Oliva <[email protected]>
Date:   Sat Jan 31 01:51:53 2026 -0300

    testsuite: arm: update fast-math-complex-mls-half-float.c
    
    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.
    
    
    for  gcc/testsuite/ChangeLog
    
            * gcc.dg/vect/complex/fast-math-complex-mls-half-float.c:
            Don't expect COMPLEX_ADD_ROT270.

Diff:
---
 .../gcc.dg/vect/complex/fast-math-complex-mls-half-float.c          | 6 +++++-
 1 file changed, 5 insertions(+), 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 5a700c091d43..c21f8402b589 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,10 @@
 #define TYPE _Float16
 #define N 200
 #include "complex-mls-template.c"
-/* { dg-final { scan-tree-dump "Found COMPLEX_ADD_ROT270" "vect" } } */
+/* COMPLEX_ADD_ROT270 is no longer recognized in fms_elemconjsnd.
+   The COMPLEX_EXPR that prevented reassoc from changing X - (Y + Z)
+   into (X + (-Y)) + (-Z) has been removed since the introduction of
+   DCE at the end of cplxlower1.  */
+/* { dg-final { scan-tree-dump "Found COMPLEX_ADD_ROT270" "vect" { xfail *-*-* 
} } } */
 /* { dg-final { scan-tree-dump "Found COMPLEX_FMS_CONJ" "vect" } } */
 /* { dg-final { scan-tree-dump "Found COMPLEX_FMS" "vect" } } */

Reply via email to