https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93080
--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> --- It's a bugfix so applicable for stage3... pre-approved with a testcase. wonder how complicated it would be to handle vector int g(vector int a) { int b = a[0]; (*(vector unsigned int *)&a)[0] = b; return a; } or punned int/float. Probably doesn't happen in practice though.