]> granicus.if.org Git - llvm/commit
[ARM] Sink add/mul(shufflevector(insertelement())) for MVE instruction selection
authorSam Tebbs <sam.tebbs@arm.com>
Fri, 6 Sep 2019 16:01:32 +0000 (16:01 +0000)
committerSam Tebbs <sam.tebbs@arm.com>
Fri, 6 Sep 2019 16:01:32 +0000 (16:01 +0000)
commit087f60a05c318deb7e2eebf200f9f9d77b0f11f2
tree82a0c8becd2c2e31debf3adc4dbb523e76918325
parente6d4411bc1059600240cd20dbdeb458e1cd2960b
[ARM] Sink add/mul(shufflevector(insertelement())) for MVE instruction selection

This patch sinks add/mul(shufflevector(insertelement())) into the basic block in which they are used so that they can then be selected together.

This is useful for various MVE instructions, such as vmla and others that take R registers.

Loop tests have been added to the vmla test file to make sure vmlas are generated in loops.

Differential revision: https://reviews.llvm.org/D66295

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@371218 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/ARM/ARMISelLowering.cpp
test/CodeGen/Thumb2/mve-vmla.ll
test/Transforms/CodeGenPrepare/ARM/sink-add-mul-shufflevector.ll [new file with mode: 0644]