https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109254
--- Comment #4 from Jakub Jelinek <jakub at gcc dot gnu.org> --- And --- gcc/config/aarch64/aarch64.cc.jj 2023-03-13 00:11:52.328213351 +0100 +++ gcc/config/aarch64/aarch64.cc 2023-03-23 16:57:29.957866005 +0100 @@ -7388,6 +7388,9 @@ aarch64_function_value_regno_p (const un if (regno >= V0_REGNUM && regno < V0_REGNUM + HA_MAX_NUM_FLDS) return TARGET_FLOAT; + if (regno == P0_REGNUM) + return TARGET_SVE; + return false; } Or can one actually return in more than p0? Tried struct S { svbool_t a, b; }; but that is rejected...