diff options
author | Simon Pilgrim <llvm-dev@redking.me.uk> | 2021-11-12 16:47:43 +0000 |
---|---|---|
committer | Simon Pilgrim <llvm-dev@redking.me.uk> | 2021-11-12 16:48:10 +0000 |
commit | 6bb71738e26ca3ba4f2894bf6542bf33625a52c0 (patch) | |
tree | 0577e59fbd12fe9b3f01d3b0606d6e3abc1a3b1a /llvm/unittests/IR/ConstantRangeTest.cpp | |
parent | bd81c39107e35ffa89df7df573f2719dee59ecef (diff) | |
download | llvm-6bb71738e26ca3ba4f2894bf6542bf33625a52c0.zip llvm-6bb71738e26ca3ba4f2894bf6542bf33625a52c0.tar.gz llvm-6bb71738e26ca3ba4f2894bf6542bf33625a52c0.tar.bz2 |
[X86] convertShiftLeftToScale - improve vXi8 constant handling
Add support for v32i8/v64i8 converting shift-by-constant to multiply-by-constant. This helps us avoid the generic vXi8 shift lowering, and a lot of VPBLENDVB ops which can be particularly slow.
We also needed to reorder a few shift lowering patterns to prevent regressions, particularly for XOP+AVX2 (Excavator) targets (which can split to fast v16i8 shifts) and AVX512-BWI targets (which prefers to extend to fast v32i16 shifts).
Diffstat (limited to 'llvm/unittests/IR/ConstantRangeTest.cpp')
0 files changed, 0 insertions, 0 deletions