llvm-project/llvm/lib/Target/X86/InstPrinter
Gadi Haber 19c4fc5e62 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

llvm-svn: 290663
2016-12-28 10:12:48 +00:00
..
CMakeLists.txt
LLVMBuild.txt
X86ATTInstPrinter.cpp X86: Allow expressions to appear as u8imm operands. 2016-10-20 01:58:34 +00:00
X86ATTInstPrinter.h Remove extra forward declarations and scrub includes for all in tree InstPrinters. NFC 2015-12-25 22:10:01 +00:00
X86InstComments.cpp [X86] Remove alternate CodeGenOnly version of (v)movq that declared the load size as i128mem. Change all uses to the use the i64mem version. 2016-11-22 05:31:43 +00:00
X86InstComments.h 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. 2016-12-28 10:12:48 +00:00
X86IntelInstPrinter.cpp X86: Allow expressions to appear as u8imm operands. 2016-10-20 01:58:34 +00:00
X86IntelInstPrinter.h Remove extra forward declarations and scrub includes for all in tree InstPrinters. NFC 2015-12-25 22:10:01 +00:00