aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Object/MachOObjectFile.cpp
diff options
context:
space:
mode:
authorDavid Green <david.green@arm.com>2022-02-22 23:37:22 +0000
committerDavid Green <david.green@arm.com>2022-02-22 23:37:22 +0000
commit774b571546915d34a7254b38833001c77745e760 (patch)
treeb43721bb91a96a663299e1d84fce53b471521fa5 /llvm/lib/Object/MachOObjectFile.cpp
parent606cb8548a1b7763e0c8489c5efe66803a7ede72 (diff)
downloadllvm-774b571546915d34a7254b38833001c77745e760.zip
llvm-774b571546915d34a7254b38833001c77745e760.tar.gz
llvm-774b571546915d34a7254b38833001c77745e760.tar.bz2
[AArch64] Alter mull shuffle(ext(..)) combine to work on buildvectors
We have a combine for converting mul(dup(ext(..)), ...) into mul(ext(dup(..)), ..), for allowing more uses of smull and umull instructions. Currently it looks for vector insert and shuffle vectors to detect the element that we can convert to a vector extend. Not all cases will have a shufflevector/insert element though. This started by extending the recognition to buildvectors (with elements that may be individually extended). The new method seems to cover all the cases that the old method captured though, as the shuffle will eventually be lowered to buildvectors, so the old method has been removed to keep the code a little simpler. The new code detects legal build_vector(ext(a), ext(b), ..), converting them to ext(build_vector(a, b, ..)) providing all the extends/types match up. Differential Revision: https://reviews.llvm.org/D120018
Diffstat (limited to 'llvm/lib/Object/MachOObjectFile.cpp')
0 files changed, 0 insertions, 0 deletions