https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115816
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |diagnostic, | |ice-on-invalid-code Ever confirmed|0 |1 Status|UNCONFIRMED |NEW Last reconfirmed| |2024-07-08 Target| |x86_64-*-* --- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> --- register __attribute__((__vector_size__(16 * sizeof(float)))) float a asm ("zmm5"), b asm("zmm6"), c asm ("zmm7"); __attribute__((target("sse4.1,arch=core2"))) void d() { for (int e;;) c[e] = a[e] < b[e]; } for a testcase without "errors". It's invalid to refer to 'zmm' from a function that has AVX512 disabled, but I think that's hard to diagnose until it is too late. The middle-end definitely doesn't expect this and we do not re-layout globals. IIRC we had _some_ fixups during RTL expansion for this but I'm quite sure it didn't involve global hardregs.