[PATCH] D145004: [AArch64] More patterns to generate LD1R vector splats

Sjoerd Meijer via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Feb 28 13:52:36 PST 2023


SjoerdMeijer created this revision.
SjoerdMeijer added reviewers: dmgreen, fhahn, david-arm, paulwalker-arm.
Herald added subscribers: StephenFan, hiraditya, kristof.beyls.
Herald added a project: All.
SjoerdMeijer requested review of this revision.
Herald added a project: LLVM.

We are missing patterns to generate vector splats using LD1R. 
A shuffle vector with all 0s is a vector splat:

  %lv2i32 = load <2 x i32>, ptr %P
  %B = shufflevector <2 x i32> %lv2i32, <2 x i32> undef, <2 x i32> zeroinitializer

for which we can generate a LD1R if the operands are a load and undef. This was inspired by the tests in:

  llvm-project/llvm/test/Analysis/CostModel/AArch64/shuffle-load.ll

for which we don't generate LD1Rs.


https://reviews.llvm.org/D145004

Files:
  llvm/lib/Target/AArch64/AArch64InstrInfo.td
  llvm/test/CodeGen/AArch64/neon-vector-splat.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D145004.501286.patch
Type: text/x-patch
Size: 4139 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20230228/d730157c/attachment.bin>


More information about the llvm-commits mailing list