[TwoAddressInstructionPass] When looking for a 3 addr conversion after commuting...
[oota-llvm.git] / test / CodeGen / X86 / legalize-shl-vec.ll
1 ; RUN: llc < %s -march=x86-64 | FileCheck %s
2
3 define <2 x i256> @test_shl(<2 x i256> %In) {
4   %Amt = insertelement <2 x i256> undef, i256 -1, i32 0
5   %Out = shl <2 x i256> %In, %Amt
6   ret <2 x i256> %Out
7
8   ; CHECK-LABEL: test_shl
9   ; CHECK:       movq $0
10   ; CHECK-NEXT:  movq $0
11   ; CHECK-NEXT:  movq $0
12   ; CHECK-NEXT:  movq $0
13   ; CHECK-NEXT:  movq $0
14   ; CHECK-NEXT:  movq $0
15   ; CHECK-NEXT:  movq $0
16   ; CHECK-NEXT:  movq $0
17   ; CHECK:       retq
18 }
19
20 define <2 x i256> @test_srl(<2 x i256> %In) {
21   %Amt = insertelement <2 x i256> undef, i256 -1, i32 0
22   %Out = lshr <2 x i256> %In, %Amt
23   ret <2 x i256> %Out
24
25   ; CHECK-LABEL: test_srl
26   ; CHECK:       movq $0
27   ; CHECK-NEXT:  movq $0
28   ; CHECK-NEXT:  movq $0
29   ; CHECK-NEXT:  movq $0
30   ; CHECK-NEXT:  movq $0
31   ; CHECK-NEXT:  movq $0
32   ; CHECK-NEXT:  movq $0
33   ; CHECK-NEXT:  movq $0
34   ; CHECK:       retq
35 }
36
37 define <2 x i256> @test_sra(<2 x i256> %In) {
38   %Amt = insertelement <2 x i256> undef, i256 -1, i32 0
39   %Out = ashr <2 x i256> %In, %Amt
40   ret <2 x i256> %Out
41
42   ; CHECK-LABEL: test_sra
43   ; CHECK:       sarq $63
44 }