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]$

Reply via email to