[PATCH] D142038: [X86] canonicalizeShuffleWithBinOps - add handling of SSE vector shift nodes

Simon Pilgrim via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Jan 18 09:46:57 PST 2023


RKSimon created this revision.
RKSimon added reviewers: lebedev.ri, craig.topper, pengfei.
Herald added subscribers: StephenFan, hiraditya.
Herald added a project: All.
RKSimon requested review of this revision.
Herald added a project: LLVM.

This is a lighter alternative to D141877 <https://reviews.llvm.org/D141877>  / D141806 <https://reviews.llvm.org/D141806>  / D141878 <https://reviews.llvm.org/D141878> to handle SSE shift nodes, to handle the case:

shuffle(shift(shuffle(x),amt1),shift(shuffle(y),amt2)) -> shift(shuffle(x,y),amt1) // iff amt1 == amt2

unlike the alternative from @lebedev.ri we don't always fold the shuffle through the shift operation, and it avoids the considerable refactoring and use of containers.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D142038

Files:
  llvm/lib/Target/X86/X86ISelLowering.cpp
  llvm/test/CodeGen/X86/shrink_vmul.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D142038.490205.patch
Type: text/x-patch
Size: 8555 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20230118/0c7d1857/attachment.bin>


More information about the llvm-commits mailing list