Nuke dead code. Nothing generates the VLD1d64QPseudo_UPD instruction.
[oota-llvm.git] / test / CodeGen / SystemZ / 04-RetShifts.ll
1 ; RUN: llc < %s -march=systemz | grep sra   | count 6
2 ; RUN: llc < %s -march=systemz | grep srag  | count 3
3 ; RUN: llc < %s -march=systemz | grep srl   | count 6
4 ; RUN: llc < %s -march=systemz | grep srlg  | count 3
5 ; RUN: llc < %s -march=systemz | grep sll   | count 6
6 ; RUN: llc < %s -march=systemz | grep sllg  | count 3
7
8 define signext i32 @foo1(i32 %a, i32 %idx) nounwind readnone {
9 entry:
10         %add = add i32 %idx, 1          ; <i32> [#uses=1]
11         %shr = ashr i32 %a, %add                ; <i32> [#uses=1]
12         ret i32 %shr
13 }
14
15 define signext i32 @foo2(i32 %a, i32 %idx) nounwind readnone {
16 entry:
17         %add = add i32 %idx, 1          ; <i32> [#uses=1]
18         %shr = shl i32 %a, %add         ; <i32> [#uses=1]
19         ret i32 %shr
20 }
21
22 define signext i32 @foo3(i32 %a, i32 %idx) nounwind readnone {
23 entry:
24         %add = add i32 %idx, 1          ; <i32> [#uses=1]
25         %shr = lshr i32 %a, %add                ; <i32> [#uses=1]
26         ret i32 %shr
27 }
28
29 define signext i64 @foo4(i64 %a, i64 %idx) nounwind readnone {
30 entry:
31         %add = add i64 %idx, 1          ; <i64> [#uses=1]
32         %shr = ashr i64 %a, %add                ; <i64> [#uses=1]
33         ret i64 %shr
34 }
35
36 define signext i64 @foo5(i64 %a, i64 %idx) nounwind readnone {
37 entry:
38         %add = add i64 %idx, 1          ; <i64> [#uses=1]
39         %shr = shl i64 %a, %add         ; <i64> [#uses=1]
40         ret i64 %shr
41 }
42
43 define signext i64 @foo6(i64 %a, i64 %idx) nounwind readnone {
44 entry:
45         %add = add i64 %idx, 1          ; <i64> [#uses=1]
46         %shr = lshr i64 %a, %add                ; <i64> [#uses=1]
47         ret i64 %shr
48 }
49
50 define signext i32 @foo7(i32 %a, i32 %idx) nounwind readnone {
51 entry:
52         %shr = ashr i32 %a, 1
53         ret i32 %shr
54 }
55
56 define signext i32 @foo8(i32 %a, i32 %idx) nounwind readnone {
57 entry:
58         %shr = shl i32 %a, 1
59         ret i32 %shr
60 }
61
62 define signext i32 @foo9(i32 %a, i32 %idx) nounwind readnone {
63 entry:
64         %shr = lshr i32 %a, 1
65         ret i32 %shr
66 }
67
68 define signext i32 @foo10(i32 %a, i32 %idx) nounwind readnone {
69 entry:
70         %shr = ashr i32 %a, %idx
71         ret i32 %shr
72 }
73
74 define signext i32 @foo11(i32 %a, i32 %idx) nounwind readnone {
75 entry:
76         %shr = shl i32 %a, %idx
77         ret i32 %shr
78 }
79
80 define signext i32 @foo12(i32 %a, i32 %idx) nounwind readnone {
81 entry:
82         %shr = lshr i32 %a, %idx
83         ret i32 %shr
84 }
85
86 define signext i64 @foo13(i64 %a, i64 %idx) nounwind readnone {
87 entry:
88         %shr = ashr i64 %a, 1
89         ret i64 %shr
90 }
91
92 define signext i64 @foo14(i64 %a, i64 %idx) nounwind readnone {
93 entry:
94         %shr = shl i64 %a, 1
95         ret i64 %shr
96 }
97
98 define signext i64 @foo15(i64 %a, i64 %idx) nounwind readnone {
99 entry:
100         %shr = lshr i64 %a, 1
101         ret i64 %shr
102 }
103
104 define signext i64 @foo16(i64 %a, i64 %idx) nounwind readnone {
105 entry:
106         %shr = ashr i64 %a, %idx
107         ret i64 %shr
108 }
109
110 define signext i64 @foo17(i64 %a, i64 %idx) nounwind readnone {
111 entry:
112         %shr = shl i64 %a, %idx
113         ret i64 %shr
114 }
115
116 define signext i64 @foo18(i64 %a, i64 %idx) nounwind readnone {
117 entry:
118         %shr = lshr i64 %a, %idx
119         ret i64 %shr
120 }
121