aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/CodeGen/MachineFunctionPrinterPass.cpp
diff options
context:
space:
mode:
authorSimon Pilgrim <llvm-dev@redking.me.uk>2023-07-31 17:08:28 +0100
committerSimon Pilgrim <llvm-dev@redking.me.uk>2023-07-31 17:08:34 +0100
commit071671e15c3eda59165db435b102fbeb1c673a29 (patch)
treedbc5636abe895f08a3018cfe09ebe8b25dcd3b6d /llvm/lib/CodeGen/MachineFunctionPrinterPass.cpp
parentcce35994bb7294d273478b5756f760c4137e1194 (diff)
downloadllvm-071671e15c3eda59165db435b102fbeb1c673a29.zip
llvm-071671e15c3eda59165db435b102fbeb1c673a29.tar.gz
llvm-071671e15c3eda59165db435b102fbeb1c673a29.tar.bz2
[X86] Allow pre-SSE41 targets to extract multiple v16i8 elements coming from the same DWORD/WORD super-element
Pre-SSE41 targets tended to have weak (serial) GPR<->VEC moves, meaning we only allowed a single v16i8 extraction before spilling the vector to stack and loading the i8 elements instead. But this didn't make use of the DWORD/WORD extraction we had to use could extract multiple i8 elements at the same time. This patch attempts to determine if all uses of a vector are element extractions, and works out whether all the extractions share the same WORD or (lowest) DWORD, in which case we can perform a single extraction and just shift/truncate the individual elements. Differential Revision: https://reviews.llvm.org/D156350
Diffstat (limited to 'llvm/lib/CodeGen/MachineFunctionPrinterPass.cpp')
0 files changed, 0 insertions, 0 deletions