Hello All,

Changes from v2:
        - Reverted changes to gcc/config/rs6000/predicates.md and
          gcc/config/rs6000/vsx.md introduced in v2.

Changes from v1:
        - Dropped pr123055.c testcase from previsous patch. The
          existing pr116030.c already carries scan-assembler-not
          "stxvd2x" assertion that matches the regression, making a
          separate pr123055.c redundant.

Below patch is regtested and bootstrapped on power64le-linux-gnu.

Thank You,
Kishan

PR123055 reports that gcc.target/powerpc/pr116030.c fails the
scan-assembler-not "stxvd2x" assertion after r16-5947-ga6c50ec2c6ebcb,
which introduced -ffuse-ops-with-volatile-access.

That commit allows volatile memory operands to satisfy general_operand,
which is called by predicate 'memory_operand'. As a result,
vsx_stxvd2x4_le_const_<mode> can match volatile destinations and emit
stxvd2x.

The scan-assembler-not "stxvd2x" assertion in pr116030.c is not
required, because the pattern vsx_stxvd2x4_le_const_<mode> is guarded
by const_vec_duplicate_p, which ensures the source is a splat constant
with all elements identical.  

For such a constant, stxvd2x stores the correct value because swapping
two identical doublewords is a no-op.
The new codegen is therefore correct.

2026-10-08  Kishan Parmar  <[email protected]>

gcc/testsuite/ChangeLog:
        PR target/123055
        * gcc.target/powerpc/pr116030.c: Remove scan-assembler-not "stxvd2x"
        assertion which is no longer valid after r16-5947-ga6c50ec2c6ebcb.

---
 gcc/testsuite/gcc.target/powerpc/pr116030.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/gcc/testsuite/gcc.target/powerpc/pr116030.c 
b/gcc/testsuite/gcc.target/powerpc/pr116030.c
index da27106a5a7..3ffbacff0de 100644
--- a/gcc/testsuite/gcc.target/powerpc/pr116030.c
+++ b/gcc/testsuite/gcc.target/powerpc/pr116030.c
@@ -5,7 +5,6 @@
 /* Verify we do not ICE on the tests below.  */
 
 /* { dg-final { scan-assembler-not "rldicr" { target { le } } } } */
-/* { dg-final { scan-assembler-not "stxvd2x" { target { le } } } } */
 
 union U128
 {
-- 
2.52.0

Reply via email to