Hi,

This is a small patch to fix PR119130. Bootstrapped and regtested on both
powerpc64 little and big endian targets. Ok for trunk?

Thanks and regards,
Avinash Jayakar

The patterns for altivec_vpku<VI_char>um take care of the order of
operands for the vpkuwum instruction, and therefore it is not needed in
the define_expand pattern "convert_4f32_8f16".

2025-11-18  Avinash Jayakar  <[email protected]>

gcc/ChangeLog:
        PR target/119130
        * config/rs6000/altivec.md (convert_4f32_8f16): Use same operand
        order for both endian format.

gcc/testsuite/ChangeLog:
        PR target/119130
        * gcc.target/powerpc/builtins-1-p9-runnable.c: Use same expected
        results for both endian format.
---
 gcc/config/rs6000/altivec.md                              | 5 +----
 gcc/testsuite/gcc.target/powerpc/builtins-1-p9-runnable.c | 5 -----
 2 files changed, 1 insertion(+), 9 deletions(-)

diff --git a/gcc/config/rs6000/altivec.md b/gcc/config/rs6000/altivec.md
index fa3368079ad..3336b0c75dd 100644
--- a/gcc/config/rs6000/altivec.md
+++ b/gcc/config/rs6000/altivec.md
@@ -3625,10 +3625,7 @@
 
   emit_insn (gen_vsx_xvcvsphp (rtx_tmp_hi, operands[1]));
   emit_insn (gen_vsx_xvcvsphp (rtx_tmp_lo, operands[2]));
-  if (!BYTES_BIG_ENDIAN)
-    emit_insn (gen_altivec_vpkuwum (operands[0], rtx_tmp_hi, rtx_tmp_lo));
-  else
-    emit_insn (gen_altivec_vpkuwum (operands[0], rtx_tmp_lo, rtx_tmp_hi));
+  emit_insn (gen_altivec_vpkuwum (operands[0], rtx_tmp_hi, rtx_tmp_lo));
   DONE;
 })
 
diff --git a/gcc/testsuite/gcc.target/powerpc/builtins-1-p9-runnable.c 
b/gcc/testsuite/gcc.target/powerpc/builtins-1-p9-runnable.c
index 976654155b1..500db87d7e0 100644
--- a/gcc/testsuite/gcc.target/powerpc/builtins-1-p9-runnable.c
+++ b/gcc/testsuite/gcc.target/powerpc/builtins-1-p9-runnable.c
@@ -16,13 +16,8 @@ int main() {
   vfb = (vector float){10.0, -2.0, 70.0, 999.0 };
 
   /* Expected results.  */
-#ifdef __BIG_ENDIAN__
-  vexpected = (vector unsigned short) { 0x4900, 0xc000, 0x5460, 0x63ce,
-                                       0x3666, 0x3e66, 0x4d00, 0x563e };
-#else
   vexpected = (vector unsigned short) { 0x3666, 0x3e66, 0x4d00, 0x563e,
                                        0x4900, 0xc000, 0x5460, 0x63ce };
-#endif
 
 /*
      vresult = vec_pack_to_short_fp32 (vfa, vfb);
-- 
2.51.0

Reply via email to