Hi all!
We (Intel compiler team, Moscow) would like to announce enabling in
LLVM/Clang the additional AVX512 instructions, introduced in the
newest release of Intel Architecture Instruction Set Extensions
Programming Reference
(Intel Developer Zone).
This ISA adds 3 new features:
- AVX512VL ("vector length" extension): many of AVX512 instructions
were extended to support %XMM and %YMM registers, not only %ZMM.
- AVX512BW ("byte and word" instructions): new instructions for vector
elements lengths of 8 and 16 bits .
- AVX512DQ ("doubleword and quadword" instructions): new instructions
for vector elements lengths of 32 and 64 bits (those not implemented
in AVX512F).
We've implemented or working on:
- 3 features above (1000+ instructions);
- lowering for many of masked operations , so it can be utilized in vectorizers;
- intrinsics, compatible with those from gcc/icc;
- thousands of encoding and lowering tests for these features;
Contribution details:
- We are going to contribute new features into LLVM/Clang starting today.
- The major contributor and the maintainer of these features in our
team is Robert Khasanov. You may address him your questions on
AVX512{BW,DQ,VL} implementation and support in LLVM.
- Our LLVM patches were kindly reviewed and approved by Elena
Demikhovsky (Intel), the author of AVX512 support in LLVM.
Your feedback is welcome!
More information:
- James Reinders blog post:
- SDE emulator supporting new features (use SKX target):
- ISA: Intel Developer Zone
Intel Compiler Team, Moscow.