http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52407
Richard Guenther <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Target| |x86_64-*-*
--- Comment #3 from Richard Guenther <rguenth at gcc dot gnu.org> 2012-02-28
11:32:34 UTC ---
Hmm,
ix86_expand_vector_set
has for the V2DI case
ix86_expand_vector_extract (false, tmp, target, 1 - elt);
if (elt == 0)
tmp = gen_rtx_VEC_CONCAT (mode, tmp, val);
else
tmp = gen_rtx_VEC_CONCAT (mode, val, tmp);
vs. for the V2DF case:
tmp = gen_rtx_VEC_SELECT (inner_mode, target, tmp);
if (elt == 0)
op0 = val, op1 = tmp;
else
op0 = tmp, op1 = val;
tmp = gen_rtx_VEC_CONCAT (mode, op0, op1);
looks the V2DI case has swapped operands.