Use Align for TFL::TransientStackAlignment
[llvm-core.git] / test / CodeGen / Mips / GlobalISel / instruction-select / bitwise.mir
blob5dd195f47895d565e4dcd0f636f8ead9530531fc
1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2 # RUN: llc -O0 -mtriple=mipsel-linux-gnu -run-pass=instruction-select -verify-machineinstrs %s -o - | FileCheck %s -check-prefixes=MIPS32
3 --- |
5   define void @and_i32() {entry: ret void}
6   define void @or_i32() {entry: ret void}
7   define void @xor_i32() {entry: ret void}
8   define void @shl(i32) {entry: ret void}
9   define void @ashr(i32) {entry: ret void}
10   define void @lshr(i32) {entry: ret void}
11   define void @shlv(i32, i32) {entry: ret void}
12   define void @ashrv(i32, i32) {entry: ret void}
13   define void @lshrv(i32, i32) {entry: ret void}
15 ...
16 ---
17 name:            and_i32
18 alignment:       4
19 legalized:       true
20 regBankSelected: true
21 tracksRegLiveness: true
22 body:             |
23   bb.1.entry:
24     liveins: $a0, $a1
26     ; MIPS32-LABEL: name: and_i32
27     ; MIPS32: liveins: $a0, $a1
28     ; MIPS32: [[COPY:%[0-9]+]]:gpr32 = COPY $a0
29     ; MIPS32: [[COPY1:%[0-9]+]]:gpr32 = COPY $a1
30     ; MIPS32: [[AND:%[0-9]+]]:gpr32 = AND [[COPY1]], [[COPY]]
31     ; MIPS32: $v0 = COPY [[AND]]
32     ; MIPS32: RetRA implicit $v0
33     %0:gprb(s32) = COPY $a0
34     %1:gprb(s32) = COPY $a1
35     %2:gprb(s32) = G_AND %1, %0
36     $v0 = COPY %2(s32)
37     RetRA implicit $v0
39 ...
40 ---
41 name:            or_i32
42 alignment:       4
43 legalized:       true
44 regBankSelected: true
45 tracksRegLiveness: true
46 body:             |
47   bb.1.entry:
48     liveins: $a0, $a1
50     ; MIPS32-LABEL: name: or_i32
51     ; MIPS32: liveins: $a0, $a1
52     ; MIPS32: [[COPY:%[0-9]+]]:gpr32 = COPY $a0
53     ; MIPS32: [[COPY1:%[0-9]+]]:gpr32 = COPY $a1
54     ; MIPS32: [[OR:%[0-9]+]]:gpr32 = OR [[COPY1]], [[COPY]]
55     ; MIPS32: $v0 = COPY [[OR]]
56     ; MIPS32: RetRA implicit $v0
57     %0:gprb(s32) = COPY $a0
58     %1:gprb(s32) = COPY $a1
59     %2:gprb(s32) = G_OR %1, %0
60     $v0 = COPY %2(s32)
61     RetRA implicit $v0
63 ...
64 ---
65 name:            xor_i32
66 alignment:       4
67 legalized:       true
68 regBankSelected: true
69 tracksRegLiveness: true
70 body:             |
71   bb.1.entry:
72     liveins: $a0, $a1
74     ; MIPS32-LABEL: name: xor_i32
75     ; MIPS32: liveins: $a0, $a1
76     ; MIPS32: [[COPY:%[0-9]+]]:gpr32 = COPY $a0
77     ; MIPS32: [[COPY1:%[0-9]+]]:gpr32 = COPY $a1
78     ; MIPS32: [[XOR:%[0-9]+]]:gpr32 = XOR [[COPY1]], [[COPY]]
79     ; MIPS32: $v0 = COPY [[XOR]]
80     ; MIPS32: RetRA implicit $v0
81     %0:gprb(s32) = COPY $a0
82     %1:gprb(s32) = COPY $a1
83     %2:gprb(s32) = G_XOR %1, %0
84     $v0 = COPY %2(s32)
85     RetRA implicit $v0
87 ...
88 ---
89 name:            shl
90 alignment:       4
91 legalized:       true
92 regBankSelected: true
93 tracksRegLiveness: true
94 body:             |
95   bb.1.entry:
96     liveins: $a0
98     ; MIPS32-LABEL: name: shl
99     ; MIPS32: liveins: $a0
100     ; MIPS32: [[COPY:%[0-9]+]]:gpr32 = COPY $a0
101     ; MIPS32: [[SLL:%[0-9]+]]:gpr32 = SLL [[COPY]], 1
102     ; MIPS32: $v0 = COPY [[SLL]]
103     ; MIPS32: RetRA implicit $v0
104     %0:gprb(s32) = COPY $a0
105     %1:gprb(s32) = G_CONSTANT i32 1
106     %2:gprb(s32) = G_SHL %0, %1
107     $v0 = COPY %2(s32)
108     RetRA implicit $v0
112 name:            ashr
113 alignment:       4
114 legalized:       true
115 regBankSelected: true
116 tracksRegLiveness: true
117 body:             |
118   bb.1.entry:
119     liveins: $a0
121     ; MIPS32-LABEL: name: ashr
122     ; MIPS32: liveins: $a0
123     ; MIPS32: [[COPY:%[0-9]+]]:gpr32 = COPY $a0
124     ; MIPS32: [[SRA:%[0-9]+]]:gpr32 = SRA [[COPY]], 1
125     ; MIPS32: $v0 = COPY [[SRA]]
126     ; MIPS32: RetRA implicit $v0
127     %0:gprb(s32) = COPY $a0
128     %1:gprb(s32) = G_CONSTANT i32 1
129     %2:gprb(s32) = G_ASHR %0, %1
130     $v0 = COPY %2(s32)
131     RetRA implicit $v0
135 name:            lshr
136 alignment:       4
137 legalized:       true
138 regBankSelected: true
139 tracksRegLiveness: true
140 body:             |
141   bb.1.entry:
142     liveins: $a0
144     ; MIPS32-LABEL: name: lshr
145     ; MIPS32: liveins: $a0
146     ; MIPS32: [[COPY:%[0-9]+]]:gpr32 = COPY $a0
147     ; MIPS32: [[SRL:%[0-9]+]]:gpr32 = SRL [[COPY]], 1
148     ; MIPS32: $v0 = COPY [[SRL]]
149     ; MIPS32: RetRA implicit $v0
150     %0:gprb(s32) = COPY $a0
151     %1:gprb(s32) = G_CONSTANT i32 1
152     %2:gprb(s32) = G_LSHR %0, %1
153     $v0 = COPY %2(s32)
154     RetRA implicit $v0
158 name:            shlv
159 alignment:       4
160 legalized:       true
161 regBankSelected: true
162 tracksRegLiveness: true
163 body:             |
164   bb.1.entry:
165     liveins: $a0, $a1
167     ; MIPS32-LABEL: name: shlv
168     ; MIPS32: liveins: $a0, $a1
169     ; MIPS32: [[COPY:%[0-9]+]]:gpr32 = COPY $a0
170     ; MIPS32: [[COPY1:%[0-9]+]]:gpr32 = COPY $a1
171     ; MIPS32: [[SLLV:%[0-9]+]]:gpr32 = SLLV [[COPY]], [[COPY1]]
172     ; MIPS32: $v0 = COPY [[SLLV]]
173     ; MIPS32: RetRA implicit $v0
174     %0:gprb(s32) = COPY $a0
175     %1:gprb(s32) = COPY $a1
176     %2:gprb(s32) = G_SHL %0, %1
177     $v0 = COPY %2(s32)
178     RetRA implicit $v0
182 name:            ashrv
183 alignment:       4
184 legalized:       true
185 regBankSelected: true
186 tracksRegLiveness: true
187 body:             |
188   bb.1.entry:
189     liveins: $a0, $a1
191     ; MIPS32-LABEL: name: ashrv
192     ; MIPS32: liveins: $a0, $a1
193     ; MIPS32: [[COPY:%[0-9]+]]:gpr32 = COPY $a0
194     ; MIPS32: [[COPY1:%[0-9]+]]:gpr32 = COPY $a1
195     ; MIPS32: [[SRAV:%[0-9]+]]:gpr32 = SRAV [[COPY]], [[COPY1]]
196     ; MIPS32: $v0 = COPY [[SRAV]]
197     ; MIPS32: RetRA implicit $v0
198     %0:gprb(s32) = COPY $a0
199     %1:gprb(s32) = COPY $a1
200     %2:gprb(s32) = G_ASHR %0, %1
201     $v0 = COPY %2(s32)
202     RetRA implicit $v0
206 name:            lshrv
207 alignment:       4
208 legalized:       true
209 regBankSelected: true
210 tracksRegLiveness: true
211 body:             |
212   bb.1.entry:
213     liveins: $a0, $a1
215     ; MIPS32-LABEL: name: lshrv
216     ; MIPS32: liveins: $a0, $a1
217     ; MIPS32: [[COPY:%[0-9]+]]:gpr32 = COPY $a0
218     ; MIPS32: [[COPY1:%[0-9]+]]:gpr32 = COPY $a1
219     ; MIPS32: [[SRLV:%[0-9]+]]:gpr32 = SRLV [[COPY]], [[COPY1]]
220     ; MIPS32: $v0 = COPY [[SRLV]]
221     ; MIPS32: RetRA implicit $v0
222     %0:gprb(s32) = COPY $a0
223     %1:gprb(s32) = COPY $a1
224     %2:gprb(s32) = G_LSHR %0, %1
225     $v0 = COPY %2(s32)
226     RetRA implicit $v0