[PATCH] [X86][SSE] Added support for SSE3 lane duplication shuffle instructions
Simon Pilgrim
llvm-dev at redking.me.uk
Sun Jan 18 03:47:08 PST 2015
Hi chandlerc, qcolombet, spatel, andreadb,
This patch adds shuffle matching for the SSE3 MOVDDUP, MOVSLDUP and MOVSHDUP instructions. The big use of these being that they avoid many single source shuffles from needing to use dual source instrutions such as SHUFPD/SHUFPS, avoiding extra moves and allowing more load folds.
Adding these instructions uncovered an issue in XFormVExtractWithShuffleIntoLoad which crashed on single operand shuffle instructions. It also involved fixing getTargetShuffleMask to correctly identify theses instructions as unary shuffles.
I also added a shuffle mask decoder for MOVDDUP.
REPOSITORY
rL LLVM
http://reviews.llvm.org/D7042
Files:
lib/Target/X86/InstPrinter/X86InstComments.cpp
lib/Target/X86/Utils/X86ShuffleDecode.cpp
lib/Target/X86/Utils/X86ShuffleDecode.h
lib/Target/X86/X86ISelLowering.cpp
test/CodeGen/X86/sincos-opt.ll
test/CodeGen/X86/sse41.ll
test/CodeGen/X86/sse_partial_update.ll
test/CodeGen/X86/v2f32.ll
test/CodeGen/X86/vec_cast2.ll
test/CodeGen/X86/vector-shuffle-256-v4.ll
test/CodeGen/X86/vector-shuffle-256-v8.ll
test/CodeGen/X86/vector-shuffle-512-v8.ll
EMAIL PREFERENCES
http://reviews.llvm.org/settings/panel/emailpreferences/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D7042.18358.patch
Type: text/x-patch
Size: 21056 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150118/38239f1c/attachment.bin>
More information about the llvm-commits
mailing list