https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61320
--- Comment #52 from thopre01 at gcc dot gnu.org --- (In reply to Eric Botcazou from comment #51) > > TARGET_MEM_REF is supposed to be a valid memory access for the target though > and, by definition, an unaligned access is not valid for a strict alignment > target (unless you have a movmisalign pattern), so the problem is the > TARGET_MEM_REF. So we just need to identify what changes the MEM_REF that bswap introduce into a TARGET_MEM_REF without taking alignment into account. After bswap it's only a MEM_REF: load_dst_215 = MEM[(unsigned char *)load_src_277];