[PATCH] D48655: [X86][SSE] Support v16i8/v32i8 vector rotations
Simon Pilgrim via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Jun 27 09:27:13 PDT 2018
RKSimon created this revision.
RKSimon added reviewers: andreadb, spatel, craig.topper, efriedma.
This uses the same technique as for shifts - split the rotation into 4/2/1-bit partial rotations and select those partials based on the amount bit, making use of PBLENDVB if available. This halves the use of PBLENDVB compared to expanding to shifts, which can be a slow op.
Unfortunately I haven't found a decent way to share much of this code with the shift equivalent.
Repository:
rL LLVM
https://reviews.llvm.org/D48655
Files:
lib/Target/X86/X86ISelLowering.cpp
test/CodeGen/X86/vector-rotate-128.ll
test/CodeGen/X86/vector-rotate-256.ll
test/CodeGen/X86/vector-rotate-512.ll
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D48655.153106.patch
Type: text/x-patch
Size: 171537 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20180627/ad654111/attachment.bin>
More information about the llvm-commits
mailing list