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" } } */
