diff options
author | Gadi Haber <gadi.haber@intel.com> | 2016-12-28 10:12:48 +0000 |
---|---|---|
committer | Gadi Haber <gadi.haber@intel.com> | 2016-12-28 10:12:48 +0000 |
commit | 19c4fc5e62905006dfcee26ade7dbada2c90fae9 (patch) | |
tree | 049e45129d9006aec0e1c1f7943316abcbc9092a /llvm/unittests/Analysis/LazyCallGraphTest.cpp | |
parent | b9565705bdc917800a4298473be4a69273abe514 (diff) | |
download | llvm-19c4fc5e62905006dfcee26ade7dbada2c90fae9.zip llvm-19c4fc5e62905006dfcee26ade7dbada2c90fae9.tar.gz llvm-19c4fc5e62905006dfcee26ade7dbada2c90fae9.tar.bz2 |
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
Diffstat (limited to 'llvm/unittests/Analysis/LazyCallGraphTest.cpp')
0 files changed, 0 insertions, 0 deletions