hjl.tools added inline comments.

================
Comment at: llvm/lib/Target/X86/X86.td:84
                                       "Enable SSE 4.2 instructions",
-                                      [FeatureSSE41]>;
+                                      [FeatureSSE41, FeatureCRC32]>;
 // The MMX subtarget feature is separate from the rest of the SSE features
----------------
craig.topper wrote:
> hjl.tools wrote:
> > craig.topper wrote:
> > > tianqing wrote:
> > > > craig.topper wrote:
> > > > > Doesn't this make -mno-crc32 disable sse4.2? Is that what we want?
> > > > > 
> > > > > Or should we be doing this like popcnt where we loosely enable it at 
> > > > > the end of X86TargetInfo::initFeatureMap
> > > > It does. But it's not a big deal in this case. The scenario described 
> > > > in the commit message doesn't require crc32 capable to be disabled 
> > > > separately.
> > > What does gcc do?
> > ```
> > [hjl@gnu-skx-1 gcc]$ cat /tmp/x.c
> > #include <x86intrin.h>
> > 
> > int
> > foo (int x, char c)
> > {
> >   return __crc32b (x, c);
> > }
> > [hjl@gnu-skx-1 gcc]$ /usr/gcc-12.0.0-x32/bin/gcc -S -O2 /tmp/x.c -S 
> > -msse4.2 
> > [hjl@gnu-skx-1 gcc]$ /usr/gcc-12.0.0-x32/bin/gcc -S -O2 /tmp/x.c -S -mcrc32
> > [hjl@gnu-skx-1 gcc]$ /usr/gcc-12.0.0-x32/bin/gcc -S -O2 /tmp/x.c -S 
> > -msse4.2 -mno-crc32
> > In file included from 
> > /usr/gcc-12.0.0-x32/lib/gcc/x86_64-pc-linux-gnu/12.0.0/include/x86gprintrin.h:27,
> >                  from 
> > /usr/gcc-12.0.0-x32/lib/gcc/x86_64-pc-linux-gnu/12.0.0/include/x86intrin.h:27,
> >                  from /tmp/x.c:1:
> > /tmp/x.c: In function ??foo??:
> > /usr/gcc-12.0.0-x32/lib/gcc/x86_64-pc-linux-gnu/12.0.0/include/ia32intrin.h:63:1:
> >  error: inlining failed in call to ??always_inline?? ??__crc32b??: target 
> > specific option mismatch
> >    63 | __crc32b (unsigned int __C, unsigned char __V)
> >       | ^~~~~~~~
> > /tmp/x.c:6:10: note: called from here
> >     6 |   return __crc32b (x, c);
> >       |          ^~~~~~~~~~~~~~~
> > [hjl@gnu-skx-1 gcc]$ 
> > ```
> What does gcc do for an sse4.2 intrinsic that isn't crc32 with "-msse4.2 
> -mno-crc32"?
-mno-crc32 has no impact on non-crc32 intrinsics.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D105462/new/

https://reviews.llvm.org/D105462

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to