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.