[llvm-commits] [llvm] r124102 - in /llvm/trunk: lib/Target/X86/X86InstrSSE.td test/CodeGen/X86/sse2.ll
Chris Lattner
sabre at nondot.org
Sun Jan 23 19:42:46 PST 2011
Author: lattner
Date: Sun Jan 23 21:42:46 2011
New Revision: 124102
URL: http://llvm.org/viewvc/llvm-project?rev=124102&view=rev
Log:
fix a missing shuffle pattern, PR9009. Patch by Artiom Myaskouvskey!
Modified:
llvm/trunk/lib/Target/X86/X86InstrSSE.td
llvm/trunk/test/CodeGen/X86/sse2.ll
Modified: llvm/trunk/lib/Target/X86/X86InstrSSE.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86InstrSSE.td?rev=124102&r1=124101&r2=124102&view=diff
==============================================================================
--- llvm/trunk/lib/Target/X86/X86InstrSSE.td (original)
+++ llvm/trunk/lib/Target/X86/X86InstrSSE.td Sun Jan 23 21:42:46 2011
@@ -5799,6 +5799,9 @@
def : Pat<(v4f32 (X86Movlps VR128:$src1, VR128:$src2)),
(MOVSDrr VR128:$src1, (EXTRACT_SUBREG (v4f32 VR128:$src2), sub_sd))>;
+def : Pat<(v4i32 (X86Movlps VR128:$src1, VR128:$src2)),
+ (MOVSDrr VR128:$src1, (EXTRACT_SUBREG (v4i32 VR128:$src2), sub_sd))>;
+
// Shuffle with MOVLPD
def : Pat<(v2f64 (X86Movlpd VR128:$src1, (load addr:$src2))),
(MOVLPDrm VR128:$src1, addr:$src2)>;
Modified: llvm/trunk/test/CodeGen/X86/sse2.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/sse2.ll?rev=124102&r1=124101&r2=124102&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/X86/sse2.ll (original)
+++ llvm/trunk/test/CodeGen/X86/sse2.ll Sun Jan 23 21:42:46 2011
@@ -205,3 +205,12 @@
ret <2 x double> %i7
}
+; PR9009
+define fastcc void @test17() nounwind {
+entry:
+ %0 = insertelement <4 x i32> undef, i32 undef, i32 1
+ %1 = shufflevector <4 x i32> <i32 undef, i32 undef, i32 32768, i32 32768>, <4 x i32> %0, <4 x i32> <i32 4, i32 5, i32 2, i32 3>
+ %2 = bitcast <4 x i32> %1 to <4 x float>
+ store <4 x float> %2, <4 x float> * undef
+ ret void
+}
More information about the llvm-commits
mailing list