https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115748

            Bug ID: 115748
           Summary: [15 Regression] gcc.target/i386/avx512bw-pr70509.c
                    SIGILL with -m32
           Product: gcc
           Version: 15.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: rguenth at gcc dot gnu.org
  Target Milestone: ---

On a non-AVX512 machine some of the avx512bw tests FAIL as we seem to use kmov
in the cpu detection code:

Program received signal SIGILL, Illegal instruction.
0x080491eb in __get_cpuid_count (__leaf=7, __subleaf=0, 
    __eax=<synthetic pointer>, __ebx=<synthetic pointer>, 
    __ecx=<synthetic pointer>, __edx=<synthetic pointer>)
    at /home/rguenther/obj/gcc/include/cpuid.h:346
346       __cpuid_count (__leaf, __subleaf, *__eax, *__ebx, *__ecx, *__edx);
(gdb) disassemble
...
   0x080491df <+46>:    mov    $0x7,%eax
   0x080491e4 <+51>:    mov    $0x0,%ecx
   0x080491e9 <+56>:    cpuid
=> 0x080491eb <+58>:    kmovd  %ebx,%k0
   0x080491ef <+62>:    mov    $0x1,%eax
   0x080491f4 <+67>:    mov    $0x0,%ebx

this is in avx512-check.h which contains main that's compiled with flags
assuming there's no incentive to use any non-base x86-64 ISA.

Reply via email to