summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/rs6000/vector.md14
2 files changed, 18 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 9b21a3a5445..938d62b7dd5 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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
diff --git a/gcc/config/rs6000/vector.md b/gcc/config/rs6000/vector.md
index 0a1130f7bff..68214d91316 100644
--- a/gcc/config/rs6000/vector.md
+++ b/gcc/config/rs6000/vector.md
@@ -850,7 +850,12 @@
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;
})
@@ -865,7 +870,12 @@
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;
})
OpenPOWER on IntegriCloud