• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1; RUN: llc < %s -march=x86-64 | FileCheck %s
2
3define <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
20define <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
37define <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}
45