[AMDGPU] Make v8i16/v8f16 legal
[llvm-project.git] / llvm / test / CodeGen / AMDGPU / GlobalISel / regbankselect-dyn-stackalloc.mir
blobbc83ed43a7141ccda9f7b638f6e764c3e5550868
1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2 # RUN: llc -march=amdgcn -mcpu=fiji -run-pass=regbankselect %s -verify-machineinstrs -o - -regbankselect-fast | FileCheck -check-prefix=WAVE64 %s
3 # XUN: llc -march=amdgcn -mcpu=fiji -run-pass=regbankselect %s -verify-machineinstrs -o - -regbankselect-greedy | FileCheck -check-prefix=WAVE64 %s
4 # RUN: llc -march=amdgcn -mcpu=gfx1010 -run-pass=regbankselect %s -verify-machineinstrs -o - -regbankselect-fast | FileCheck -check-prefix=WAVE32 %s
5 # XUN: llc -march=amdgcn -mcpu=gfx1010 -run-pass=regbankselect %s -verify-machineinstrs -o - -regbankselect-greedy | FileCheck -check-prefix=WAVE32 %s
8 ---
9 name: test_dyn_stackalloc_sgpr_align1
10 legalized:       true
11 frameInfo:
12   maxAlignment: 2
13 stack:
14   - { id: 0, type: variable-sized, alignment: 1 }
15 body: |
16   bb.0:
17     liveins: $sgpr0
19     ; WAVE64-LABEL: name: test_dyn_stackalloc_sgpr_align1
20     ; WAVE64: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0
21     ; WAVE64: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 6
22     ; WAVE64: [[SHL:%[0-9]+]]:sgpr(s32) = G_SHL [[COPY]], [[C]](s32)
23     ; WAVE64: [[COPY1:%[0-9]+]]:sgpr(p5) = COPY $sp_reg
24     ; WAVE64: [[PTR_ADD:%[0-9]+]]:sgpr(p5) = G_PTR_ADD [[COPY1]], [[SHL]](s32)
25     ; WAVE64: S_ENDPGM 0, implicit [[PTR_ADD]](p5)
26     ; WAVE32-LABEL: name: test_dyn_stackalloc_sgpr_align1
27     ; WAVE32: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0
28     ; WAVE32: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 5
29     ; WAVE32: [[SHL:%[0-9]+]]:sgpr(s32) = G_SHL [[COPY]], [[C]](s32)
30     ; WAVE32: [[COPY1:%[0-9]+]]:sgpr(p5) = COPY $sp_reg
31     ; WAVE32: [[PTR_ADD:%[0-9]+]]:sgpr(p5) = G_PTR_ADD [[COPY1]], [[SHL]](s32)
32     ; WAVE32: S_ENDPGM 0, implicit [[PTR_ADD]](p5)
33     %0:_(s32) = COPY $sgpr0
34     %1:_(p5) = G_DYN_STACKALLOC %0, 1
35     S_ENDPGM 0, implicit %1
36 ...
38 ---
39 name: test_dyn_stackalloc_sgpr_align2
40 legalized:       true
41 frameInfo:
42   maxAlignment: 2
43 stack:
44   - { id: 0, type: variable-sized, alignment: 2 }
45 body: |
46   bb.0:
47     liveins: $sgpr0
49     ; WAVE64-LABEL: name: test_dyn_stackalloc_sgpr_align2
50     ; WAVE64: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0
51     ; WAVE64: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 6
52     ; WAVE64: [[SHL:%[0-9]+]]:sgpr(s32) = G_SHL [[COPY]], [[C]](s32)
53     ; WAVE64: [[COPY1:%[0-9]+]]:sgpr(p5) = COPY $sp_reg
54     ; WAVE64: [[PTR_ADD:%[0-9]+]]:sgpr(p5) = G_PTR_ADD [[COPY1]], [[SHL]](s32)
55     ; WAVE64: S_ENDPGM 0, implicit [[PTR_ADD]](p5)
56     ; WAVE32-LABEL: name: test_dyn_stackalloc_sgpr_align2
57     ; WAVE32: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0
58     ; WAVE32: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 5
59     ; WAVE32: [[SHL:%[0-9]+]]:sgpr(s32) = G_SHL [[COPY]], [[C]](s32)
60     ; WAVE32: [[COPY1:%[0-9]+]]:sgpr(p5) = COPY $sp_reg
61     ; WAVE32: [[PTR_ADD:%[0-9]+]]:sgpr(p5) = G_PTR_ADD [[COPY1]], [[SHL]](s32)
62     ; WAVE32: S_ENDPGM 0, implicit [[PTR_ADD]](p5)
63     %0:_(s32) = COPY $sgpr0
64     %1:_(p5) = G_DYN_STACKALLOC %0, 2
65     S_ENDPGM 0, implicit %1
66 ...
68 ---
69 name: test_dyn_stackalloc_sgpr_align4
70 legalized:       true
71 frameInfo:
72   maxAlignment: 4
73 stack:
74   - { id: 0, type: variable-sized, alignment: 4 }
75 body: |
76   bb.0:
77     liveins: $sgpr0
79     ; WAVE64-LABEL: name: test_dyn_stackalloc_sgpr_align4
80     ; WAVE64: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0
81     ; WAVE64: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 6
82     ; WAVE64: [[SHL:%[0-9]+]]:sgpr(s32) = G_SHL [[COPY]], [[C]](s32)
83     ; WAVE64: [[COPY1:%[0-9]+]]:sgpr(p5) = COPY $sp_reg
84     ; WAVE64: [[PTR_ADD:%[0-9]+]]:sgpr(p5) = G_PTR_ADD [[COPY1]], [[SHL]](s32)
85     ; WAVE64: S_ENDPGM 0, implicit [[PTR_ADD]](p5)
86     ; WAVE32-LABEL: name: test_dyn_stackalloc_sgpr_align4
87     ; WAVE32: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0
88     ; WAVE32: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 5
89     ; WAVE32: [[SHL:%[0-9]+]]:sgpr(s32) = G_SHL [[COPY]], [[C]](s32)
90     ; WAVE32: [[COPY1:%[0-9]+]]:sgpr(p5) = COPY $sp_reg
91     ; WAVE32: [[PTR_ADD:%[0-9]+]]:sgpr(p5) = G_PTR_ADD [[COPY1]], [[SHL]](s32)
92     ; WAVE32: S_ENDPGM 0, implicit [[PTR_ADD]](p5)
93     %0:_(s32) = COPY $sgpr0
94     %1:_(p5) = G_DYN_STACKALLOC %0, 4
95     S_ENDPGM 0, implicit %1
96 ...
98 ---
99 name: test_dyn_stackalloc_sgpr_align8
100 legalized:       true
101 frameInfo:
102   maxAlignment: 8
103 stack:
104   - { id: 0, type: variable-sized, alignment: 8 }
105 body: |
106   bb.0:
107     liveins: $sgpr0
109     ; WAVE64-LABEL: name: test_dyn_stackalloc_sgpr_align8
110     ; WAVE64: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0
111     ; WAVE64: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 6
112     ; WAVE64: [[SHL:%[0-9]+]]:sgpr(s32) = G_SHL [[COPY]], [[C]](s32)
113     ; WAVE64: [[COPY1:%[0-9]+]]:sgpr(p5) = COPY $sp_reg
114     ; WAVE64: [[PTR_ADD:%[0-9]+]]:sgpr(p5) = G_PTR_ADD [[COPY1]], [[SHL]](s32)
115     ; WAVE64: S_ENDPGM 0, implicit [[PTR_ADD]](p5)
116     ; WAVE32-LABEL: name: test_dyn_stackalloc_sgpr_align8
117     ; WAVE32: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0
118     ; WAVE32: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 5
119     ; WAVE32: [[SHL:%[0-9]+]]:sgpr(s32) = G_SHL [[COPY]], [[C]](s32)
120     ; WAVE32: [[COPY1:%[0-9]+]]:sgpr(p5) = COPY $sp_reg
121     ; WAVE32: [[PTR_ADD:%[0-9]+]]:sgpr(p5) = G_PTR_ADD [[COPY1]], [[SHL]](s32)
122     ; WAVE32: S_ENDPGM 0, implicit [[PTR_ADD]](p5)
123     %0:_(s32) = COPY $sgpr0
124     %1:_(p5) = G_DYN_STACKALLOC %0, 8
125     S_ENDPGM 0, implicit %1
129 name: test_dyn_stackalloc_sgpr_align16
130 legalized:       true
131 frameInfo:
132   maxAlignment: 16
133 stack:
134   - { id: 0, type: variable-sized, alignment: 16 }
135 body: |
136   bb.0:
137     liveins: $sgpr0
139     ; WAVE64-LABEL: name: test_dyn_stackalloc_sgpr_align16
140     ; WAVE64: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0
141     ; WAVE64: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 6
142     ; WAVE64: [[SHL:%[0-9]+]]:sgpr(s32) = G_SHL [[COPY]], [[C]](s32)
143     ; WAVE64: [[COPY1:%[0-9]+]]:sgpr(p5) = COPY $sp_reg
144     ; WAVE64: [[PTR_ADD:%[0-9]+]]:sgpr(p5) = G_PTR_ADD [[COPY1]], [[SHL]](s32)
145     ; WAVE64: S_ENDPGM 0, implicit [[PTR_ADD]](p5)
146     ; WAVE32-LABEL: name: test_dyn_stackalloc_sgpr_align16
147     ; WAVE32: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0
148     ; WAVE32: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 5
149     ; WAVE32: [[SHL:%[0-9]+]]:sgpr(s32) = G_SHL [[COPY]], [[C]](s32)
150     ; WAVE32: [[COPY1:%[0-9]+]]:sgpr(p5) = COPY $sp_reg
151     ; WAVE32: [[PTR_ADD:%[0-9]+]]:sgpr(p5) = G_PTR_ADD [[COPY1]], [[SHL]](s32)
152     ; WAVE32: S_ENDPGM 0, implicit [[PTR_ADD]](p5)
153     %0:_(s32) = COPY $sgpr0
154     %1:_(p5) = G_DYN_STACKALLOC %0, 16
155     S_ENDPGM 0, implicit %1
159 name: test_dyn_stackalloc_sgpr_align32
160 legalized:       true
161 frameInfo:
162   maxAlignment: 32
163 stack:
164   - { id: 0, type: variable-sized, alignment: 32 }
165 body: |
166   bb.0:
167     liveins: $sgpr0
169     ; WAVE64-LABEL: name: test_dyn_stackalloc_sgpr_align32
170     ; WAVE64: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0
171     ; WAVE64: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 6
172     ; WAVE64: [[SHL:%[0-9]+]]:sgpr(s32) = G_SHL [[COPY]], [[C]](s32)
173     ; WAVE64: [[COPY1:%[0-9]+]]:sgpr(p5) = COPY $sp_reg
174     ; WAVE64: [[PTR_ADD:%[0-9]+]]:sgpr(p5) = G_PTR_ADD [[COPY1]], [[SHL]](s32)
175     ; WAVE64: [[C1:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 -2048
176     ; WAVE64: [[PTRMASK:%[0-9]+]]:sgpr(p5) = G_PTRMASK [[PTR_ADD]], [[C1]](s32)
177     ; WAVE64: S_ENDPGM 0, implicit [[PTRMASK]](p5)
178     ; WAVE32-LABEL: name: test_dyn_stackalloc_sgpr_align32
179     ; WAVE32: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0
180     ; WAVE32: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 5
181     ; WAVE32: [[SHL:%[0-9]+]]:sgpr(s32) = G_SHL [[COPY]], [[C]](s32)
182     ; WAVE32: [[COPY1:%[0-9]+]]:sgpr(p5) = COPY $sp_reg
183     ; WAVE32: [[PTR_ADD:%[0-9]+]]:sgpr(p5) = G_PTR_ADD [[COPY1]], [[SHL]](s32)
184     ; WAVE32: [[C1:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 -1024
185     ; WAVE32: [[PTRMASK:%[0-9]+]]:sgpr(p5) = G_PTRMASK [[PTR_ADD]], [[C1]](s32)
186     ; WAVE32: S_ENDPGM 0, implicit [[PTRMASK]](p5)
187     %0:_(s32) = COPY $sgpr0
188     %1:_(p5) = G_DYN_STACKALLOC %0, 32
189     S_ENDPGM 0, implicit %1
193 name: test_dyn_stackalloc_sgpr_align64
194 legalized:       true
195 frameInfo:
196   maxAlignment: 64
197 stack:
198   - { id: 0, type: variable-sized, alignment: 64 }
199 body: |
200   bb.0:
201     liveins: $sgpr0
203     ; WAVE64-LABEL: name: test_dyn_stackalloc_sgpr_align64
204     ; WAVE64: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0
205     ; WAVE64: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 6
206     ; WAVE64: [[SHL:%[0-9]+]]:sgpr(s32) = G_SHL [[COPY]], [[C]](s32)
207     ; WAVE64: [[COPY1:%[0-9]+]]:sgpr(p5) = COPY $sp_reg
208     ; WAVE64: [[PTR_ADD:%[0-9]+]]:sgpr(p5) = G_PTR_ADD [[COPY1]], [[SHL]](s32)
209     ; WAVE64: [[C1:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 -4096
210     ; WAVE64: [[PTRMASK:%[0-9]+]]:sgpr(p5) = G_PTRMASK [[PTR_ADD]], [[C1]](s32)
211     ; WAVE64: S_ENDPGM 0, implicit [[PTRMASK]](p5)
212     ; WAVE32-LABEL: name: test_dyn_stackalloc_sgpr_align64
213     ; WAVE32: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0
214     ; WAVE32: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 5
215     ; WAVE32: [[SHL:%[0-9]+]]:sgpr(s32) = G_SHL [[COPY]], [[C]](s32)
216     ; WAVE32: [[COPY1:%[0-9]+]]:sgpr(p5) = COPY $sp_reg
217     ; WAVE32: [[PTR_ADD:%[0-9]+]]:sgpr(p5) = G_PTR_ADD [[COPY1]], [[SHL]](s32)
218     ; WAVE32: [[C1:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 -2048
219     ; WAVE32: [[PTRMASK:%[0-9]+]]:sgpr(p5) = G_PTRMASK [[PTR_ADD]], [[C1]](s32)
220     ; WAVE32: S_ENDPGM 0, implicit [[PTRMASK]](p5)
221     %0:_(s32) = COPY $sgpr0
222     %1:_(p5) = G_DYN_STACKALLOC %0, 64
223     S_ENDPGM 0, implicit %1
227 name: test_dyn_stackalloc_sgpr_align128
228 legalized:       true
229 frameInfo:
230   maxAlignment: 64
231 stack:
232   - { id: 0, type: variable-sized, alignment: 128 }
233 body: |
234   bb.0:
235     liveins: $sgpr0
237     ; WAVE64-LABEL: name: test_dyn_stackalloc_sgpr_align128
238     ; WAVE64: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0
239     ; WAVE64: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 6
240     ; WAVE64: [[SHL:%[0-9]+]]:sgpr(s32) = G_SHL [[COPY]], [[C]](s32)
241     ; WAVE64: [[COPY1:%[0-9]+]]:sgpr(p5) = COPY $sp_reg
242     ; WAVE64: [[PTR_ADD:%[0-9]+]]:sgpr(p5) = G_PTR_ADD [[COPY1]], [[SHL]](s32)
243     ; WAVE64: [[C1:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 -8192
244     ; WAVE64: [[PTRMASK:%[0-9]+]]:sgpr(p5) = G_PTRMASK [[PTR_ADD]], [[C1]](s32)
245     ; WAVE64: S_ENDPGM 0, implicit [[PTRMASK]](p5)
246     ; WAVE32-LABEL: name: test_dyn_stackalloc_sgpr_align128
247     ; WAVE32: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0
248     ; WAVE32: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 5
249     ; WAVE32: [[SHL:%[0-9]+]]:sgpr(s32) = G_SHL [[COPY]], [[C]](s32)
250     ; WAVE32: [[COPY1:%[0-9]+]]:sgpr(p5) = COPY $sp_reg
251     ; WAVE32: [[PTR_ADD:%[0-9]+]]:sgpr(p5) = G_PTR_ADD [[COPY1]], [[SHL]](s32)
252     ; WAVE32: [[C1:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 -4096
253     ; WAVE32: [[PTRMASK:%[0-9]+]]:sgpr(p5) = G_PTRMASK [[PTR_ADD]], [[C1]](s32)
254     ; WAVE32: S_ENDPGM 0, implicit [[PTRMASK]](p5)
255     %0:_(s32) = COPY $sgpr0
256     %1:_(p5) = G_DYN_STACKALLOC %0, 128
257     S_ENDPGM 0, implicit %1
261 name: test_dyn_stackalloc_sgpr_constant_align4
262 legalized:       true
263 frameInfo:
264   maxAlignment: 4
265 stack:
266   - { id: 0, type: variable-sized, alignment: 4 }
267 body: |
268   bb.0:
270     ; WAVE64-LABEL: name: test_dyn_stackalloc_sgpr_constant_align4
271     ; WAVE64: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 32
272     ; WAVE64: [[C1:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 6
273     ; WAVE64: [[SHL:%[0-9]+]]:sgpr(s32) = G_SHL [[C]], [[C1]](s32)
274     ; WAVE64: [[COPY:%[0-9]+]]:sgpr(p5) = COPY $sp_reg
275     ; WAVE64: [[PTR_ADD:%[0-9]+]]:sgpr(p5) = G_PTR_ADD [[COPY]], [[SHL]](s32)
276     ; WAVE64: S_ENDPGM 0, implicit [[PTR_ADD]](p5)
277     ; WAVE32-LABEL: name: test_dyn_stackalloc_sgpr_constant_align4
278     ; WAVE32: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 32
279     ; WAVE32: [[C1:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 5
280     ; WAVE32: [[SHL:%[0-9]+]]:sgpr(s32) = G_SHL [[C]], [[C1]](s32)
281     ; WAVE32: [[COPY:%[0-9]+]]:sgpr(p5) = COPY $sp_reg
282     ; WAVE32: [[PTR_ADD:%[0-9]+]]:sgpr(p5) = G_PTR_ADD [[COPY]], [[SHL]](s32)
283     ; WAVE32: S_ENDPGM 0, implicit [[PTR_ADD]](p5)
284     %0:_(s32) = G_CONSTANT i32 32
285     %1:_(p5) = G_DYN_STACKALLOC %0, 4
286     S_ENDPGM 0, implicit %1
290 name: test_dyn_stackalloc_sgpr_constant_align8
291 legalized:       true
292 frameInfo:
293   maxAlignment: 8
294 stack:
295   - { id: 0, type: variable-sized, alignment: 8 }
296 body: |
297   bb.0:
298     liveins: $sgpr0
300     ; WAVE64-LABEL: name: test_dyn_stackalloc_sgpr_constant_align8
301     ; WAVE64: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 32
302     ; WAVE64: [[C1:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 6
303     ; WAVE64: [[SHL:%[0-9]+]]:sgpr(s32) = G_SHL [[C]], [[C1]](s32)
304     ; WAVE64: [[COPY:%[0-9]+]]:sgpr(p5) = COPY $sp_reg
305     ; WAVE64: [[PTR_ADD:%[0-9]+]]:sgpr(p5) = G_PTR_ADD [[COPY]], [[SHL]](s32)
306     ; WAVE64: S_ENDPGM 0, implicit [[PTR_ADD]](p5)
307     ; WAVE32-LABEL: name: test_dyn_stackalloc_sgpr_constant_align8
308     ; WAVE32: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 32
309     ; WAVE32: [[C1:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 5
310     ; WAVE32: [[SHL:%[0-9]+]]:sgpr(s32) = G_SHL [[C]], [[C1]](s32)
311     ; WAVE32: [[COPY:%[0-9]+]]:sgpr(p5) = COPY $sp_reg
312     ; WAVE32: [[PTR_ADD:%[0-9]+]]:sgpr(p5) = G_PTR_ADD [[COPY]], [[SHL]](s32)
313     ; WAVE32: S_ENDPGM 0, implicit [[PTR_ADD]](p5)
314     %0:_(s32) = G_CONSTANT i32 32
315     %1:_(p5) = G_DYN_STACKALLOC %0, 8
316     S_ENDPGM 0, implicit %1
320 name: test_dyn_stackalloc_sgpr_constant_align16
321 legalized:       true
322 frameInfo:
323   maxAlignment: 16
324 stack:
325   - { id: 0, type: variable-sized, alignment: 16 }
326 body: |
327   bb.0:
328     liveins: $sgpr0
330     ; WAVE64-LABEL: name: test_dyn_stackalloc_sgpr_constant_align16
331     ; WAVE64: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 32
332     ; WAVE64: [[C1:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 6
333     ; WAVE64: [[SHL:%[0-9]+]]:sgpr(s32) = G_SHL [[C]], [[C1]](s32)
334     ; WAVE64: [[COPY:%[0-9]+]]:sgpr(p5) = COPY $sp_reg
335     ; WAVE64: [[PTR_ADD:%[0-9]+]]:sgpr(p5) = G_PTR_ADD [[COPY]], [[SHL]](s32)
336     ; WAVE64: S_ENDPGM 0, implicit [[PTR_ADD]](p5)
337     ; WAVE32-LABEL: name: test_dyn_stackalloc_sgpr_constant_align16
338     ; WAVE32: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 32
339     ; WAVE32: [[C1:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 5
340     ; WAVE32: [[SHL:%[0-9]+]]:sgpr(s32) = G_SHL [[C]], [[C1]](s32)
341     ; WAVE32: [[COPY:%[0-9]+]]:sgpr(p5) = COPY $sp_reg
342     ; WAVE32: [[PTR_ADD:%[0-9]+]]:sgpr(p5) = G_PTR_ADD [[COPY]], [[SHL]](s32)
343     ; WAVE32: S_ENDPGM 0, implicit [[PTR_ADD]](p5)
344     %0:_(s32) = G_CONSTANT i32 32
345     %1:_(p5) = G_DYN_STACKALLOC %0, 16
346     S_ENDPGM 0, implicit %1
350 name: test_dyn_stackalloc_sgpr_constant_align32
351 legalized:       true
352 frameInfo:
353   maxAlignment: 32
354 stack:
355   - { id: 0, type: variable-sized, alignment: 32 }
356 body: |
357   bb.0:
358     liveins: $sgpr0
360     ; WAVE64-LABEL: name: test_dyn_stackalloc_sgpr_constant_align32
361     ; WAVE64: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 32
362     ; WAVE64: [[C1:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 6
363     ; WAVE64: [[SHL:%[0-9]+]]:sgpr(s32) = G_SHL [[C]], [[C1]](s32)
364     ; WAVE64: [[COPY:%[0-9]+]]:sgpr(p5) = COPY $sp_reg
365     ; WAVE64: [[PTR_ADD:%[0-9]+]]:sgpr(p5) = G_PTR_ADD [[COPY]], [[SHL]](s32)
366     ; WAVE64: [[C2:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 -2048
367     ; WAVE64: [[PTRMASK:%[0-9]+]]:sgpr(p5) = G_PTRMASK [[PTR_ADD]], [[C2]](s32)
368     ; WAVE64: S_ENDPGM 0, implicit [[PTRMASK]](p5)
369     ; WAVE32-LABEL: name: test_dyn_stackalloc_sgpr_constant_align32
370     ; WAVE32: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 32
371     ; WAVE32: [[C1:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 5
372     ; WAVE32: [[SHL:%[0-9]+]]:sgpr(s32) = G_SHL [[C]], [[C1]](s32)
373     ; WAVE32: [[COPY:%[0-9]+]]:sgpr(p5) = COPY $sp_reg
374     ; WAVE32: [[PTR_ADD:%[0-9]+]]:sgpr(p5) = G_PTR_ADD [[COPY]], [[SHL]](s32)
375     ; WAVE32: [[C2:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 -1024
376     ; WAVE32: [[PTRMASK:%[0-9]+]]:sgpr(p5) = G_PTRMASK [[PTR_ADD]], [[C2]](s32)
377     ; WAVE32: S_ENDPGM 0, implicit [[PTRMASK]](p5)
378     %0:_(s32) = G_CONSTANT i32 32
379     %1:_(p5) = G_DYN_STACKALLOC %0, 32
380     S_ENDPGM 0, implicit %1