https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101492
Bug ID: 101492 Summary: -msse4 -mgeneral-regs-only doesn't work Product: gcc Version: 11.1.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: hjl.tools at gmail dot com Target Milestone: --- Target: i386,x86-64 [hjl@gnu-cfl-2 i386]$ cat pr99744-9.c /* { dg-do compile } */ /* { dg-options "-O2 -msse4.2 -mgeneral-regs-only" } */ #include <x86intrin.h> unsigned int foo1 (unsigned int x, unsigned int y) { return __crc32d (x, y); } [hjl@gnu-cfl-2 i386]$ gcc -S -O2 pr99744-9.c -msse4 -mgeneral-regs-only -o /tmp/x.s In file included from /usr/lib/gcc/x86_64-redhat-linux/11/include/x86gprintrin.h:27, from /usr/lib/gcc/x86_64-redhat-linux/11/include/x86intrin.h:27, from pr99744-9.c:4: pr99744-9.c: In function ‘foo1’: /usr/lib/gcc/x86_64-redhat-linux/11/include/ia32intrin.h:77:1: error: inlining failed in call to ‘always_inline’ ‘__crc32d’: target specific option mismatch 77 | __crc32d (unsigned int __C, unsigned int __V) | ^~~~~~~~ pr99744-9.c:9:10: note: called from here 9 | return __crc32d (x, y); | ^~~~~~~~~~~~~~~ [hjl@gnu-cfl-2 i386]$