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.

Reply via email to