http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55266
--- Comment #1 from Marc Glisse <glisse at gcc dot gnu.org> 2012-11-13 10:23:03 UTC --- The first copy is PR 52436. The second copy has a patch posted here: http://gcc.gnu.org/ml/gcc-patches/2012-11/msg00900.html The last copy would require turning: gimple_assign <constructor, _5, {_15, _18}, NULL, NULL> gimple_assign <ssa_name, *x_2(D), _5, NULL, NULL> into: gimple_assign <ssa_name, *x_2(D), _15, NULL, NULL> gimple_assign <ssa_name, MEM[(vec *)x_2(D) + 16B], _18, NULL, NULL> (not sure if endianness matters here) which could maybe more easily be done by splitting the memory write (when the vector type is not supported) into a suitable number of bit_field_ref extractions and memory writes and relying on forwprop4 to simplify the bit_field_refs of the constructor.