AVX512_VPOPCNTDQ is a new feature set that Intel published here.
The patch represents the Clang side of the addition of six intrinsics for two new machine instructions (vpopcntd and vpopcntq).
It also includes the addition of the new feature set.
Paths
| Differential D33170
[X86] Adding avx512_vpopcntdq feature set and its intrinsics ClosedPublic Authored by oren_ben_simhon on May 14 2017, 5:17 AM.
Details Summary AVX512_VPOPCNTDQ is a new feature set that Intel published here. The patch represents the Clang side of the addition of six intrinsics for two new machine instructions (vpopcntd and vpopcntq).
Diff Detail
Event TimelineComment Actions Looks like gcc already implements this https://www.mail-archive.com/gcc-patches@gcc.gnu.org/msg156421.html Looks like their command line switch is -mavx512vpopcntdq and their preprocessor define is AVX512VPOPCNTDQ without an underscore. We should match for compatibility. oren_ben_simhon marked an inline comment as done. Comment ActionsImplemented comments posted until 05/15 (Thanks Craig and Simon) oren_ben_simhon marked an inline comment as done. Comment ActionsImplemented comments posted until 05/16 (Thanks Craig)
oren_ben_simhon marked an inline comment as done. Comment ActionsImplemented comments posted until 05/20 (Thanks Craig)
Comment Actions LGTM
This revision is now accepted and ready to land.May 22 2017, 10:05 AM Closed by commit rL303857: [X86] Adding avx512_vpopcntdq feature set and its intrinsics (authored by orenb). · Explain WhyMay 25 2017, 6:44 AM This revision was automatically updated to reflect the committed changes.
Revision Contents
Diff 99050 include/clang/Basic/BuiltinsX86.def
include/clang/Driver/Options.td
lib/Basic/Targets.cpp
lib/CodeGen/CGBuiltin.cpp
lib/Headers/CMakeLists.txt
lib/Headers/avx512vpopcntdqintrin.h
lib/Headers/immintrin.h
test/CodeGen/attr-target-x86.c
test/CodeGen/avx512vpopcntdqintrin.c
|
Would we be better off directly emitting Intrinsic::ctpop inside CGBuiltin.cpp?
AFAICT these builtins have no additional abilities compared to ctpop (other than masking which we can already handle).