From: Bill Schmidt Date: Wed, 16 Oct 2013 17:48:03 +0000 (+0000) Subject: vsx.md (vsx_concat_): Adjust output for LE. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=de75c8761e57b0360c9b93690a011e406b7a5f60;p=gcc.git vsx.md (vsx_concat_): Adjust output for LE. 2013-10-16 Bill Schmidt * config/rs6000/vsx.md (vsx_concat_): Adjust output for LE. (vsx_concat_v2sf): Likewise. From-SVN: r203713 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 9c32df89da4..be6345c8447 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2013-10-16 Bill Schmidt + + * config/rs6000/vsx.md (vsx_concat_): Adjust output for LE. + (vsx_concat_v2sf): Likewise. + 2013-10-16 James Greenhalgh * config/aarch64/aarch64.md diff --git a/gcc/config/rs6000/vsx.md b/gcc/config/rs6000/vsx.md index dfb9ab19783..df87c196754 100644 --- a/gcc/config/rs6000/vsx.md +++ b/gcc/config/rs6000/vsx.md @@ -1194,7 +1194,12 @@ (match_operand: 1 "vsx_register_operand" "ws,wa") (match_operand: 2 "vsx_register_operand" "ws,wa")))] "VECTOR_MEM_VSX_P (mode)" - "xxpermdi %x0,%x1,%x2,0" +{ + if (BYTES_BIG_ENDIAN) + return "xxpermdi %x0,%x1,%x2,0"; + else + return "xxpermdi %x0,%x2,%x1,0"; +} [(set_attr "type" "vecperm")]) ;; Special purpose concat using xxpermdi to glue two single precision values @@ -1207,7 +1212,12 @@ (match_operand:SF 2 "vsx_register_operand" "f,f")] UNSPEC_VSX_CONCAT))] "VECTOR_MEM_VSX_P (V2DFmode)" - "xxpermdi %x0,%x1,%x2,0" +{ + if (BYTES_BIG_ENDIAN) + return "xxpermdi %x0,%x1,%x2,0"; + else + return "xxpermdi %x0,%x2,%x1,0"; +} [(set_attr "type" "vecperm")]) ;; xxpermdi for little endian loads and stores. We need several of