diff options
Diffstat (limited to 'test/CodeGen/X86/vector-shuffle-mmx.ll')
-rw-r--r-- | test/CodeGen/X86/vector-shuffle-mmx.ll | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/test/CodeGen/X86/vector-shuffle-mmx.ll b/test/CodeGen/X86/vector-shuffle-mmx.ll index 19608bd..094722d 100644 --- a/test/CodeGen/X86/vector-shuffle-mmx.ll +++ b/test/CodeGen/X86/vector-shuffle-mmx.ll @@ -8,18 +8,18 @@ define void @test0(<1 x i64>* %x) { ; X32: ## BB#0: ## %entry ; X32-NEXT: movl {{[0-9]+}}(%esp), %eax ; X32-NEXT: movsd {{.*#+}} xmm0 = mem[0],zero -; X32-NEXT: pshufd {{.*#+}} xmm0 = xmm0[1,1,1,3] +; X32-NEXT: pshufd {{.*#+}} xmm0 = xmm0[1,1,2,3] ; X32-NEXT: movlpd %xmm0, (%eax) ; X32-NEXT: retl ; ; X64-LABEL: test0: ; X64: ## BB#0: ## %entry ; X64-NEXT: movq {{.*#+}} xmm0 = mem[0],zero -; X64-NEXT: pshufd {{.*#+}} xmm0 = xmm0[1,1,1,3] +; X64-NEXT: pshufd {{.*#+}} xmm0 = xmm0[1,1,2,3] ; X64-NEXT: movq %xmm0, (%rdi) ; X64-NEXT: retq entry: - %tmp2 = load <1 x i64>* %x + %tmp2 = load <1 x i64>, <1 x i64>* %x %tmp6 = bitcast <1 x i64> %tmp2 to <2 x i32> %tmp9 = shufflevector <2 x i32> %tmp6, <2 x i32> undef, <2 x i32> < i32 1, i32 1 > %tmp10 = bitcast <2 x i32> %tmp9 to <1 x i64> @@ -84,20 +84,19 @@ define void @test2() nounwind { ; X32: ## BB#0: ## %entry ; X32-NEXT: movl L_tmp_V2i$non_lazy_ptr, %eax ; X32-NEXT: movsd {{.*#+}} xmm0 = mem[0],zero -; X32-NEXT: movlhps {{.*#+}} xmm0 = xmm0[0,0] -; X32-NEXT: pshufd {{.*#+}} xmm0 = xmm0[0,2,2,3] -; X32-NEXT: movlpd %xmm0, (%eax) +; X32-NEXT: unpcklps {{.*#+}} xmm0 = xmm0[0,0,1,1] +; X32-NEXT: movlps %xmm0, (%eax) ; X32-NEXT: retl ; ; X64-LABEL: test2: ; X64: ## BB#0: ## %entry ; X64-NEXT: movq _tmp_V2i@{{.*}}(%rip), %rax ; X64-NEXT: movq {{.*#+}} xmm0 = mem[0],zero -; X64-NEXT: pshufd {{.*#+}} xmm0 = xmm0[0,0,0,1] +; X64-NEXT: pshufd {{.*#+}} xmm0 = xmm0[0,0,1,1] ; X64-NEXT: movq %xmm0, (%rax) ; X64-NEXT: retq entry: - %0 = load <2 x i32>* @tmp_V2i, align 8 + %0 = load <2 x i32>, <2 x i32>* @tmp_V2i, align 8 %1 = shufflevector <2 x i32> %0, <2 x i32> undef, <2 x i32> zeroinitializer store <2 x i32> %1, <2 x i32>* @tmp_V2i, align 8 ret void |