[PATCH] D105462: [X86] Add CRC32 feature.

Wang Tianqing via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Wed Aug 25 19:31:43 PDT 2021


tianqing marked an inline comment as done.
tianqing added inline comments.


================
Comment at: clang/lib/Basic/Targets/X86.cpp:158
 
+  // Enable CRC32 if SSE4.2 is enabled and CRC32 is not explicitly set.
+  I = Features.find("sse4.2");
----------------
craig.topper wrote:
> Why doesn't this say "not explicitly disabled" like the others above?
Actually what I mean was "not explicitly enabled or disabled".


================
Comment at: clang/lib/Headers/ia32intrin.h:19
 #define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__))
 #define __DEFAULT_FN_ATTRS_SSE42 __attribute__((__always_inline__, __nodebug__, __target__("sse4.2")))
+#define __DEFAULT_FN_ATTRS_CRC32 __attribute__((__always_inline__, __nodebug__, __target__("crc32")))
----------------
craig.topper wrote:
> Is __DEFAULT_FN_ATTRS_SSE42 dead now?
Yes.


================
Comment at: clang/lib/Headers/immintrin.h:518
+    defined(__CRC32__)
+#include <crc32intrin.h>
+#endif
----------------
pengfei wrote:
> Should it be better to move together with "include <smmintrin.h>"?
I removed this block because it's already in x86gprintrin.h


================
Comment at: clang/lib/Headers/smmintrin.h:2358
-///    operand \a __D.
-static __inline__ unsigned int __DEFAULT_FN_ATTRS
-_mm_crc32_u8(unsigned int __C, unsigned char __D)
----------------
craig.topper wrote:
> Was min vector width incorrectly being applied to these before?
I think so.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D105462



More information about the cfe-commits mailing list