https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61301
--- Comment #4 from Thomas Preud'homme <thomas.preudhomme at arm dot com> --- (In reply to Richard Biener from comment #3) > _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). I had started working on shuffle support in bswap but I realized this would probably not help ARM as move between floating point register and general purpose register are quite slow. I then moved on to higher priority tasks This doesn't mean I'm finished with the bswap task, as several improvement were suggested to me during the review of the first patch to improve bswap. So I wouldn't hold my breath for me doing work for now, feel free to beat me to it.