From 6e8fd64f5a392278b2fc94f2174316a1dd3bc068 Mon Sep 17 00:00:00 2001 From: Bill Schmidt Date: Tue, 5 Nov 2013 14:27:17 +0000 Subject: [PATCH] vector.md (vec_pack_sfix_trunc_v2df): Adjust for little endian. 2013-11-05 Bill Schmidt * config/rs6000/vector.md (vec_pack_sfix_trunc_v2df): Adjust for little endian. (vec_pack_ufix_trunc_v2df): Likewise. From-SVN: r204395 --- gcc/ChangeLog | 6 ++++++ gcc/config/rs6000/vector.md | 14 ++++++++++++-- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 9b21a3a..938d62b 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2013-11-05 Bill Schmidt + + * 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 PR middle-end/58981 diff --git a/gcc/config/rs6000/vector.md b/gcc/config/rs6000/vector.md index 0a1130f..68214d9 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; }) -- 2.7.4