diff options
author | Bill Schmidt <wschmidt@linux.vnet.ibm.com> | 2013-10-16 17:48:03 +0000 |
---|---|---|
committer | William Schmidt <wschmidt@gcc.gnu.org> | 2013-10-16 17:48:03 +0000 |
commit | de75c8761e57b0360c9b93690a011e406b7a5f60 (patch) | |
tree | d0e74efd6408ad270bad65918b2fe5181a5c759c | |
parent | 21216998ab18b308343088687fb31d9110f40e01 (diff) | |
download | gcc-de75c8761e57b0360c9b93690a011e406b7a5f60.zip gcc-de75c8761e57b0360c9b93690a011e406b7a5f60.tar.gz gcc-de75c8761e57b0360c9b93690a011e406b7a5f60.tar.bz2 |
vsx.md (vsx_concat_<mode>): Adjust output for LE.
2013-10-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
* config/rs6000/vsx.md (vsx_concat_<mode>): Adjust output for LE.
(vsx_concat_v2sf): Likewise.
From-SVN: r203713
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/rs6000/vsx.md | 14 |
2 files changed, 17 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 9c32df8..be6345c 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2013-10-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com> + + * config/rs6000/vsx.md (vsx_concat_<mode>): Adjust output for LE. + (vsx_concat_v2sf): Likewise. + 2013-10-16 James Greenhalgh <james.greenhalgh@arm.com> * config/aarch64/aarch64.md diff --git a/gcc/config/rs6000/vsx.md b/gcc/config/rs6000/vsx.md index dfb9ab1..df87c19 100644 --- a/gcc/config/rs6000/vsx.md +++ b/gcc/config/rs6000/vsx.md @@ -1194,7 +1194,12 @@ (match_operand:<VS_scalar> 1 "vsx_register_operand" "ws,wa") (match_operand:<VS_scalar> 2 "vsx_register_operand" "ws,wa")))] "VECTOR_MEM_VSX_P (<MODE>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 |