diff options
| author | Simon Pilgrim <llvm-dev@redking.me.uk> | 2020-08-10 11:05:43 +0100 |
|---|---|---|
| committer | Simon Pilgrim <llvm-dev@redking.me.uk> | 2020-08-10 11:05:57 +0100 |
| commit | c0c3b9a25feec84e739cc3a2b30e1ac336648799 (patch) | |
| tree | ae62a0a9aefdf366cdcde32fddee7f488bb79920 /llvm/lib/CodeGen/MachineDebugify.cpp | |
| parent | 8119d6c14695b436adb66f0d891863eeea9e62ad (diff) | |
| download | llvm-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
