brintos

brintos / llvm-project-archived public Read only

0
0
Text · 26.6 KiB · 10517a4 Raw
623 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=amdgcn -mcpu=fiji -run-pass=regbankselect %s -verify-machineinstrs -o - -regbankselect-fast | FileCheck -check-prefix=WAVE64 %s3# RUN: llc -mtriple=amdgcn -mcpu=fiji -run-pass=regbankselect %s -verify-machineinstrs -o - -regbankselect-greedy | FileCheck -check-prefix=WAVE64 %s4# RUN: llc -mtriple=amdgcn -mcpu=gfx1010 -run-pass=regbankselect %s -verify-machineinstrs -o - -regbankselect-fast | FileCheck -check-prefix=WAVE32 %s5# RUN: llc -mtriple=amdgcn -mcpu=gfx1010 -run-pass=regbankselect %s -verify-machineinstrs -o - -regbankselect-greedy | FileCheck -check-prefix=WAVE32 %s6 7 8---9name: test_dyn_stackalloc_sgpr_align110legalized:       true11frameInfo:12  maxAlignment: 213stack:14  - { id: 0, type: variable-sized, alignment: 1 }15body: |16  bb.0:17    liveins: $sgpr018 19    ; WAVE64-LABEL: name: test_dyn_stackalloc_sgpr_align120    ; WAVE64: liveins: $sgpr021    ; WAVE64-NEXT: {{  $}}22    ; WAVE64-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr023    ; WAVE64-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 624    ; WAVE64-NEXT: [[SHL:%[0-9]+]]:sgpr(s32) = G_SHL [[COPY]], [[C]](s32)25    ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:sgpr(p5) = COPY $sp_reg26    ; WAVE64-NEXT: [[COPY2:%[0-9]+]]:sgpr(p5) = COPY [[COPY1]](p5)27    ; WAVE64-NEXT: [[PTR_ADD:%[0-9]+]]:sgpr(p5) = G_PTR_ADD [[COPY2]], [[SHL]](s32)28    ; WAVE64-NEXT: $sp_reg = COPY [[PTR_ADD]](p5)29    ; WAVE64-NEXT: S_ENDPGM 0, implicit [[COPY2]](p5)30    ;31    ; WAVE32-LABEL: name: test_dyn_stackalloc_sgpr_align132    ; WAVE32: liveins: $sgpr033    ; WAVE32-NEXT: {{  $}}34    ; WAVE32-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr035    ; WAVE32-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 536    ; WAVE32-NEXT: [[SHL:%[0-9]+]]:sgpr(s32) = G_SHL [[COPY]], [[C]](s32)37    ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:sgpr(p5) = COPY $sp_reg38    ; WAVE32-NEXT: [[COPY2:%[0-9]+]]:sgpr(p5) = COPY [[COPY1]](p5)39    ; WAVE32-NEXT: [[PTR_ADD:%[0-9]+]]:sgpr(p5) = G_PTR_ADD [[COPY2]], [[SHL]](s32)40    ; WAVE32-NEXT: $sp_reg = COPY [[PTR_ADD]](p5)41    ; WAVE32-NEXT: S_ENDPGM 0, implicit [[COPY2]](p5)42    %0:_(s32) = COPY $sgpr043    %1:_(p5) = G_DYN_STACKALLOC %0, 144    S_ENDPGM 0, implicit %145...46 47---48name: test_dyn_stackalloc_sgpr_align249legalized:       true50frameInfo:51  maxAlignment: 252stack:53  - { id: 0, type: variable-sized, alignment: 2 }54body: |55  bb.0:56    liveins: $sgpr057 58    ; WAVE64-LABEL: name: test_dyn_stackalloc_sgpr_align259    ; WAVE64: liveins: $sgpr060    ; WAVE64-NEXT: {{  $}}61    ; WAVE64-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr062    ; WAVE64-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 663    ; WAVE64-NEXT: [[SHL:%[0-9]+]]:sgpr(s32) = G_SHL [[COPY]], [[C]](s32)64    ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:sgpr(p5) = COPY $sp_reg65    ; WAVE64-NEXT: [[COPY2:%[0-9]+]]:sgpr(p5) = COPY [[COPY1]](p5)66    ; WAVE64-NEXT: [[PTR_ADD:%[0-9]+]]:sgpr(p5) = G_PTR_ADD [[COPY2]], [[SHL]](s32)67    ; WAVE64-NEXT: $sp_reg = COPY [[PTR_ADD]](p5)68    ; WAVE64-NEXT: S_ENDPGM 0, implicit [[COPY2]](p5)69    ;70    ; WAVE32-LABEL: name: test_dyn_stackalloc_sgpr_align271    ; WAVE32: liveins: $sgpr072    ; WAVE32-NEXT: {{  $}}73    ; WAVE32-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr074    ; WAVE32-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 575    ; WAVE32-NEXT: [[SHL:%[0-9]+]]:sgpr(s32) = G_SHL [[COPY]], [[C]](s32)76    ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:sgpr(p5) = COPY $sp_reg77    ; WAVE32-NEXT: [[COPY2:%[0-9]+]]:sgpr(p5) = COPY [[COPY1]](p5)78    ; WAVE32-NEXT: [[PTR_ADD:%[0-9]+]]:sgpr(p5) = G_PTR_ADD [[COPY2]], [[SHL]](s32)79    ; WAVE32-NEXT: $sp_reg = COPY [[PTR_ADD]](p5)80    ; WAVE32-NEXT: S_ENDPGM 0, implicit [[COPY2]](p5)81    %0:_(s32) = COPY $sgpr082    %1:_(p5) = G_DYN_STACKALLOC %0, 283    S_ENDPGM 0, implicit %184...85 86---87name: test_dyn_stackalloc_sgpr_align488legalized:       true89frameInfo:90  maxAlignment: 491stack:92  - { id: 0, type: variable-sized, alignment: 4 }93body: |94  bb.0:95    liveins: $sgpr096 97    ; WAVE64-LABEL: name: test_dyn_stackalloc_sgpr_align498    ; WAVE64: liveins: $sgpr099    ; WAVE64-NEXT: {{  $}}100    ; WAVE64-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0101    ; WAVE64-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 6102    ; WAVE64-NEXT: [[SHL:%[0-9]+]]:sgpr(s32) = G_SHL [[COPY]], [[C]](s32)103    ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:sgpr(p5) = COPY $sp_reg104    ; WAVE64-NEXT: [[COPY2:%[0-9]+]]:sgpr(p5) = COPY [[COPY1]](p5)105    ; WAVE64-NEXT: [[PTR_ADD:%[0-9]+]]:sgpr(p5) = G_PTR_ADD [[COPY2]], [[SHL]](s32)106    ; WAVE64-NEXT: $sp_reg = COPY [[PTR_ADD]](p5)107    ; WAVE64-NEXT: S_ENDPGM 0, implicit [[COPY2]](p5)108    ;109    ; WAVE32-LABEL: name: test_dyn_stackalloc_sgpr_align4110    ; WAVE32: liveins: $sgpr0111    ; WAVE32-NEXT: {{  $}}112    ; WAVE32-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0113    ; WAVE32-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 5114    ; WAVE32-NEXT: [[SHL:%[0-9]+]]:sgpr(s32) = G_SHL [[COPY]], [[C]](s32)115    ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:sgpr(p5) = COPY $sp_reg116    ; WAVE32-NEXT: [[COPY2:%[0-9]+]]:sgpr(p5) = COPY [[COPY1]](p5)117    ; WAVE32-NEXT: [[PTR_ADD:%[0-9]+]]:sgpr(p5) = G_PTR_ADD [[COPY2]], [[SHL]](s32)118    ; WAVE32-NEXT: $sp_reg = COPY [[PTR_ADD]](p5)119    ; WAVE32-NEXT: S_ENDPGM 0, implicit [[COPY2]](p5)120    %0:_(s32) = COPY $sgpr0121    %1:_(p5) = G_DYN_STACKALLOC %0, 4122    S_ENDPGM 0, implicit %1123...124 125---126name: test_dyn_stackalloc_sgpr_align8127legalized:       true128frameInfo:129  maxAlignment: 8130stack:131  - { id: 0, type: variable-sized, alignment: 8 }132body: |133  bb.0:134    liveins: $sgpr0135 136    ; WAVE64-LABEL: name: test_dyn_stackalloc_sgpr_align8137    ; WAVE64: liveins: $sgpr0138    ; WAVE64-NEXT: {{  $}}139    ; WAVE64-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0140    ; WAVE64-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 6141    ; WAVE64-NEXT: [[SHL:%[0-9]+]]:sgpr(s32) = G_SHL [[COPY]], [[C]](s32)142    ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:sgpr(p5) = COPY $sp_reg143    ; WAVE64-NEXT: [[COPY2:%[0-9]+]]:sgpr(p5) = COPY [[COPY1]](p5)144    ; WAVE64-NEXT: [[PTR_ADD:%[0-9]+]]:sgpr(p5) = G_PTR_ADD [[COPY2]], [[SHL]](s32)145    ; WAVE64-NEXT: $sp_reg = COPY [[PTR_ADD]](p5)146    ; WAVE64-NEXT: S_ENDPGM 0, implicit [[COPY2]](p5)147    ;148    ; WAVE32-LABEL: name: test_dyn_stackalloc_sgpr_align8149    ; WAVE32: liveins: $sgpr0150    ; WAVE32-NEXT: {{  $}}151    ; WAVE32-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0152    ; WAVE32-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 5153    ; WAVE32-NEXT: [[SHL:%[0-9]+]]:sgpr(s32) = G_SHL [[COPY]], [[C]](s32)154    ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:sgpr(p5) = COPY $sp_reg155    ; WAVE32-NEXT: [[COPY2:%[0-9]+]]:sgpr(p5) = COPY [[COPY1]](p5)156    ; WAVE32-NEXT: [[PTR_ADD:%[0-9]+]]:sgpr(p5) = G_PTR_ADD [[COPY2]], [[SHL]](s32)157    ; WAVE32-NEXT: $sp_reg = COPY [[PTR_ADD]](p5)158    ; WAVE32-NEXT: S_ENDPGM 0, implicit [[COPY2]](p5)159    %0:_(s32) = COPY $sgpr0160    %1:_(p5) = G_DYN_STACKALLOC %0, 8161    S_ENDPGM 0, implicit %1162...163 164---165name: test_dyn_stackalloc_sgpr_align16166legalized:       true167frameInfo:168  maxAlignment: 16169stack:170  - { id: 0, type: variable-sized, alignment: 16 }171body: |172  bb.0:173    liveins: $sgpr0174 175    ; WAVE64-LABEL: name: test_dyn_stackalloc_sgpr_align16176    ; WAVE64: liveins: $sgpr0177    ; WAVE64-NEXT: {{  $}}178    ; WAVE64-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0179    ; WAVE64-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 6180    ; WAVE64-NEXT: [[SHL:%[0-9]+]]:sgpr(s32) = G_SHL [[COPY]], [[C]](s32)181    ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:sgpr(p5) = COPY $sp_reg182    ; WAVE64-NEXT: [[COPY2:%[0-9]+]]:sgpr(p5) = COPY [[COPY1]](p5)183    ; WAVE64-NEXT: [[PTR_ADD:%[0-9]+]]:sgpr(p5) = G_PTR_ADD [[COPY2]], [[SHL]](s32)184    ; WAVE64-NEXT: $sp_reg = COPY [[PTR_ADD]](p5)185    ; WAVE64-NEXT: S_ENDPGM 0, implicit [[COPY2]](p5)186    ;187    ; WAVE32-LABEL: name: test_dyn_stackalloc_sgpr_align16188    ; WAVE32: liveins: $sgpr0189    ; WAVE32-NEXT: {{  $}}190    ; WAVE32-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0191    ; WAVE32-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 5192    ; WAVE32-NEXT: [[SHL:%[0-9]+]]:sgpr(s32) = G_SHL [[COPY]], [[C]](s32)193    ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:sgpr(p5) = COPY $sp_reg194    ; WAVE32-NEXT: [[COPY2:%[0-9]+]]:sgpr(p5) = COPY [[COPY1]](p5)195    ; WAVE32-NEXT: [[PTR_ADD:%[0-9]+]]:sgpr(p5) = G_PTR_ADD [[COPY2]], [[SHL]](s32)196    ; WAVE32-NEXT: $sp_reg = COPY [[PTR_ADD]](p5)197    ; WAVE32-NEXT: S_ENDPGM 0, implicit [[COPY2]](p5)198    %0:_(s32) = COPY $sgpr0199    %1:_(p5) = G_DYN_STACKALLOC %0, 16200    S_ENDPGM 0, implicit %1201...202 203---204name: test_dyn_stackalloc_sgpr_align32205legalized:       true206frameInfo:207  maxAlignment: 32208stack:209  - { id: 0, type: variable-sized, alignment: 32 }210body: |211  bb.0:212    liveins: $sgpr0213 214    ; WAVE64-LABEL: name: test_dyn_stackalloc_sgpr_align32215    ; WAVE64: liveins: $sgpr0216    ; WAVE64-NEXT: {{  $}}217    ; WAVE64-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0218    ; WAVE64-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 6219    ; WAVE64-NEXT: [[SHL:%[0-9]+]]:sgpr(s32) = G_SHL [[COPY]], [[C]](s32)220    ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:sgpr(p5) = COPY $sp_reg221    ; WAVE64-NEXT: [[C1:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 2047222    ; WAVE64-NEXT: [[PTR_ADD:%[0-9]+]]:sgpr(p5) = G_PTR_ADD [[COPY1]], [[C1]](s32)223    ; WAVE64-NEXT: [[C2:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 -2048224    ; WAVE64-NEXT: [[PTRMASK:%[0-9]+]]:sgpr(p5) = G_PTRMASK [[PTR_ADD]], [[C2]](s32)225    ; WAVE64-NEXT: [[PTR_ADD1:%[0-9]+]]:sgpr(p5) = G_PTR_ADD [[PTRMASK]], [[SHL]](s32)226    ; WAVE64-NEXT: $sp_reg = COPY [[PTR_ADD1]](p5)227    ; WAVE64-NEXT: S_ENDPGM 0, implicit [[PTRMASK]](p5)228    ;229    ; WAVE32-LABEL: name: test_dyn_stackalloc_sgpr_align32230    ; WAVE32: liveins: $sgpr0231    ; WAVE32-NEXT: {{  $}}232    ; WAVE32-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0233    ; WAVE32-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 5234    ; WAVE32-NEXT: [[SHL:%[0-9]+]]:sgpr(s32) = G_SHL [[COPY]], [[C]](s32)235    ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:sgpr(p5) = COPY $sp_reg236    ; WAVE32-NEXT: [[C1:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 1023237    ; WAVE32-NEXT: [[PTR_ADD:%[0-9]+]]:sgpr(p5) = G_PTR_ADD [[COPY1]], [[C1]](s32)238    ; WAVE32-NEXT: [[C2:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 -1024239    ; WAVE32-NEXT: [[PTRMASK:%[0-9]+]]:sgpr(p5) = G_PTRMASK [[PTR_ADD]], [[C2]](s32)240    ; WAVE32-NEXT: [[PTR_ADD1:%[0-9]+]]:sgpr(p5) = G_PTR_ADD [[PTRMASK]], [[SHL]](s32)241    ; WAVE32-NEXT: $sp_reg = COPY [[PTR_ADD1]](p5)242    ; WAVE32-NEXT: S_ENDPGM 0, implicit [[PTRMASK]](p5)243    %0:_(s32) = COPY $sgpr0244    %1:_(p5) = G_DYN_STACKALLOC %0, 32245    S_ENDPGM 0, implicit %1246...247 248---249name: test_dyn_stackalloc_sgpr_align64250legalized:       true251frameInfo:252  maxAlignment: 64253stack:254  - { id: 0, type: variable-sized, alignment: 64 }255body: |256  bb.0:257    liveins: $sgpr0258 259    ; WAVE64-LABEL: name: test_dyn_stackalloc_sgpr_align64260    ; WAVE64: liveins: $sgpr0261    ; WAVE64-NEXT: {{  $}}262    ; WAVE64-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0263    ; WAVE64-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 6264    ; WAVE64-NEXT: [[SHL:%[0-9]+]]:sgpr(s32) = G_SHL [[COPY]], [[C]](s32)265    ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:sgpr(p5) = COPY $sp_reg266    ; WAVE64-NEXT: [[C1:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 4095267    ; WAVE64-NEXT: [[PTR_ADD:%[0-9]+]]:sgpr(p5) = G_PTR_ADD [[COPY1]], [[C1]](s32)268    ; WAVE64-NEXT: [[C2:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 -4096269    ; WAVE64-NEXT: [[PTRMASK:%[0-9]+]]:sgpr(p5) = G_PTRMASK [[PTR_ADD]], [[C2]](s32)270    ; WAVE64-NEXT: [[PTR_ADD1:%[0-9]+]]:sgpr(p5) = G_PTR_ADD [[PTRMASK]], [[SHL]](s32)271    ; WAVE64-NEXT: $sp_reg = COPY [[PTR_ADD1]](p5)272    ; WAVE64-NEXT: S_ENDPGM 0, implicit [[PTRMASK]](p5)273    ;274    ; WAVE32-LABEL: name: test_dyn_stackalloc_sgpr_align64275    ; WAVE32: liveins: $sgpr0276    ; WAVE32-NEXT: {{  $}}277    ; WAVE32-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0278    ; WAVE32-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 5279    ; WAVE32-NEXT: [[SHL:%[0-9]+]]:sgpr(s32) = G_SHL [[COPY]], [[C]](s32)280    ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:sgpr(p5) = COPY $sp_reg281    ; WAVE32-NEXT: [[C1:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 2047282    ; WAVE32-NEXT: [[PTR_ADD:%[0-9]+]]:sgpr(p5) = G_PTR_ADD [[COPY1]], [[C1]](s32)283    ; WAVE32-NEXT: [[C2:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 -2048284    ; WAVE32-NEXT: [[PTRMASK:%[0-9]+]]:sgpr(p5) = G_PTRMASK [[PTR_ADD]], [[C2]](s32)285    ; WAVE32-NEXT: [[PTR_ADD1:%[0-9]+]]:sgpr(p5) = G_PTR_ADD [[PTRMASK]], [[SHL]](s32)286    ; WAVE32-NEXT: $sp_reg = COPY [[PTR_ADD1]](p5)287    ; WAVE32-NEXT: S_ENDPGM 0, implicit [[PTRMASK]](p5)288    %0:_(s32) = COPY $sgpr0289    %1:_(p5) = G_DYN_STACKALLOC %0, 64290    S_ENDPGM 0, implicit %1291...292 293---294name: test_dyn_stackalloc_sgpr_align128295legalized:       true296frameInfo:297  maxAlignment: 64298stack:299  - { id: 0, type: variable-sized, alignment: 128 }300body: |301  bb.0:302    liveins: $sgpr0303 304    ; WAVE64-LABEL: name: test_dyn_stackalloc_sgpr_align128305    ; WAVE64: liveins: $sgpr0306    ; WAVE64-NEXT: {{  $}}307    ; WAVE64-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0308    ; WAVE64-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 6309    ; WAVE64-NEXT: [[SHL:%[0-9]+]]:sgpr(s32) = G_SHL [[COPY]], [[C]](s32)310    ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:sgpr(p5) = COPY $sp_reg311    ; WAVE64-NEXT: [[C1:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 8191312    ; WAVE64-NEXT: [[PTR_ADD:%[0-9]+]]:sgpr(p5) = G_PTR_ADD [[COPY1]], [[C1]](s32)313    ; WAVE64-NEXT: [[C2:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 -8192314    ; WAVE64-NEXT: [[PTRMASK:%[0-9]+]]:sgpr(p5) = G_PTRMASK [[PTR_ADD]], [[C2]](s32)315    ; WAVE64-NEXT: [[PTR_ADD1:%[0-9]+]]:sgpr(p5) = G_PTR_ADD [[PTRMASK]], [[SHL]](s32)316    ; WAVE64-NEXT: $sp_reg = COPY [[PTR_ADD1]](p5)317    ; WAVE64-NEXT: S_ENDPGM 0, implicit [[PTRMASK]](p5)318    ;319    ; WAVE32-LABEL: name: test_dyn_stackalloc_sgpr_align128320    ; WAVE32: liveins: $sgpr0321    ; WAVE32-NEXT: {{  $}}322    ; WAVE32-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0323    ; WAVE32-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 5324    ; WAVE32-NEXT: [[SHL:%[0-9]+]]:sgpr(s32) = G_SHL [[COPY]], [[C]](s32)325    ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:sgpr(p5) = COPY $sp_reg326    ; WAVE32-NEXT: [[C1:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 4095327    ; WAVE32-NEXT: [[PTR_ADD:%[0-9]+]]:sgpr(p5) = G_PTR_ADD [[COPY1]], [[C1]](s32)328    ; WAVE32-NEXT: [[C2:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 -4096329    ; WAVE32-NEXT: [[PTRMASK:%[0-9]+]]:sgpr(p5) = G_PTRMASK [[PTR_ADD]], [[C2]](s32)330    ; WAVE32-NEXT: [[PTR_ADD1:%[0-9]+]]:sgpr(p5) = G_PTR_ADD [[PTRMASK]], [[SHL]](s32)331    ; WAVE32-NEXT: $sp_reg = COPY [[PTR_ADD1]](p5)332    ; WAVE32-NEXT: S_ENDPGM 0, implicit [[PTRMASK]](p5)333    %0:_(s32) = COPY $sgpr0334    %1:_(p5) = G_DYN_STACKALLOC %0, 128335    S_ENDPGM 0, implicit %1336...337 338---339name: test_dyn_stackalloc_sgpr_constant_align4340legalized:       true341frameInfo:342  maxAlignment: 4343stack:344  - { id: 0, type: variable-sized, alignment: 4 }345body: |346  bb.0:347 348    ; WAVE64-LABEL: name: test_dyn_stackalloc_sgpr_constant_align4349    ; WAVE64: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 32350    ; WAVE64-NEXT: [[C1:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 6351    ; WAVE64-NEXT: [[SHL:%[0-9]+]]:sgpr(s32) = G_SHL [[C]], [[C1]](s32)352    ; WAVE64-NEXT: [[COPY:%[0-9]+]]:sgpr(p5) = COPY $sp_reg353    ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:sgpr(p5) = COPY [[COPY]](p5)354    ; WAVE64-NEXT: [[PTR_ADD:%[0-9]+]]:sgpr(p5) = G_PTR_ADD [[COPY1]], [[SHL]](s32)355    ; WAVE64-NEXT: $sp_reg = COPY [[PTR_ADD]](p5)356    ; WAVE64-NEXT: S_ENDPGM 0, implicit [[COPY1]](p5)357    ;358    ; WAVE32-LABEL: name: test_dyn_stackalloc_sgpr_constant_align4359    ; WAVE32: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 32360    ; WAVE32-NEXT: [[C1:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 5361    ; WAVE32-NEXT: [[SHL:%[0-9]+]]:sgpr(s32) = G_SHL [[C]], [[C1]](s32)362    ; WAVE32-NEXT: [[COPY:%[0-9]+]]:sgpr(p5) = COPY $sp_reg363    ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:sgpr(p5) = COPY [[COPY]](p5)364    ; WAVE32-NEXT: [[PTR_ADD:%[0-9]+]]:sgpr(p5) = G_PTR_ADD [[COPY1]], [[SHL]](s32)365    ; WAVE32-NEXT: $sp_reg = COPY [[PTR_ADD]](p5)366    ; WAVE32-NEXT: S_ENDPGM 0, implicit [[COPY1]](p5)367    %0:_(s32) = G_CONSTANT i32 32368    %1:_(p5) = G_DYN_STACKALLOC %0, 4369    S_ENDPGM 0, implicit %1370...371 372---373name: test_dyn_stackalloc_sgpr_constant_align8374legalized:       true375frameInfo:376  maxAlignment: 8377stack:378  - { id: 0, type: variable-sized, alignment: 8 }379body: |380  bb.0:381    liveins: $sgpr0382 383    ; WAVE64-LABEL: name: test_dyn_stackalloc_sgpr_constant_align8384    ; WAVE64: liveins: $sgpr0385    ; WAVE64-NEXT: {{  $}}386    ; WAVE64-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 32387    ; WAVE64-NEXT: [[C1:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 6388    ; WAVE64-NEXT: [[SHL:%[0-9]+]]:sgpr(s32) = G_SHL [[C]], [[C1]](s32)389    ; WAVE64-NEXT: [[COPY:%[0-9]+]]:sgpr(p5) = COPY $sp_reg390    ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:sgpr(p5) = COPY [[COPY]](p5)391    ; WAVE64-NEXT: [[PTR_ADD:%[0-9]+]]:sgpr(p5) = G_PTR_ADD [[COPY1]], [[SHL]](s32)392    ; WAVE64-NEXT: $sp_reg = COPY [[PTR_ADD]](p5)393    ; WAVE64-NEXT: S_ENDPGM 0, implicit [[COPY1]](p5)394    ;395    ; WAVE32-LABEL: name: test_dyn_stackalloc_sgpr_constant_align8396    ; WAVE32: liveins: $sgpr0397    ; WAVE32-NEXT: {{  $}}398    ; WAVE32-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 32399    ; WAVE32-NEXT: [[C1:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 5400    ; WAVE32-NEXT: [[SHL:%[0-9]+]]:sgpr(s32) = G_SHL [[C]], [[C1]](s32)401    ; WAVE32-NEXT: [[COPY:%[0-9]+]]:sgpr(p5) = COPY $sp_reg402    ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:sgpr(p5) = COPY [[COPY]](p5)403    ; WAVE32-NEXT: [[PTR_ADD:%[0-9]+]]:sgpr(p5) = G_PTR_ADD [[COPY1]], [[SHL]](s32)404    ; WAVE32-NEXT: $sp_reg = COPY [[PTR_ADD]](p5)405    ; WAVE32-NEXT: S_ENDPGM 0, implicit [[COPY1]](p5)406    %0:_(s32) = G_CONSTANT i32 32407    %1:_(p5) = G_DYN_STACKALLOC %0, 8408    S_ENDPGM 0, implicit %1409...410 411---412name: test_dyn_stackalloc_sgpr_constant_align16413legalized:       true414frameInfo:415  maxAlignment: 16416stack:417  - { id: 0, type: variable-sized, alignment: 16 }418body: |419  bb.0:420    liveins: $sgpr0421 422    ; WAVE64-LABEL: name: test_dyn_stackalloc_sgpr_constant_align16423    ; WAVE64: liveins: $sgpr0424    ; WAVE64-NEXT: {{  $}}425    ; WAVE64-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 32426    ; WAVE64-NEXT: [[C1:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 6427    ; WAVE64-NEXT: [[SHL:%[0-9]+]]:sgpr(s32) = G_SHL [[C]], [[C1]](s32)428    ; WAVE64-NEXT: [[COPY:%[0-9]+]]:sgpr(p5) = COPY $sp_reg429    ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:sgpr(p5) = COPY [[COPY]](p5)430    ; WAVE64-NEXT: [[PTR_ADD:%[0-9]+]]:sgpr(p5) = G_PTR_ADD [[COPY1]], [[SHL]](s32)431    ; WAVE64-NEXT: $sp_reg = COPY [[PTR_ADD]](p5)432    ; WAVE64-NEXT: S_ENDPGM 0, implicit [[COPY1]](p5)433    ;434    ; WAVE32-LABEL: name: test_dyn_stackalloc_sgpr_constant_align16435    ; WAVE32: liveins: $sgpr0436    ; WAVE32-NEXT: {{  $}}437    ; WAVE32-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 32438    ; WAVE32-NEXT: [[C1:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 5439    ; WAVE32-NEXT: [[SHL:%[0-9]+]]:sgpr(s32) = G_SHL [[C]], [[C1]](s32)440    ; WAVE32-NEXT: [[COPY:%[0-9]+]]:sgpr(p5) = COPY $sp_reg441    ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:sgpr(p5) = COPY [[COPY]](p5)442    ; WAVE32-NEXT: [[PTR_ADD:%[0-9]+]]:sgpr(p5) = G_PTR_ADD [[COPY1]], [[SHL]](s32)443    ; WAVE32-NEXT: $sp_reg = COPY [[PTR_ADD]](p5)444    ; WAVE32-NEXT: S_ENDPGM 0, implicit [[COPY1]](p5)445    %0:_(s32) = G_CONSTANT i32 32446    %1:_(p5) = G_DYN_STACKALLOC %0, 16447    S_ENDPGM 0, implicit %1448...449 450---451name: test_dyn_stackalloc_sgpr_constant_align32452legalized:       true453frameInfo:454  maxAlignment: 32455stack:456  - { id: 0, type: variable-sized, alignment: 32 }457body: |458  bb.0:459    liveins: $sgpr0460 461    ; WAVE64-LABEL: name: test_dyn_stackalloc_sgpr_constant_align32462    ; WAVE64: liveins: $sgpr0463    ; WAVE64-NEXT: {{  $}}464    ; WAVE64-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 32465    ; WAVE64-NEXT: [[C1:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 6466    ; WAVE64-NEXT: [[SHL:%[0-9]+]]:sgpr(s32) = G_SHL [[C]], [[C1]](s32)467    ; WAVE64-NEXT: [[COPY:%[0-9]+]]:sgpr(p5) = COPY $sp_reg468    ; WAVE64-NEXT: [[C2:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 2047469    ; WAVE64-NEXT: [[PTR_ADD:%[0-9]+]]:sgpr(p5) = G_PTR_ADD [[COPY]], [[C2]](s32)470    ; WAVE64-NEXT: [[C3:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 -2048471    ; WAVE64-NEXT: [[PTRMASK:%[0-9]+]]:sgpr(p5) = G_PTRMASK [[PTR_ADD]], [[C3]](s32)472    ; WAVE64-NEXT: [[PTR_ADD1:%[0-9]+]]:sgpr(p5) = G_PTR_ADD [[PTRMASK]], [[SHL]](s32)473    ; WAVE64-NEXT: $sp_reg = COPY [[PTR_ADD1]](p5)474    ; WAVE64-NEXT: S_ENDPGM 0, implicit [[PTRMASK]](p5)475    ;476    ; WAVE32-LABEL: name: test_dyn_stackalloc_sgpr_constant_align32477    ; WAVE32: liveins: $sgpr0478    ; WAVE32-NEXT: {{  $}}479    ; WAVE32-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 32480    ; WAVE32-NEXT: [[C1:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 5481    ; WAVE32-NEXT: [[SHL:%[0-9]+]]:sgpr(s32) = G_SHL [[C]], [[C1]](s32)482    ; WAVE32-NEXT: [[COPY:%[0-9]+]]:sgpr(p5) = COPY $sp_reg483    ; WAVE32-NEXT: [[C2:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 1023484    ; WAVE32-NEXT: [[PTR_ADD:%[0-9]+]]:sgpr(p5) = G_PTR_ADD [[COPY]], [[C2]](s32)485    ; WAVE32-NEXT: [[C3:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 -1024486    ; WAVE32-NEXT: [[PTRMASK:%[0-9]+]]:sgpr(p5) = G_PTRMASK [[PTR_ADD]], [[C3]](s32)487    ; WAVE32-NEXT: [[PTR_ADD1:%[0-9]+]]:sgpr(p5) = G_PTR_ADD [[PTRMASK]], [[SHL]](s32)488    ; WAVE32-NEXT: $sp_reg = COPY [[PTR_ADD1]](p5)489    ; WAVE32-NEXT: S_ENDPGM 0, implicit [[PTRMASK]](p5)490    %0:_(s32) = G_CONSTANT i32 32491    %1:_(p5) = G_DYN_STACKALLOC %0, 32492    S_ENDPGM 0, implicit %1493...494 495---496name: test_dyn_stackalloc_vgpr_align4497legalized:       true498frameInfo:499  maxAlignment: 4500stack:501  - { id: 0, type: variable-sized, alignment: 4 }502body: |503  bb.0:504    liveins: $vgpr0505 506    ; WAVE64-LABEL: name: test_dyn_stackalloc_vgpr_align4507    ; WAVE64: liveins: $vgpr0508    ; WAVE64-NEXT: {{  $}}509    ; WAVE64-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr0510    ; WAVE64-NEXT: [[INTRINSIC_CONVERGENT:%[0-9]+]]:sgpr(s32) = G_INTRINSIC_CONVERGENT intrinsic(@llvm.amdgcn.wave.reduce.umax), [[COPY]](s32), 0511    ; WAVE64-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 6512    ; WAVE64-NEXT: [[SHL:%[0-9]+]]:sgpr(s32) = G_SHL [[INTRINSIC_CONVERGENT]], [[C]](s32)513    ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:sgpr(p5) = COPY $sp_reg514    ; WAVE64-NEXT: [[COPY2:%[0-9]+]]:sgpr(p5) = COPY [[COPY1]](p5)515    ; WAVE64-NEXT: [[PTR_ADD:%[0-9]+]]:sgpr(p5) = G_PTR_ADD [[COPY2]], [[SHL]](s32)516    ; WAVE64-NEXT: $sp_reg = COPY [[PTR_ADD]](p5)517    ; WAVE64-NEXT: S_ENDPGM 0, implicit [[COPY2]](p5)518    ;519    ; WAVE32-LABEL: name: test_dyn_stackalloc_vgpr_align4520    ; WAVE32: liveins: $vgpr0521    ; WAVE32-NEXT: {{  $}}522    ; WAVE32-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr0523    ; WAVE32-NEXT: [[INTRINSIC_CONVERGENT:%[0-9]+]]:sgpr(s32) = G_INTRINSIC_CONVERGENT intrinsic(@llvm.amdgcn.wave.reduce.umax), [[COPY]](s32), 0524    ; WAVE32-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 5525    ; WAVE32-NEXT: [[SHL:%[0-9]+]]:sgpr(s32) = G_SHL [[INTRINSIC_CONVERGENT]], [[C]](s32)526    ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:sgpr(p5) = COPY $sp_reg527    ; WAVE32-NEXT: [[COPY2:%[0-9]+]]:sgpr(p5) = COPY [[COPY1]](p5)528    ; WAVE32-NEXT: [[PTR_ADD:%[0-9]+]]:sgpr(p5) = G_PTR_ADD [[COPY2]], [[SHL]](s32)529    ; WAVE32-NEXT: $sp_reg = COPY [[PTR_ADD]](p5)530    ; WAVE32-NEXT: S_ENDPGM 0, implicit [[COPY2]](p5)531    %0:_(s32) = COPY $vgpr0532    %1:_(p5) = G_DYN_STACKALLOC %0, 4533    S_ENDPGM 0, implicit %1534...535 536---537name: test_dyn_stackalloc_vgpr_align16538legalized:       true539frameInfo:540  maxAlignment: 16541stack:542  - { id: 0, type: variable-sized, alignment: 16 }543body: |544  bb.0:545    liveins: $vgpr0546 547    ; WAVE64-LABEL: name: test_dyn_stackalloc_vgpr_align16548    ; WAVE64: liveins: $vgpr0549    ; WAVE64-NEXT: {{  $}}550    ; WAVE64-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr0551    ; WAVE64-NEXT: [[INTRINSIC_CONVERGENT:%[0-9]+]]:sgpr(s32) = G_INTRINSIC_CONVERGENT intrinsic(@llvm.amdgcn.wave.reduce.umax), [[COPY]](s32), 0552    ; WAVE64-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 6553    ; WAVE64-NEXT: [[SHL:%[0-9]+]]:sgpr(s32) = G_SHL [[INTRINSIC_CONVERGENT]], [[C]](s32)554    ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:sgpr(p5) = COPY $sp_reg555    ; WAVE64-NEXT: [[COPY2:%[0-9]+]]:sgpr(p5) = COPY [[COPY1]](p5)556    ; WAVE64-NEXT: [[PTR_ADD:%[0-9]+]]:sgpr(p5) = G_PTR_ADD [[COPY2]], [[SHL]](s32)557    ; WAVE64-NEXT: $sp_reg = COPY [[PTR_ADD]](p5)558    ; WAVE64-NEXT: S_ENDPGM 0, implicit [[COPY2]](p5)559    ;560    ; WAVE32-LABEL: name: test_dyn_stackalloc_vgpr_align16561    ; WAVE32: liveins: $vgpr0562    ; WAVE32-NEXT: {{  $}}563    ; WAVE32-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr0564    ; WAVE32-NEXT: [[INTRINSIC_CONVERGENT:%[0-9]+]]:sgpr(s32) = G_INTRINSIC_CONVERGENT intrinsic(@llvm.amdgcn.wave.reduce.umax), [[COPY]](s32), 0565    ; WAVE32-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 5566    ; WAVE32-NEXT: [[SHL:%[0-9]+]]:sgpr(s32) = G_SHL [[INTRINSIC_CONVERGENT]], [[C]](s32)567    ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:sgpr(p5) = COPY $sp_reg568    ; WAVE32-NEXT: [[COPY2:%[0-9]+]]:sgpr(p5) = COPY [[COPY1]](p5)569    ; WAVE32-NEXT: [[PTR_ADD:%[0-9]+]]:sgpr(p5) = G_PTR_ADD [[COPY2]], [[SHL]](s32)570    ; WAVE32-NEXT: $sp_reg = COPY [[PTR_ADD]](p5)571    ; WAVE32-NEXT: S_ENDPGM 0, implicit [[COPY2]](p5)572    %0:_(s32) = COPY $vgpr0573    %1:_(p5) = G_DYN_STACKALLOC %0, 16574    S_ENDPGM 0, implicit %1575...576 577---578name: test_dyn_stackalloc_vgpr_align64579legalized:       true580frameInfo:581  maxAlignment: 64582stack:583  - { id: 0, type: variable-sized, alignment: 64 }584body: |585  bb.0:586    liveins: $vgpr0587 588    ; WAVE64-LABEL: name: test_dyn_stackalloc_vgpr_align64589    ; WAVE64: liveins: $vgpr0590    ; WAVE64-NEXT: {{  $}}591    ; WAVE64-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr0592    ; WAVE64-NEXT: [[INTRINSIC_CONVERGENT:%[0-9]+]]:sgpr(s32) = G_INTRINSIC_CONVERGENT intrinsic(@llvm.amdgcn.wave.reduce.umax), [[COPY]](s32), 0593    ; WAVE64-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 6594    ; WAVE64-NEXT: [[SHL:%[0-9]+]]:sgpr(s32) = G_SHL [[INTRINSIC_CONVERGENT]], [[C]](s32)595    ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:sgpr(p5) = COPY $sp_reg596    ; WAVE64-NEXT: [[C1:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 4095597    ; WAVE64-NEXT: [[PTR_ADD:%[0-9]+]]:sgpr(p5) = G_PTR_ADD [[COPY1]], [[C1]](s32)598    ; WAVE64-NEXT: [[C2:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 -4096599    ; WAVE64-NEXT: [[PTRMASK:%[0-9]+]]:sgpr(p5) = G_PTRMASK [[PTR_ADD]], [[C2]](s32)600    ; WAVE64-NEXT: [[PTR_ADD1:%[0-9]+]]:sgpr(p5) = G_PTR_ADD [[PTRMASK]], [[SHL]](s32)601    ; WAVE64-NEXT: $sp_reg = COPY [[PTR_ADD1]](p5)602    ; WAVE64-NEXT: S_ENDPGM 0, implicit [[PTRMASK]](p5)603    ;604    ; WAVE32-LABEL: name: test_dyn_stackalloc_vgpr_align64605    ; WAVE32: liveins: $vgpr0606    ; WAVE32-NEXT: {{  $}}607    ; WAVE32-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr0608    ; WAVE32-NEXT: [[INTRINSIC_CONVERGENT:%[0-9]+]]:sgpr(s32) = G_INTRINSIC_CONVERGENT intrinsic(@llvm.amdgcn.wave.reduce.umax), [[COPY]](s32), 0609    ; WAVE32-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 5610    ; WAVE32-NEXT: [[SHL:%[0-9]+]]:sgpr(s32) = G_SHL [[INTRINSIC_CONVERGENT]], [[C]](s32)611    ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:sgpr(p5) = COPY $sp_reg612    ; WAVE32-NEXT: [[C1:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 2047613    ; WAVE32-NEXT: [[PTR_ADD:%[0-9]+]]:sgpr(p5) = G_PTR_ADD [[COPY1]], [[C1]](s32)614    ; WAVE32-NEXT: [[C2:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 -2048615    ; WAVE32-NEXT: [[PTRMASK:%[0-9]+]]:sgpr(p5) = G_PTRMASK [[PTR_ADD]], [[C2]](s32)616    ; WAVE32-NEXT: [[PTR_ADD1:%[0-9]+]]:sgpr(p5) = G_PTR_ADD [[PTRMASK]], [[SHL]](s32)617    ; WAVE32-NEXT: $sp_reg = COPY [[PTR_ADD1]](p5)618    ; WAVE32-NEXT: S_ENDPGM 0, implicit [[PTRMASK]](p5)619    %0:_(s32) = COPY $vgpr0620    %1:_(p5) = G_DYN_STACKALLOC %0, 64621    S_ENDPGM 0, implicit %1622...623