The following patch introduces the following alternations:
- correcting the 'vpmulshiftqb' instruction, along with the respective intrinsics.
- Adding AVX512 missing instructions variants.
clang part: https://reviews.llvm.org/D25760
Paths
| Differential D25759
[AVX512][llvm] Adding missing instructions' variations AbandonedPublic Authored by coby on Oct 19 2016, 1:00 AM.
Details Summary The following patch introduces the following alternations:
clang part: https://reviews.llvm.org/D25760
Diff Detail
Event Timelinecoby updated this object. Comment Actions I think this patch should really be split up into separate pieces. The multishift part is unrelated to the rest. Also the Intel docs say zero masking for store instructions is a UD fault and not supported so I'm not sure the rest of this patch is correct. Comment Actions I wonder if AVX512VBMI should be made to imply AVX512BW so the mask64 and v64i8 would be valid for the multishift instruction. I think VPERMB also suffers from a similar problem where it requires the v64i8 type. Comment Actions
Dear Craig, there's indeed a specific exclusion regarding store semantics (and possibly more) when destination is of memory type, one which i've obviously failed to observe. Comment Actions Amending vpmultishiftqb is currently being maintained at the following patches:
Revision Contents
Diff 75114 include/llvm/IR/IntrinsicsX86.td
lib/Target/X86/X86InstrAVX512.td
test/CodeGen/X86/avx512vbmi-intrinsics.ll
test/CodeGen/X86/avx512vbmivl-intrinsics.ll
test/MC/X86/avx512vbmi-encoding.s
test/MC/X86/x86-64-avx512bw_vl.s
test/MC/X86/x86-64-avx512dq.s
test/MC/X86/x86-64-avx512dq_vl.s
test/MC/X86/x86-64-avx512f_vl.s
|