aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBill Schmidt <wschmidt@linux.vnet.ibm.com>2013-10-16 17:48:03 +0000
committerWilliam Schmidt <wschmidt@gcc.gnu.org>2013-10-16 17:48:03 +0000
commitde75c8761e57b0360c9b93690a011e406b7a5f60 (patch)
treed0e74efd6408ad270bad65918b2fe5181a5c759c
parent21216998ab18b308343088687fb31d9110f40e01 (diff)
downloadgcc-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/ChangeLog5
-rw-r--r--gcc/config/rs6000/vsx.md14
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