aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/CodeGen/MachineDebugify.cpp
diff options
context:
space:
mode:
authorSimon Pilgrim <llvm-dev@redking.me.uk>2020-08-10 11:05:43 +0100
committerSimon Pilgrim <llvm-dev@redking.me.uk>2020-08-10 11:05:57 +0100
commitc0c3b9a25feec84e739cc3a2b30e1ac336648799 (patch)
treeae62a0a9aefdf366cdcde32fddee7f488bb79920 /llvm/lib/CodeGen/MachineDebugify.cpp
parent8119d6c14695b436adb66f0d891863eeea9e62ad (diff)
downloadllvm-c0c3b9a25feec84e739cc3a2b30e1ac336648799.zip
llvm-c0c3b9a25feec84e739cc3a2b30e1ac336648799.tar.gz
llvm-c0c3b9a25feec84e739cc3a2b30e1ac336648799.tar.bz2
[ScalarizeMaskedMemIntrin] Scalarize constant mask expandload as shuffle(build_vector,pass_through)
As noticed on D66004, scalarization of an expandload with a constant mask as a chain of irregular loads+inserts makes it tricky to optimize before lowering, resulting in difficulties in merging loads etc. This patch instead scalarizes the expansion to a build_vector(load0, load1, undef, load2,....) style pattern and then performs a blend shuffle with the pass through vector. This allows us to more easily make use of all the build_vector combines, merging of consecutive loads etc. Differential Revision: https://reviews.llvm.org/D85416
Diffstat (limited to 'llvm/lib/CodeGen/MachineDebugify.cpp')
0 files changed, 0 insertions, 0 deletions