https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105463
--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> --- (define_insn "*movmisalign<mode>_mve_load" [(set (match_operand:MVE_VLD_ST 0 "s_register_operand" "=w") (unspec:MVE_VLD_ST [(match_operand:MVE_VLD_ST 1 "neon_permissive_struct_operand" " Ux")] UNSPEC_MISALIGNED_ACCESS))] "((TARGET_HAVE_MVE && VALID_MVE_SI_MODE (<MODE>mode)) || (TARGET_HAVE_MVE_FLOAT && VALID_MVE_SF_MODE (<MODE>mode))) && !BYTES_BIG_ENDIAN && unaligned_access" "vldr<V_sz_elem1>.<V_sz_elem>\t%q0, %E1" [(set_attr "type" "mve_load")] ) -mno-unaligned-access "fixes" it, the above simply lets the improper(?) load through.