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.

Reply via email to