https://gcc.gnu.org/g:66bac7bde59edc72b700b042920ba0ad95291776

commit r16-5407-g66bac7bde59edc72b700b042920ba0ad95291776
Author: Avinash Jayakar <[email protected]>
Date:   Wed Nov 19 10:40:45 2025 +0530

    rs6000: Do not reorder operands for vec_pack_to_short_fp32 based on 
endianness
    
    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.

Diff:
---
 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 fa3368079ada..3336b0c75ddf 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 976654155b1a..500db87d7e01 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);

Reply via email to