https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61301
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |missed-optimization Status|UNCONFIRMED |NEW Last reconfirmed| |2014-05-26 CC| |rguenth at gcc dot gnu.org, | |thomas.preudhomme at arm dot com Ever confirmed|0 |1 Severity|normal |enhancement --- Comment #3 from Richard Biener <rguenth at gcc dot gnu.org> --- _3 = MEM[(const float *)this_1(D) + 4B]; _4 = MEM[(const float *)this_1(D)]; _5 = MEM[(const float *)this_1(D) + 12B]; _6 = MEM[(const float *)this_1(D) + 8B]; _7 = {_3, _4, _5, _6}; return _7; does look like an opportunity for a bswap pass improvement. Basically handle CONSTRUCTOR as supported composition operation (and then support vector loads and shuffle, of course).