[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