https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102254
--- Comment #5 from Hongtao.liu <crazylht at gmail dot com> --- and also ICE for (subreg:DF(reg:SF)), but ok for (subreg:v2df(reg:SF)0) void foo (void) { float x; *((double *) &x) = 0; } typedef double v2df __attribute__((vector_size(16))); void foo1 (v2df a) { float x; *((v2df*) &x) = a; }