AVX512: Implemented encoding and intrinsics for
vplzcntq, vplzcntd, vpconflictq, vpconflictd
Added tests for intrinsics and encoding.
Paths
| Differential D11931
AVX512 : vplzcnt and vpconflict implemantation ClosedPublic Authored by igorb on Aug 11 2015, 1:22 AM.
Details Summary AVX512: Implemented encoding and intrinsics for vplzcntq, vplzcntd, vpconflictq, vpconflictd Added tests for intrinsics and encoding.
Diff Detail
Event Timelineigorb updated this object. Closed by commit rL246750: AVX512: Implemented encoding and intrinsics for vplzcntq, vplzcntd… (authored by ibreger). · Explain WhySep 3 2015, 2:06 AM This revision was automatically updated to reflect the committed changes. Comment Actions Hi Igor, Have you looked into promoting i8/i16 vector CTLZ to use the dword LZCNT instruction (trunc(sub(lzcnt(zext(x))))? Cheers, Simon. Comment Actions
This is a good idea, I will implement it. Comment Actions
Cheers, this should help CTTZ_UNDEF lowering (D12663) as well.
Revision Contents
Diff 33908 include/llvm/IR/IntrinsicsX86.td
lib/Target/X86/X86ISelLowering.h
lib/Target/X86/X86ISelLowering.cpp
lib/Target/X86/X86InstrAVX512.td
lib/Target/X86/X86InstrFragmentsSIMD.td
lib/Target/X86/X86IntrinsicsInfo.h
test/CodeGen/X86/avx512-intrinsics.ll
test/CodeGen/X86/avx512cdvl-intrinsics.lltest/CodeGen/X86/vector-lzcnt-128.ll
test/CodeGen/X86/vector-lzcnt-256.ll
test/CodeGen/X86/vector-lzcnt-512.ll
test/MC/X86/x86-64-avx512cd.s
test/MC/X86/x86-64-avx512cd_vl.s
|
AVX-512 conflict detection instructions
Instructions that count the number of leading zero bits