Mercurial > hg > CbC > CbC_llvm
diff test/CodeGen/X86/vshift-4.ll @ 95:afa8332a0e37 LLVM3.8
LLVM 3.8
author | Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 13 Oct 2015 17:48:58 +0900 |
parents | 60c9769439b8 |
children | 1172e4bd9c6f |
line wrap: on
line diff
--- a/test/CodeGen/X86/vshift-4.ll Wed Feb 18 14:56:07 2015 +0900 +++ b/test/CodeGen/X86/vshift-4.ll Tue Oct 13 17:48:58 2015 +0900 @@ -13,11 +13,16 @@ ret void } -; shift1b can't use a packed shift +; shift1b can't use a packed shift but can shift lanes separately and shuffle back together define void @shift1b(<2 x i64> %val, <2 x i64>* %dst, <2 x i64> %sh) nounwind { entry: ; CHECK-LABEL: shift1b: -; CHECK: shll +; CHECK: pshufd {{.*#+}} xmm2 = xmm1[2,3,0,1] +; CHECK-NEXT: movdqa %xmm0, %xmm3 +; CHECK-NEXT: psllq %xmm2, %xmm3 +; CHECK-NEXT: movq {{.*#+}} xmm1 = xmm1[0],zero +; CHECK-NEXT: psllq %xmm1, %xmm0 +; CHECK-NEXT: movsd {{.*#+}} xmm3 = xmm0[0],xmm3[1] %shamt = shufflevector <2 x i64> %sh, <2 x i64> undef, <2 x i32> <i32 0, i32 1> %shl = shl <2 x i64> %val, %shamt store <2 x i64> %shl, <2 x i64>* %dst