2011-02-07 Steve Ellcey <sje@cup.hp.com>
PR target/46997
* vect.md (vec_interleave_highv2sf): Change fmix for TARGET_BIG_ENDIAN.
(vec_interleave_lowv2sf): Ditto.
(vec_extract_evenv2sf): Add TARGET_BIG_ENDIAN check.
(vec_extract_oddv2sf): Ditto.
From-SVN: r169904
+2011-02-07 Steve Ellcey <sje@cup.hp.com>
+
+ PR target/46997
+ * vect.md (vec_interleave_highv2sf): Change fmix for TARGET_BIG_ENDIAN.
+ (vec_interleave_lowv2sf): Ditto.
+ (vec_extract_evenv2sf): Add TARGET_BIG_ENDIAN check.
+ (vec_extract_oddv2sf): Ditto.
+
2011-02-07 Mike Stump <mikestump@comcast.net>
PR target/42333
2011-02-07 Mike Stump <mikestump@comcast.net>
PR target/42333
{
/* Recall that vector elements are numbered in memory order. */
if (TARGET_BIG_ENDIAN)
{
/* Recall that vector elements are numbered in memory order. */
if (TARGET_BIG_ENDIAN)
- return "%,fmix.r %0 = %F1, %F2";
+ return "%,fmix.l %0 = %F1, %F2";
else
return "%,fmix.l %0 = %F2, %F1";
}
else
return "%,fmix.l %0 = %F2, %F1";
}
{
/* Recall that vector elements are numbered in memory order. */
if (TARGET_BIG_ENDIAN)
{
/* Recall that vector elements are numbered in memory order. */
if (TARGET_BIG_ENDIAN)
- return "%,fmix.l %0 = %F1, %F2";
+ return "%,fmix.r %0 = %F1, %F2";
else
return "%,fmix.r %0 = %F2, %F1";
}
else
return "%,fmix.r %0 = %F2, %F1";
}
[(match_operand:V2SF 0 "gr_register_operand" "")
(match_operand:V2SF 1 "gr_register_operand" "")
(match_operand:V2SF 2 "gr_register_operand" "")]
[(match_operand:V2SF 0 "gr_register_operand" "")
(match_operand:V2SF 1 "gr_register_operand" "")
(match_operand:V2SF 2 "gr_register_operand" "")]
- emit_insn (gen_vec_interleave_lowv2sf (operands[0], operands[1],
- operands[2]));
+ if (TARGET_BIG_ENDIAN)
+ emit_insn (gen_vec_interleave_highv2sf (operands[0], operands[1],
+ operands[2]));
+ else
+ emit_insn (gen_vec_interleave_lowv2sf (operands[0], operands[1],
+ operands[2]));
[(match_operand:V2SF 0 "gr_register_operand" "")
(match_operand:V2SF 1 "gr_register_operand" "")
(match_operand:V2SF 2 "gr_register_operand" "")]
[(match_operand:V2SF 0 "gr_register_operand" "")
(match_operand:V2SF 1 "gr_register_operand" "")
(match_operand:V2SF 2 "gr_register_operand" "")]
- emit_insn (gen_vec_interleave_highv2sf (operands[0], operands[1],
- operands[2]));
+ if (TARGET_BIG_ENDIAN)
+ emit_insn (gen_vec_interleave_lowv2sf (operands[0], operands[1],
+ operands[2]));
+ else
+ emit_insn (gen_vec_interleave_highv2sf (operands[0], operands[1],
+ operands[2]));