This patch adds shuffle mask decodes for integer zero extends (pmovzx** and movq xmm,xmm) and scalar float/double loads/moves (movss/movsd).
Also adds shuffle mask decodes for integer loads (movd/movq).
Paths
| Differential D7228
[X86][SSE] Shuffle mask decode support for zero extend, scalar float/double moves and integer load instructions ClosedPublic Authored by RKSimon on Jan 28 2015, 9:01 AM.
Details Summary This patch adds shuffle mask decodes for integer zero extends (pmovzx** and movq xmm,xmm) and scalar float/double loads/moves (movss/movsd). Also adds shuffle mask decodes for integer loads (movd/movq).
Diff Detail
Event Timeline
Comment Actions Thanks Quentin, I've updated the comments in the patch to explain that the SrcVT type represents the whole register, not just the lower elements that will be zero extended in the DstVT. This revision is now accepted and ready to land.Jan 30 2015, 9:48 AM Closed by commit rL227688: [X86][SSE] Shuffle mask decode support for zero extend, scalar float/double… (authored by RKSimon). · Explain WhyJan 31 2015, 6:11 AM This revision was automatically updated to reflect the committed changes.
Revision Contents
Diff 19028 lib/Target/X86/InstPrinter/X86InstComments.cpp
lib/Target/X86/Utils/X86ShuffleDecode.h
lib/Target/X86/Utils/X86ShuffleDecode.cpp
lib/Target/X86/X86ISelLowering.cpp
test/CodeGen/X86/vector-shuffle-128-v16.ll
test/CodeGen/X86/vector-shuffle-128-v2.ll
test/CodeGen/X86/vector-shuffle-128-v4.ll
test/CodeGen/X86/vector-shuffle-128-v8.ll
test/CodeGen/X86/vector-shuffle-256-v4.ll
test/CodeGen/X86/vector-shuffle-256-v8.ll
|
Instead of returning SrcVT, I think, based on the uses of that function, that it would be better to return what you called the scale.
If you want to stick with SrcVT, see my next comment.