1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2 # RUN: llc -mtriple=amdgcn -run-pass=amdgpu-prelegalizer-combiner -verify-machineinstrs %s -o - | FileCheck %s
6 tracksRegLiveness: true
11 ; CHECK-LABEL: name: ushlsat_and_1
12 ; CHECK: liveins: $sgpr0
14 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr0
15 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
16 ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 1073741820
17 ; CHECK-NEXT: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
18 ; CHECK-NEXT: [[USHLSAT:%[0-9]+]]:_(s32) = G_USHLSAT [[COPY]], [[C2]](s32)
19 ; CHECK-NEXT: [[USHLSAT1:%[0-9]+]]:_(s32) = G_USHLSAT [[C1]], [[C]](s32)
20 ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND [[USHLSAT]], [[USHLSAT1]]
21 ; CHECK-NEXT: $sgpr0 = COPY [[AND]](s32)
22 ; CHECK-NEXT: SI_RETURN_TO_EPILOG implicit $sgpr0
23 %0:_(s32) = COPY $sgpr0
24 %2:_(s32) = G_CONSTANT i32 2
25 %4:_(s32) = G_CONSTANT i32 1073741820
26 %3:_(s32) = G_USHLSAT %0, %2(s32)
27 %5:_(s32) = G_AND %3, %4
28 %6:_(s32) = G_USHLSAT %5, %2(s32)
30 SI_RETURN_TO_EPILOG implicit $sgpr0
35 tracksRegLiveness: true
40 ; CHECK-LABEL: name: ushlsat_and_2
41 ; CHECK: liveins: $sgpr0
43 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr0
44 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 536870880
45 ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 3
46 ; CHECK-NEXT: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
47 ; CHECK-NEXT: [[USHLSAT:%[0-9]+]]:_(s32) = G_USHLSAT [[COPY]], [[C2]](s32)
48 ; CHECK-NEXT: [[USHLSAT1:%[0-9]+]]:_(s32) = G_USHLSAT [[C]], [[C1]](s32)
49 ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND [[USHLSAT]], [[USHLSAT1]]
50 ; CHECK-NEXT: $sgpr0 = COPY [[AND]](s32)
51 ; CHECK-NEXT: SI_RETURN_TO_EPILOG implicit $sgpr0
52 %0:_(s32) = COPY $sgpr0
53 %2:_(s32) = G_CONSTANT i32 5
54 %4:_(s32) = G_CONSTANT i32 536870880
55 %6:_(s32) = G_CONSTANT i32 3
56 %3:_(s32) = G_USHLSAT %0, %2(s32)
57 %5:_(s32) = G_AND %3, %4
58 %7:_(s32) = G_USHLSAT %5, %6(s32)
60 SI_RETURN_TO_EPILOG implicit $sgpr0
65 tracksRegLiveness: true
70 ; CHECK-LABEL: name: ushlsat_and_3
71 ; CHECK: liveins: $sgpr0
73 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr0
74 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 65536
75 ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
76 ; CHECK-NEXT: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 19
77 ; CHECK-NEXT: [[USHLSAT:%[0-9]+]]:_(s32) = G_USHLSAT [[COPY]], [[C2]](s32)
78 ; CHECK-NEXT: [[USHLSAT1:%[0-9]+]]:_(s32) = G_USHLSAT [[C]], [[C1]](s32)
79 ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND [[USHLSAT]], [[USHLSAT1]]
80 ; CHECK-NEXT: $sgpr0 = COPY [[AND]](s32)
81 ; CHECK-NEXT: SI_RETURN_TO_EPILOG implicit $sgpr0
82 %0:_(s32) = COPY $sgpr0
83 %2:_(s32) = G_CONSTANT i32 3
84 %4:_(s32) = G_CONSTANT i32 65536
85 %6:_(s32) = G_CONSTANT i32 16
86 %3:_(s32) = G_USHLSAT %0, %2(s32)
87 %5:_(s32) = G_AND %3, %4
88 %7:_(s32) = G_USHLSAT %5, %6(s32)
90 SI_RETURN_TO_EPILOG implicit $sgpr0
95 tracksRegLiveness: true
100 ; CHECK-LABEL: name: ushlsat_or_1
101 ; CHECK: liveins: $sgpr0
103 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr0
104 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
105 ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 -1073741821
106 ; CHECK-NEXT: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
107 ; CHECK-NEXT: [[USHLSAT:%[0-9]+]]:_(s32) = G_USHLSAT [[COPY]], [[C2]](s32)
108 ; CHECK-NEXT: [[USHLSAT1:%[0-9]+]]:_(s32) = G_USHLSAT [[C1]], [[C]](s32)
109 ; CHECK-NEXT: [[OR:%[0-9]+]]:_(s32) = G_OR [[USHLSAT]], [[USHLSAT1]]
110 ; CHECK-NEXT: $sgpr0 = COPY [[OR]](s32)
111 ; CHECK-NEXT: SI_RETURN_TO_EPILOG implicit $sgpr0
112 %0:_(s32) = COPY $sgpr0
113 %2:_(s32) = G_CONSTANT i32 2
114 %4:_(s32) = G_CONSTANT i32 -1073741821
115 %3:_(s32) = G_USHLSAT %0, %2(s32)
116 %5:_(s32) = G_OR %3, %4
117 %6:_(s32) = G_USHLSAT %5, %2(s32)
118 $sgpr0 = COPY %6(s32)
119 SI_RETURN_TO_EPILOG implicit $sgpr0
124 tracksRegLiveness: true
129 ; CHECK-LABEL: name: ushlsat_or_2
130 ; CHECK: liveins: $sgpr0
132 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr0
133 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 -536870881
134 ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 3
135 ; CHECK-NEXT: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
136 ; CHECK-NEXT: [[USHLSAT:%[0-9]+]]:_(s32) = G_USHLSAT [[COPY]], [[C2]](s32)
137 ; CHECK-NEXT: [[USHLSAT1:%[0-9]+]]:_(s32) = G_USHLSAT [[C]], [[C1]](s32)
138 ; CHECK-NEXT: [[OR:%[0-9]+]]:_(s32) = G_OR [[USHLSAT]], [[USHLSAT1]]
139 ; CHECK-NEXT: $sgpr0 = COPY [[OR]](s32)
140 ; CHECK-NEXT: SI_RETURN_TO_EPILOG implicit $sgpr0
141 %0:_(s32) = COPY $sgpr0
142 %2:_(s32) = G_CONSTANT i32 5
143 %4:_(s32) = G_CONSTANT i32 -536870881
144 %6:_(s32) = G_CONSTANT i32 3
145 %3:_(s32) = G_USHLSAT %0, %2(s32)
146 %5:_(s32) = G_OR %3, %4
147 %7:_(s32) = G_USHLSAT %5, %6(s32)
148 $sgpr0 = COPY %7(s32)
149 SI_RETURN_TO_EPILOG implicit $sgpr0
154 tracksRegLiveness: true
159 ; CHECK-LABEL: name: ushlsat_or_3
160 ; CHECK: liveins: $sgpr0
162 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr0
163 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 65536
164 ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
165 ; CHECK-NEXT: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 19
166 ; CHECK-NEXT: [[USHLSAT:%[0-9]+]]:_(s32) = G_USHLSAT [[COPY]], [[C2]](s32)
167 ; CHECK-NEXT: [[USHLSAT1:%[0-9]+]]:_(s32) = G_USHLSAT [[C]], [[C1]](s32)
168 ; CHECK-NEXT: [[OR:%[0-9]+]]:_(s32) = G_OR [[USHLSAT]], [[USHLSAT1]]
169 ; CHECK-NEXT: $sgpr0 = COPY [[OR]](s32)
170 ; CHECK-NEXT: SI_RETURN_TO_EPILOG implicit $sgpr0
171 %0:_(s32) = COPY $sgpr0
172 %2:_(s32) = G_CONSTANT i32 3
173 %4:_(s32) = G_CONSTANT i32 65536
174 %6:_(s32) = G_CONSTANT i32 16
175 %3:_(s32) = G_USHLSAT %0, %2(s32)
176 %5:_(s32) = G_OR %3, %4
177 %7:_(s32) = G_USHLSAT %5, %6(s32)
178 $sgpr0 = COPY %7(s32)
179 SI_RETURN_TO_EPILOG implicit $sgpr0
184 tracksRegLiveness: true
189 ; CHECK-LABEL: name: ushlsat_xor
190 ; CHECK: liveins: $sgpr0
192 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr0
193 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 43690
194 ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 5
195 ; CHECK-NEXT: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
196 ; CHECK-NEXT: [[USHLSAT:%[0-9]+]]:_(s32) = G_USHLSAT [[COPY]], [[C2]](s32)
197 ; CHECK-NEXT: [[USHLSAT1:%[0-9]+]]:_(s32) = G_USHLSAT [[C]], [[C1]](s32)
198 ; CHECK-NEXT: [[XOR:%[0-9]+]]:_(s32) = G_XOR [[USHLSAT]], [[USHLSAT1]]
199 ; CHECK-NEXT: $sgpr0 = COPY [[XOR]](s32)
200 ; CHECK-NEXT: SI_RETURN_TO_EPILOG implicit $sgpr0
201 %0:_(s32) = COPY $sgpr0
202 %2:_(s32) = G_CONSTANT i32 3
203 %4:_(s32) = G_CONSTANT i32 43690
204 %6:_(s32) = G_CONSTANT i32 5
205 %3:_(s32) = G_USHLSAT %0, %2(s32)
206 %5:_(s32) = G_XOR %3, %4
207 %7:_(s32) = G_USHLSAT %5, %6(s32)
208 $sgpr0 = COPY %7(s32)
209 SI_RETURN_TO_EPILOG implicit $sgpr0
214 tracksRegLiveness: true
219 ; CHECK-LABEL: name: sshlsat_and_1
220 ; CHECK: liveins: $sgpr0
222 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr0
223 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
224 ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 1073741820
225 ; CHECK-NEXT: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
226 ; CHECK-NEXT: [[SSHLSAT:%[0-9]+]]:_(s32) = G_SSHLSAT [[COPY]], [[C2]](s32)
227 ; CHECK-NEXT: [[SSHLSAT1:%[0-9]+]]:_(s32) = G_SSHLSAT [[C1]], [[C]](s32)
228 ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND [[SSHLSAT]], [[SSHLSAT1]]
229 ; CHECK-NEXT: $sgpr0 = COPY [[AND]](s32)
230 ; CHECK-NEXT: SI_RETURN_TO_EPILOG implicit $sgpr0
231 %0:_(s32) = COPY $sgpr0
232 %2:_(s32) = G_CONSTANT i32 2
233 %4:_(s32) = G_CONSTANT i32 1073741820
234 %3:_(s32) = G_SSHLSAT %0, %2(s32)
235 %5:_(s32) = G_AND %3, %4
236 %6:_(s32) = G_SSHLSAT %5, %2(s32)
237 $sgpr0 = COPY %6(s32)
238 SI_RETURN_TO_EPILOG implicit $sgpr0
243 tracksRegLiveness: true
248 ; CHECK-LABEL: name: sshlsat_and_2
249 ; CHECK: liveins: $sgpr0
251 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr0
252 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 536870880
253 ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 3
254 ; CHECK-NEXT: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
255 ; CHECK-NEXT: [[SSHLSAT:%[0-9]+]]:_(s32) = G_SSHLSAT [[COPY]], [[C2]](s32)
256 ; CHECK-NEXT: [[SSHLSAT1:%[0-9]+]]:_(s32) = G_SSHLSAT [[C]], [[C1]](s32)
257 ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND [[SSHLSAT]], [[SSHLSAT1]]
258 ; CHECK-NEXT: $sgpr0 = COPY [[AND]](s32)
259 ; CHECK-NEXT: SI_RETURN_TO_EPILOG implicit $sgpr0
260 %0:_(s32) = COPY $sgpr0
261 %2:_(s32) = G_CONSTANT i32 5
262 %4:_(s32) = G_CONSTANT i32 536870880
263 %6:_(s32) = G_CONSTANT i32 3
264 %3:_(s32) = G_SSHLSAT %0, %2(s32)
265 %5:_(s32) = G_AND %3, %4
266 %7:_(s32) = G_SSHLSAT %5, %6(s32)
267 $sgpr0 = COPY %7(s32)
268 SI_RETURN_TO_EPILOG implicit $sgpr0
273 tracksRegLiveness: true
278 ; CHECK-LABEL: name: sshlsat_and_3
279 ; CHECK: liveins: $sgpr0
281 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr0
282 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 65536
283 ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
284 ; CHECK-NEXT: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 19
285 ; CHECK-NEXT: [[SSHLSAT:%[0-9]+]]:_(s32) = G_SSHLSAT [[COPY]], [[C2]](s32)
286 ; CHECK-NEXT: [[SSHLSAT1:%[0-9]+]]:_(s32) = G_SSHLSAT [[C]], [[C1]](s32)
287 ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND [[SSHLSAT]], [[SSHLSAT1]]
288 ; CHECK-NEXT: $sgpr0 = COPY [[AND]](s32)
289 ; CHECK-NEXT: SI_RETURN_TO_EPILOG implicit $sgpr0
290 %0:_(s32) = COPY $sgpr0
291 %2:_(s32) = G_CONSTANT i32 3
292 %4:_(s32) = G_CONSTANT i32 65536
293 %6:_(s32) = G_CONSTANT i32 16
294 %3:_(s32) = G_SSHLSAT %0, %2(s32)
295 %5:_(s32) = G_AND %3, %4
296 %7:_(s32) = G_SSHLSAT %5, %6(s32)
297 $sgpr0 = COPY %7(s32)
298 SI_RETURN_TO_EPILOG implicit $sgpr0
303 tracksRegLiveness: true
308 ; CHECK-LABEL: name: sshlsat_or_1
309 ; CHECK: liveins: $sgpr0
311 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr0
312 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
313 ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 -1073741821
314 ; CHECK-NEXT: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
315 ; CHECK-NEXT: [[SSHLSAT:%[0-9]+]]:_(s32) = G_SSHLSAT [[COPY]], [[C2]](s32)
316 ; CHECK-NEXT: [[SSHLSAT1:%[0-9]+]]:_(s32) = G_SSHLSAT [[C1]], [[C]](s32)
317 ; CHECK-NEXT: [[OR:%[0-9]+]]:_(s32) = G_OR [[SSHLSAT]], [[SSHLSAT1]]
318 ; CHECK-NEXT: $sgpr0 = COPY [[OR]](s32)
319 ; CHECK-NEXT: SI_RETURN_TO_EPILOG implicit $sgpr0
320 %0:_(s32) = COPY $sgpr0
321 %2:_(s32) = G_CONSTANT i32 2
322 %4:_(s32) = G_CONSTANT i32 -1073741821
323 %3:_(s32) = G_SSHLSAT %0, %2(s32)
324 %5:_(s32) = G_OR %3, %4
325 %6:_(s32) = G_SSHLSAT %5, %2(s32)
326 $sgpr0 = COPY %6(s32)
327 SI_RETURN_TO_EPILOG implicit $sgpr0
332 tracksRegLiveness: true
337 ; CHECK-LABEL: name: sshlsat_or_2
338 ; CHECK: liveins: $sgpr0
340 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr0
341 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 -536870881
342 ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 3
343 ; CHECK-NEXT: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
344 ; CHECK-NEXT: [[SSHLSAT:%[0-9]+]]:_(s32) = G_SSHLSAT [[COPY]], [[C2]](s32)
345 ; CHECK-NEXT: [[SSHLSAT1:%[0-9]+]]:_(s32) = G_SSHLSAT [[C]], [[C1]](s32)
346 ; CHECK-NEXT: [[OR:%[0-9]+]]:_(s32) = G_OR [[SSHLSAT]], [[SSHLSAT1]]
347 ; CHECK-NEXT: $sgpr0 = COPY [[OR]](s32)
348 ; CHECK-NEXT: SI_RETURN_TO_EPILOG implicit $sgpr0
349 %0:_(s32) = COPY $sgpr0
350 %2:_(s32) = G_CONSTANT i32 5
351 %4:_(s32) = G_CONSTANT i32 -536870881
352 %6:_(s32) = G_CONSTANT i32 3
353 %3:_(s32) = G_SSHLSAT %0, %2(s32)
354 %5:_(s32) = G_OR %3, %4
355 %7:_(s32) = G_SSHLSAT %5, %6(s32)
356 $sgpr0 = COPY %7(s32)
357 SI_RETURN_TO_EPILOG implicit $sgpr0
362 tracksRegLiveness: true
367 ; CHECK-LABEL: name: sshlsat_or_3
368 ; CHECK: liveins: $sgpr0
370 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr0
371 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 65536
372 ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
373 ; CHECK-NEXT: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 19
374 ; CHECK-NEXT: [[SSHLSAT:%[0-9]+]]:_(s32) = G_SSHLSAT [[COPY]], [[C2]](s32)
375 ; CHECK-NEXT: [[SSHLSAT1:%[0-9]+]]:_(s32) = G_SSHLSAT [[C]], [[C1]](s32)
376 ; CHECK-NEXT: [[OR:%[0-9]+]]:_(s32) = G_OR [[SSHLSAT]], [[SSHLSAT1]]
377 ; CHECK-NEXT: $sgpr0 = COPY [[OR]](s32)
378 ; CHECK-NEXT: SI_RETURN_TO_EPILOG implicit $sgpr0
379 %0:_(s32) = COPY $sgpr0
380 %2:_(s32) = G_CONSTANT i32 3
381 %4:_(s32) = G_CONSTANT i32 65536
382 %6:_(s32) = G_CONSTANT i32 16
383 %3:_(s32) = G_SSHLSAT %0, %2(s32)
384 %5:_(s32) = G_OR %3, %4
385 %7:_(s32) = G_SSHLSAT %5, %6(s32)
386 $sgpr0 = COPY %7(s32)
387 SI_RETURN_TO_EPILOG implicit $sgpr0
392 tracksRegLiveness: true
397 ; CHECK-LABEL: name: sshlsat_xor
398 ; CHECK: liveins: $sgpr0
400 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr0
401 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 43690
402 ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 5
403 ; CHECK-NEXT: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
404 ; CHECK-NEXT: [[SSHLSAT:%[0-9]+]]:_(s32) = G_SSHLSAT [[COPY]], [[C2]](s32)
405 ; CHECK-NEXT: [[SSHLSAT1:%[0-9]+]]:_(s32) = G_SSHLSAT [[C]], [[C1]](s32)
406 ; CHECK-NEXT: [[XOR:%[0-9]+]]:_(s32) = G_XOR [[SSHLSAT]], [[SSHLSAT1]]
407 ; CHECK-NEXT: $sgpr0 = COPY [[XOR]](s32)
408 ; CHECK-NEXT: SI_RETURN_TO_EPILOG implicit $sgpr0
409 %0:_(s32) = COPY $sgpr0
410 %2:_(s32) = G_CONSTANT i32 3
411 %4:_(s32) = G_CONSTANT i32 43690
412 %6:_(s32) = G_CONSTANT i32 5
413 %3:_(s32) = G_SSHLSAT %0, %2(s32)
414 %5:_(s32) = G_XOR %3, %4
415 %7:_(s32) = G_SSHLSAT %5, %6(s32)
416 $sgpr0 = COPY %7(s32)
417 SI_RETURN_TO_EPILOG implicit $sgpr0