https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101017
--- Comment #6 from Hongtao Liu <liuhongt at gcc dot gnu.org> --- (In reply to Andrew Pinski from comment #4) > Note the testcase which ICEs is now: > ``` > typedef int v32qi __attribute__((vector_size(32))); > __attribute__((target_clones("arch=core-avx2", "default"))) v32qi > foo_ashift_256() {} > ``` > > Note the `int` there. Otherwise you get an error. For arch=core-avx2, function returns in reg(cfun->returns_struct), but for "default" and resolver function, it returns in memory(cfun->returns_struct == 1) The mismatch between resolver and dispatched function caused the ICE.