[LLVMdev] New AVX512{VL,BW,DQ} features enabled in LLVM

Zinovy Nis zinovy.nis at gmail.com
Mon Jul 21 07:25:37 PDT 2014


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
(https://software.intel.com/sites/default/files/managed/c6/a9/319433-020.pdf).


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:
https://software.intel.com/en-us/blogs/additional-avx-512-instructions

- SDE emulator supporting new features (use SKX target):
https://software.intel.com/en-us/articles/intel-software-development-emulator

- ISA: https://software.intel.com/sites/default/files/managed/c6/a9/319433-020.pdf


Intel Compiler Team, Moscow.



More information about the llvm-dev mailing list