[PATCH] D94989: [ARM] Simplify VMOVRRD from extracts of buildvectors
Dave Green via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue Jan 19 11:42:59 PST 2021
dmgreen created this revision.
dmgreen added reviewers: SjoerdMeijer, ostannard, simon_tatham, NickGuy, efriedma.
Herald added subscribers: danielkiss, hiraditya, kristof.beyls.
dmgreen requested review of this revision.
Herald added a project: LLVM.
Under the softfp calling convention, we are often left with VMOVRRD(extract(bitcast(build_vector(a, b, c, d)))) for the return value of the function. These can be simplified to a,b or c,d directly, depending on the value of the extract.
Big endian is a little different because the bitcast switches the lanes around, meaning we end up with b,a or d,c.
https://reviews.llvm.org/D94989
Files:
llvm/lib/Target/ARM/ARMISelLowering.cpp
llvm/test/CodeGen/ARM/func-argpassing-endian.ll
llvm/test/CodeGen/ARM/vcvt.ll
llvm/test/CodeGen/Thumb2/mve-soft-float-abi.ll
llvm/test/CodeGen/Thumb2/mve-vcreate.ll
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D94989.317640.patch
Type: text/x-patch
Size: 13154 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20210119/06f45e4c/attachment.bin>
More information about the llvm-commits
mailing list