https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96239
--- Comment #3 from Jakub Jelinek <jakub at gcc dot gnu.org> --- Created attachment 49766 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=49766&action=edit gcc11-pr96239.patch So, I wrote this untested patch which fixes my testcases, but doesn't fix due to pass ordering issue the original one, as the bswap pass is done before vectorization only (both loop and slp). I guess some of the options are schedule another bswap pass instance later, or include just the vector CONSTRUCTOR handling in e.g. the store-merging pass (yes, it would be related just because the bswap code lives in the store-merging source file and performs also bswap optimizations upon stores).