https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63525

Andrew Pinski <pinskia at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |RESOLVED
         Resolution|---                         |FIXED
   Target Milestone|---                         |7.0

--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
This was fixed on the gimple level in GCC 7+.
That is :
  _mm_store_pd(tmp, v);
  x = tmp[0];
  y = tmp[1];

Produces now:
  _7 = BIT_FIELD_REF <v_19, 64, 0>;
  x = _7;
  _11 = BIT_FIELD_REF <v_19, 64, 64>;
  y = _11;

Where it would be this before:
  MEM[(__m128d * {ref-all})&tmp] = v_21;
  _10 = tmp[0];
  x = _10;
  _12 = tmp[1];
  y = _12;

This was implemented by r7-987.

So closing as fixed.

Reply via email to