https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61301
--- Comment #1 from Marc Glisse <glisse at gcc dot gnu.org> --- forwprop recognizes a constructor of bit_field_ref and turns it into a vec_perm_expr, but it can't handle a constructor of mem_ref (that requires looking for clobbers etc, not a job for forwprop). SLP sees the mem_ref properly but says it didn't find any opportunity. I doubt bswap handles this kind of thing. At least when shuffle2 is inlined it is likely to become like shuffle1...