diff options
Diffstat (limited to 'test/CodeGen/X86/x86-shifts.ll')
-rw-r--r-- | test/CodeGen/X86/x86-shifts.ll | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/test/CodeGen/X86/x86-shifts.ll b/test/CodeGen/X86/x86-shifts.ll index a10134e..0cbfab1 100644 --- a/test/CodeGen/X86/x86-shifts.ll +++ b/test/CodeGen/X86/x86-shifts.ll @@ -1,4 +1,4 @@ -; RUN: llc < %s -march=x86-64 -mattr=sse2 | FileCheck %s +; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mcpu=x86-64 -mattr=+sse2 | FileCheck %s ; Splat patterns below @@ -118,10 +118,16 @@ entry: define <2 x i64> @shr2_nosplat(<2 x i64> %A) nounwind { entry: -; CHECK: shr2_nosplat -; CHECK-NOT: psrlq -; CHECK-NOT: psrlq -; CHECK: ret +; CHECK-LABEL: shr2_nosplat +; CHECK: movdqa %xmm0, %xmm1 +; CHECK-NEXT: psrlq $1, %xmm1 +; CHECK-NEXT: movdqa %xmm0, %xmm2 +; CHECK-NEXT: psrlq $8, %xmm2 +; CHECK-NEXT: movsd {{.*#+}} xmm0 = xmm1[0],xmm0[1] +; CHECK-NEXT: movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1] +; CHECK-NEXT: xorpd %xmm0, %xmm1 +; CHECK-NEXT: movapd %xmm1, %xmm0 +; CHECK-NEXT: ret %B = lshr <2 x i64> %A, < i64 8, i64 1> %C = lshr <2 x i64> %A, < i64 1, i64 0> %K = xor <2 x i64> %B, %C |