vector.md (vec_pack_trunc_v2df): Revert previous little endian change.

2013-11-21  Bill Schmidt  <wschmidt@vnet.ibm.com>

	* config/rs6000/vector.md (vec_pack_trunc_v2df): Revert previous
	little endian change.
	(vec_pack_sfix_trunc_v2df): Likewise.
	(vec_pack_ufix_trunc_v2df): Likewise.
	* config/rs6000/rs6000.c (rs6000_expand_interleave): Correct
	double checking of endianness.

From-SVN: r205241
This commit is contained in:
Bill Schmidt 2013-11-22 03:27:23 +00:00 committed by William Schmidt
parent ce7e41fc9a
commit 5b3f0a5475
3 changed files with 13 additions and 19 deletions

View File

@ -1,3 +1,12 @@
2013-11-21 Bill Schmidt <wschmidt@vnet.ibm.com>
* config/rs6000/vector.md (vec_pack_trunc_v2df): Revert previous
little endian change.
(vec_pack_sfix_trunc_v2df): Likewise.
(vec_pack_ufix_trunc_v2df): Likewise.
* config/rs6000/rs6000.c (rs6000_expand_interleave): Correct
double checking of endianness.
2013-11-22 Jakub Jelinek <jakub@redhat.com>
* tree-vect-generic.c (optimize_vector_constructor): New function.

View File

@ -30116,7 +30116,7 @@ rs6000_expand_interleave (rtx target, rtx op0, rtx op1, bool highp)
unsigned i, high, nelt = GET_MODE_NUNITS (vmode);
rtx perm[16];
high = (highp == BYTES_BIG_ENDIAN ? 0 : nelt / 2);
high = (highp ? 0 : nelt / 2);
for (i = 0; i < nelt / 2; i++)
{
perm[i * 2] = GEN_INT (i + high);

View File

@ -831,12 +831,7 @@
emit_insn (gen_vsx_xvcvdpsp (r1, operands[1]));
emit_insn (gen_vsx_xvcvdpsp (r2, operands[2]));
if (BYTES_BIG_ENDIAN)
rs6000_expand_extract_even (operands[0], r1, r2);
else
rs6000_expand_extract_even (operands[0], r2, r1);
rs6000_expand_extract_even (operands[0], r1, r2);
DONE;
})
@ -851,12 +846,7 @@
emit_insn (gen_vsx_xvcvdpsxws (r1, operands[1]));
emit_insn (gen_vsx_xvcvdpsxws (r2, operands[2]));
if (BYTES_BIG_ENDIAN)
rs6000_expand_extract_even (operands[0], r1, r2);
else
rs6000_expand_extract_even (operands[0], r2, r1);
rs6000_expand_extract_even (operands[0], r1, r2);
DONE;
})
@ -871,12 +861,7 @@
emit_insn (gen_vsx_xvcvdpuxws (r1, operands[1]));
emit_insn (gen_vsx_xvcvdpuxws (r2, operands[2]));
if (BYTES_BIG_ENDIAN)
rs6000_expand_extract_even (operands[0], r1, r2);
else
rs6000_expand_extract_even (operands[0], r2, r1);
rs6000_expand_extract_even (operands[0], r1, r2);
DONE;
})