From cc30006391ef3dac5240b8b2197a7129440f34ad Mon Sep 17 00:00:00 2001 From: Craig Topper Date: Mon, 30 Jan 2012 07:50:31 +0000 Subject: Fix pattern for memory form of PSHUFD for use with FP vectors to remove bitcast to an integer vector that normal code wouldn't have. Also remove bitcasts from code that turns splat vector loads into a shuffle as it was making the broken pattern necessary. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149232 91177308-0d34-0410-b5e6-96231b3b80d8 --- test/CodeGen/X86/avx-shuffle.ll | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'test/CodeGen/X86/avx-shuffle.ll') diff --git a/test/CodeGen/X86/avx-shuffle.ll b/test/CodeGen/X86/avx-shuffle.ll index ee038ce21e..08b668c983 100644 --- a/test/CodeGen/X86/avx-shuffle.ll +++ b/test/CodeGen/X86/avx-shuffle.ll @@ -96,3 +96,16 @@ define i32 @test10(<4 x i32> %a) nounwind { %r = extractelement <8 x i32> %b, i32 2 ret i32 %r } + +define <4 x float> @test11(<4 x float> %a) nounwind { +; CHECK: pshufd $27 + %tmp1 = shufflevector <4 x float> %a, <4 x float> undef, <4 x i32> + ret <4 x float> %tmp1 +} + +define <4 x float> @test12(<4 x float>* %a) nounwind { +; CHECK: pshufd $27, ( + %tmp0 = load <4 x float>* %a + %tmp1 = shufflevector <4 x float> %tmp0, <4 x float> undef, <4 x i32> + ret <4 x float> %tmp1 +} -- cgit v1.2.3