Bump version to 19.1.0-rc3
[llvm-project.git] / llvm / test / CodeGen / AMDGPU / GlobalISel / combine-shift-of-shifted-logic-shlsat.mir
blob990d8302a37f06184ac71b33e7661976256554fb
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
4 ---
5 name:            ushlsat_and_1
6 tracksRegLiveness: true
7 body:             |
8   bb.0:
9     liveins: $sgpr0
11     ; CHECK-LABEL: name: ushlsat_and_1
12     ; CHECK: liveins: $sgpr0
13     ; CHECK-NEXT: {{  $}}
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)
29     $sgpr0 = COPY %6(s32)
30     SI_RETURN_TO_EPILOG implicit $sgpr0
32 ...
33 ---
34 name:            ushlsat_and_2
35 tracksRegLiveness: true
36 body:             |
37   bb.0:
38     liveins: $sgpr0
40     ; CHECK-LABEL: name: ushlsat_and_2
41     ; CHECK: liveins: $sgpr0
42     ; CHECK-NEXT: {{  $}}
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)
59     $sgpr0 = COPY %7(s32)
60     SI_RETURN_TO_EPILOG implicit $sgpr0
62 ...
63 ---
64 name:            ushlsat_and_3
65 tracksRegLiveness: true
66 body:             |
67   bb.0:
68     liveins: $sgpr0
70     ; CHECK-LABEL: name: ushlsat_and_3
71     ; CHECK: liveins: $sgpr0
72     ; CHECK-NEXT: {{  $}}
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)
89     $sgpr0 = COPY %7(s32)
90     SI_RETURN_TO_EPILOG implicit $sgpr0
92 ...
93 ---
94 name:            ushlsat_or_1
95 tracksRegLiveness: true
96 body:             |
97   bb.0:
98     liveins: $sgpr0
100     ; CHECK-LABEL: name: ushlsat_or_1
101     ; CHECK: liveins: $sgpr0
102     ; CHECK-NEXT: {{  $}}
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
123 name:            ushlsat_or_2
124 tracksRegLiveness: true
125 body:             |
126   bb.0:
127     liveins: $sgpr0
129     ; CHECK-LABEL: name: ushlsat_or_2
130     ; CHECK: liveins: $sgpr0
131     ; CHECK-NEXT: {{  $}}
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
153 name:            ushlsat_or_3
154 tracksRegLiveness: true
155 body:             |
156   bb.0:
157     liveins: $sgpr0
159     ; CHECK-LABEL: name: ushlsat_or_3
160     ; CHECK: liveins: $sgpr0
161     ; CHECK-NEXT: {{  $}}
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
183 name:            ushlsat_xor
184 tracksRegLiveness: true
185 body:             |
186   bb.0:
187     liveins: $sgpr0
189     ; CHECK-LABEL: name: ushlsat_xor
190     ; CHECK: liveins: $sgpr0
191     ; CHECK-NEXT: {{  $}}
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
213 name:            sshlsat_and_1
214 tracksRegLiveness: true
215 body:             |
216   bb.0:
217     liveins: $sgpr0
219     ; CHECK-LABEL: name: sshlsat_and_1
220     ; CHECK: liveins: $sgpr0
221     ; CHECK-NEXT: {{  $}}
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
242 name:            sshlsat_and_2
243 tracksRegLiveness: true
244 body:             |
245   bb.0:
246     liveins: $sgpr0
248     ; CHECK-LABEL: name: sshlsat_and_2
249     ; CHECK: liveins: $sgpr0
250     ; CHECK-NEXT: {{  $}}
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
272 name:            sshlsat_and_3
273 tracksRegLiveness: true
274 body:             |
275   bb.0:
276     liveins: $sgpr0
278     ; CHECK-LABEL: name: sshlsat_and_3
279     ; CHECK: liveins: $sgpr0
280     ; CHECK-NEXT: {{  $}}
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
302 name:            sshlsat_or_1
303 tracksRegLiveness: true
304 body:             |
305   bb.0:
306     liveins: $sgpr0
308     ; CHECK-LABEL: name: sshlsat_or_1
309     ; CHECK: liveins: $sgpr0
310     ; CHECK-NEXT: {{  $}}
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
331 name:            sshlsat_or_2
332 tracksRegLiveness: true
333 body:             |
334   bb.0:
335     liveins: $sgpr0
337     ; CHECK-LABEL: name: sshlsat_or_2
338     ; CHECK: liveins: $sgpr0
339     ; CHECK-NEXT: {{  $}}
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
361 name:            sshlsat_or_3
362 tracksRegLiveness: true
363 body:             |
364   bb.0:
365     liveins: $sgpr0
367     ; CHECK-LABEL: name: sshlsat_or_3
368     ; CHECK: liveins: $sgpr0
369     ; CHECK-NEXT: {{  $}}
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
391 name:            sshlsat_xor
392 tracksRegLiveness: true
393 body:             |
394   bb.0:
395     liveins: $sgpr0
397     ; CHECK-LABEL: name: sshlsat_xor
398     ; CHECK: liveins: $sgpr0
399     ; CHECK-NEXT: {{  $}}
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