vector.md (vec_pack_sfix_trunc_v2df): Adjust for little endian.
authorBill Schmidt <wschmidt@linux.vnet.ibm.com>
Tue, 5 Nov 2013 14:27:17 +0000 (14:27 +0000)
committerWilliam Schmidt <wschmidt@gcc.gnu.org>
Tue, 5 Nov 2013 14:27:17 +0000 (14:27 +0000)
2013-11-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

* config/rs6000/vector.md (vec_pack_sfix_trunc_v2df): Adjust for
little endian.
(vec_pack_ufix_trunc_v2df): Likewise.

From-SVN: r204395

gcc/ChangeLog
gcc/config/rs6000/vector.md

index 9b21a3a..938d62b 100644 (file)
@@ -1,3 +1,9 @@
+2013-11-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
+
+       * config/rs6000/vector.md (vec_pack_sfix_trunc_v2df): Adjust for
+       little endian.
+       (vec_pack_ufix_trunc_v2df): Likewise.
+
 2013-11-05  H.J. Lu  <hongjiu.lu@intel.com>
 
        PR middle-end/58981
index 0a1130f..68214d9 100644 (file)
 
   emit_insn (gen_vsx_xvcvdpsxws (r1, operands[1]));
   emit_insn (gen_vsx_xvcvdpsxws (r2, operands[2]));
-  rs6000_expand_extract_even (operands[0], r1, r2);
+
+  if (BYTES_BIG_ENDIAN)
+    rs6000_expand_extract_even (operands[0], r1, r2);
+  else
+    rs6000_expand_extract_even (operands[0], r2, r1);
+
   DONE;
 })
 
 
   emit_insn (gen_vsx_xvcvdpuxws (r1, operands[1]));
   emit_insn (gen_vsx_xvcvdpuxws (r2, operands[2]));
-  rs6000_expand_extract_even (operands[0], r1, r2);
+
+  if (BYTES_BIG_ENDIAN)
+    rs6000_expand_extract_even (operands[0], r1, r2);
+  else
+    rs6000_expand_extract_even (operands[0], r2, r1);
+
   DONE;
 })