]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
vsx.md (vsx_concat_<mode>): Adjust output for LE.
authorBill Schmidt <wschmidt@linux.vnet.ibm.com>
Wed, 16 Oct 2013 17:48:03 +0000 (17:48 +0000)
committerWilliam Schmidt <wschmidt@gcc.gnu.org>
Wed, 16 Oct 2013 17:48:03 +0000 (17:48 +0000)
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

gcc/ChangeLog
gcc/config/rs6000/vsx.md

index 9c32df89da4a76333e59d8ab937e7044f804d740..be6345c8447ca64f455ac8279510f250281d7d6b 100644 (file)
@@ -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
index dfb9ab1978395f37e8d488aedb8d2c86c5052f9b..df87c1967541af9e991ccb374ae2f0481b6d1e67 100644 (file)
         (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
          (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