https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88847
--- Comment #3 from Tamar Christina <tnfchris at gcc dot gnu.org> --- right, so it seems this is an SVE issue and doesn't have much to do with stack protector. The issue is that aarch64_sve_struct_memory_operand_p doesn't take into account whether it is before or after reload. Before reload we need to allow any offset since reload would do what it does and either split it or make the address legitimate in some way.