On Tue, Nov 18, 2025 at 04:00:35PM +0530, Avinash Jayakar wrote:
> Hi,
> 
> This is a small patch to fix PR119130. Bootstrapped and regtested on both
> powerpc64 little and big endian targets. Ok for trunk?

Okay for trunk.  Thanks!

Do you want backports?


Segher


> 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