HomePhabricator

This is a large patch for X86 AVX-512 of an optimization for reducing code size…
Audit RequiredrL290663

Description

This is a large patch for X86 AVX-512 of an optimization for reducing code size by encoding EVEX AVX-512 instructions using the shorter VEX encoding when possible.

There are cases of AVX-512 instructions that have two possible encodings. This is the case with instructions that use vector registers with low indexes of 0 - 15 and do not use the zmm registers or the mask k registers.
The EVEX encoding prefix requires 4 bytes whereas the VEX prefix can take only up to 3 bytes. Consequently, using the VEX encoding for these instructions results in a code size reduction of ~2 bytes even though it is compiled with the AVX-512 features enabled.

Reviewers: Craig Topper, Zvi Rackoover, Elena Demikhovsky
Differential Revision: https://reviews.llvm.org/D27901

Details

Auditors
grosbach
Committed
gadi.haberDec 28 2016, 2:12 AM
Differential Revision
D27901: [X86][[AVX512] Code size reduction in X86 by replacing EVEX with VEX encoding
Parents
rL290662: Fix ABI incompatible C++03 nullptr_t
Branches
Unknown
Tags
Unknown