brintos

brintos / llvm-project-archived public Read only

0
0
Text · 8.5 KiB · aae2c1e Raw
241 lines · plain
1# RUN: llc -mtriple=amdgcn -mcpu=gfx90a -start-before=greedy,0 -stop-after=virtregrewriter,2 -verify-machineinstrs -o - %s | FileCheck --check-prefixes=GCN,GFX90A %s2 3# RUN: llc -enable-new-pm -mtriple=amdgcn -mcpu=gfx90a -passes='greedy<sgpr>,virt-reg-rewriter<no-clear-vregs>,stack-slot-coloring,si-lower-sgpr-spills,si-pre-allocate-wwm-regs,greedy<wwm>,si-lower-wwm-copies,virt-reg-rewriter<no-clear-vregs>,amdgpu-reserve-wwm-regs,greedy<vgpr>,amdgpu-nsa-reassign,virt-reg-rewriter' -o - %s | FileCheck --check-prefixes=GCN,GFX90A %s4# Using the unaligned vector tuples are OK as long as they aren't used5# in a real instruction.6 7---8# GCN-LABEL: name: alloc_vgpr_649# GFX90A: $vgpr4_vgpr5 = GLOBAL_LOAD10name:            alloc_vgpr_6411tracksRegLiveness: true12liveins:13  - { reg: '$vgpr0_vgpr1' }14  - { reg: '$vgpr2' }15body:             |16  bb.0:17    liveins: $vgpr0_vgpr1, $vgpr218 19    %0:vreg_64_align2 = COPY $vgpr0_vgpr120    %1:vgpr_32 = COPY $vgpr221    %2:vreg_64_align2 = GLOBAL_LOAD_DWORDX2 %0, 0, 0, implicit $exec22    GLOBAL_STORE_DWORDX2 %0, %2, 0, 0, implicit $exec23    GLOBAL_STORE_DWORD %0, %1, 0, 0, implicit $exec24...25 26---27# GCN-LABEL: name: alloc_vgpr_9628# GFX90A: $vgpr4_vgpr5_vgpr6 = GLOBAL_LOAD29name:            alloc_vgpr_9630tracksRegLiveness: true31liveins:32  - { reg: '$vgpr0_vgpr1' }33  - { reg: '$vgpr2' }34body:             |35  bb.0:36    liveins: $vgpr0_vgpr1, $vgpr237 38    %0:vreg_64_align2 = COPY $vgpr0_vgpr139    %1:vgpr_32 = COPY $vgpr240    %2:vreg_96_align2 = GLOBAL_LOAD_DWORDX3 %0, 0, 0, implicit $exec41    GLOBAL_STORE_DWORDX3 %0, %2, 0, 0, implicit $exec42    GLOBAL_STORE_DWORD %0, %1, 0, 0, implicit $exec43...44 45---46# GCN-LABEL: name: alloc_vgpr_12847# GFX90A: $vgpr4_vgpr5_vgpr6_vgpr7 = GLOBAL_LOAD48name:            alloc_vgpr_12849tracksRegLiveness: true50liveins:51  - { reg: '$vgpr0_vgpr1' }52  - { reg: '$vgpr2' }53body:             |54  bb.0:55    liveins: $vgpr0_vgpr1, $vgpr256 57    %0:vreg_64_align2 = COPY $vgpr0_vgpr158    %1:vgpr_32 = COPY $vgpr259    %2:vreg_128_align2 = GLOBAL_LOAD_DWORDX4 %0, 0, 0, implicit $exec60    GLOBAL_STORE_DWORDX4 %0, %2, 0, 0, implicit $exec61    GLOBAL_STORE_DWORD %0, %1, 0, 0, implicit $exec62...63 64---65# GCN-LABEL: name: alloc_vgpr_16066# GFX90A: $vgpr4_vgpr5_vgpr6_vgpr7_vgpr8 = IMAGE_LOAD67name:            alloc_vgpr_16068tracksRegLiveness: true69liveins:70  - { reg: '$vgpr0_vgpr1' }71  - { reg: '$vgpr2' }72body:             |73  bb.0:74    liveins: $vgpr0_vgpr1, $vgpr275 76    %0:vreg_64_align2 = COPY $vgpr0_vgpr177    %1:vgpr_32 = COPY $vgpr278    %2:vreg_160_align2 = IMAGE_LOAD_V5_V1 %0.sub0, undef %3:sgpr_256, 0, 0, 0, 0, 0, 1, 0, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4)79    GLOBAL_STORE_DWORDX4 %0, %2.sub0_sub1_sub2_sub3, 0, 0, implicit $exec80    GLOBAL_STORE_DWORD %0, %1, 0, 0, implicit $exec81...82 83---84# GCN-LABEL: name: alloc_vgpr_25685# GFX90A: $vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11 = COPY86name:            alloc_vgpr_25687tracksRegLiveness: true88liveins:89  - { reg: '$vgpr0_vgpr1' }90  - { reg: '$vgpr2' }91body:             |92  bb.0:93    liveins: $vgpr0_vgpr1, $vgpr294 95    %0:vreg_64_align2 = COPY $vgpr0_vgpr196    %1:vgpr_32 = COPY $vgpr297    %3:sgpr_256 = IMPLICIT_DEF98    %2:vreg_256_align2 = COPY %3:sgpr_25699    %4:vreg_128_align2 = IMAGE_SAMPLE_C_CL_O_V4_V8 %2, %3:sgpr_256, undef %5:sgpr_128, 0, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4)100    GLOBAL_STORE_DWORDX4 %0, %2.sub0_sub1_sub2_sub3, 0, 0, implicit $exec101    GLOBAL_STORE_DWORD %0, %1, 0, 0, implicit $exec102...103 104---105# GCN-LABEL: name: alloc_vgpr_512106# GFX90A: $vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17_vgpr18_vgpr19 = IMPLICIT_DEF107name:            alloc_vgpr_512108tracksRegLiveness: true109liveins:110  - { reg: '$vgpr0_vgpr1' }111  - { reg: '$vgpr2' }112body:             |113  bb.0:114    liveins: $vgpr0_vgpr1, $vgpr2115 116    %0:vreg_64_align2 = COPY $vgpr0_vgpr1117    %1:vgpr_32 = COPY $vgpr2118    %2:vreg_512_align2 = IMPLICIT_DEF119    GLOBAL_STORE_DWORDX4 %0, %2.sub0_sub1_sub2_sub3, 0, 0, implicit $exec120    GLOBAL_STORE_DWORDX4 %0, %2.sub4_sub5_sub6_sub7, 0, 0, implicit $exec121    GLOBAL_STORE_DWORDX4 %0, %2.sub8_sub9_sub10_sub11, 0, 0, implicit $exec122    GLOBAL_STORE_DWORDX4 %0, %2.sub12_sub13_sub14_sub15, 0, 0, implicit $exec123    GLOBAL_STORE_DWORD %0, %1, 0, 0, implicit $exec124...125 126---127# GCN-LABEL: name: alloc_vgpr_1024128# GFX90A: $vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17_vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23_vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31_vgpr32_vgpr33_vgpr34_vgpr35 = IMPLICIT_DEF129name:            alloc_vgpr_1024130tracksRegLiveness: true131liveins:132  - { reg: '$vgpr0_vgpr1' }133  - { reg: '$vgpr2' }134body:             |135  bb.0:136    liveins: $vgpr0_vgpr1, $vgpr2137 138    %0:vreg_64_align2 = COPY $vgpr0_vgpr1139    %1:vgpr_32 = COPY $vgpr2140    %2:vreg_1024_align2 = IMPLICIT_DEF141    GLOBAL_STORE_DWORDX4 %0, %2.sub0_sub1_sub2_sub3, 0, 0, implicit $exec142    GLOBAL_STORE_DWORDX4 %0, %2.sub4_sub5_sub6_sub7, 0, 0, implicit $exec143    GLOBAL_STORE_DWORDX4 %0, %2.sub8_sub9_sub10_sub11, 0, 0, implicit $exec144    GLOBAL_STORE_DWORDX4 %0, %2.sub12_sub13_sub14_sub15, 0, 0, implicit $exec145    GLOBAL_STORE_DWORDX4 %0, %2.sub16_sub17_sub18_sub19, 0, 0, implicit $exec146    GLOBAL_STORE_DWORDX4 %0, %2.sub20_sub21_sub22_sub23, 0, 0, implicit $exec147    GLOBAL_STORE_DWORDX4 %0, %2.sub24_sub25_sub26_sub27, 0, 0, implicit $exec148    GLOBAL_STORE_DWORDX4 %0, %2.sub28_sub29_sub30_sub31, 0, 0, implicit $exec149    GLOBAL_STORE_DWORD %0, %1, 0, 0, implicit $exec150...151 152---153# GCN-LABEL: name: alloc_agpr_64154# GFX90A: $agpr1_agpr2 = IMPLICIT_DEF155name:            alloc_agpr_64156tracksRegLiveness: true157liveins:158  - { reg: '$vgpr0_vgpr1' }159  - { reg: '$agpr0' }160body:             |161  bb.0:162    liveins: $vgpr0_vgpr1, $agpr0163 164    %0:vreg_64_align2 = COPY $vgpr0_vgpr1165    %3:areg_64 = IMPLICIT_DEF166    %2:vreg_64_align2 = COPY %3:areg_64167    GLOBAL_STORE_DWORDX2 %0, %2, 0, 0, implicit $exec168    %1:vgpr_32 = COPY $agpr0169    GLOBAL_STORE_DWORD %0, %1, 0, 0, implicit $exec170...171 172---173# GCN-LABEL: name: alloc_agpr_128174# GFX90A: $agpr1_agpr2_agpr3_agpr4 = IMPLICIT_DEF175name:            alloc_agpr_128176tracksRegLiveness: true177liveins:178  - { reg: '$vgpr0_vgpr1' }179  - { reg: '$agpr0' }180body:             |181  bb.0:182    liveins: $vgpr0_vgpr1, $agpr0183 184    %0:vreg_64_align2 = COPY $vgpr0_vgpr1185    %3:areg_128 = IMPLICIT_DEF186    %2:vreg_128_align2 = COPY %3:areg_128187    GLOBAL_STORE_DWORDX4 %0, %2, 0, 0, implicit $exec188    %1:vgpr_32 = COPY $agpr0189    GLOBAL_STORE_DWORD %0, %1, 0, 0, implicit $exec190...191 192---193# GCN-LABEL: name: alloc_agpr_512194# GFX90A: $agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7_agpr8_agpr9_agpr10_agpr11_agpr12_agpr13_agpr14_agpr15_agpr16 = IMPLICIT_DEF195name:            alloc_agpr_512196tracksRegLiveness: true197liveins:198  - { reg: '$vgpr0_vgpr1' }199  - { reg: '$agpr0' }200body:             |201  bb.0:202    liveins: $vgpr0_vgpr1, $agpr0203 204    %0:vreg_64_align2 = COPY $vgpr0_vgpr1205    %3:areg_512 = IMPLICIT_DEF206    %2:vreg_512_align2 = COPY %3:areg_512207    GLOBAL_STORE_DWORDX4 %0, %2.sub0_sub1_sub2_sub3, 0, 0, implicit $exec208    GLOBAL_STORE_DWORDX4 %0, %2.sub4_sub5_sub6_sub7, 0, 0, implicit $exec209    GLOBAL_STORE_DWORDX4 %0, %2.sub8_sub9_sub10_sub11, 0, 0, implicit $exec210    GLOBAL_STORE_DWORDX4 %0, %2.sub12_sub13_sub14_sub15, 0, 0, implicit $exec211    %1:vgpr_32 = COPY $agpr0212    GLOBAL_STORE_DWORD %0, %1, 0, 0, implicit $exec213...214 215---216# GCN-LABEL: name: alloc_agpr_1024217# GFX90A: $agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7_agpr8_agpr9_agpr10_agpr11_agpr12_agpr13_agpr14_agpr15_agpr16_agpr17_agpr18_agpr19_agpr20_agpr21_agpr22_agpr23_agpr24_agpr25_agpr26_agpr27_agpr28_agpr29_agpr30_agpr31_agpr32 = IMPLICIT_DEF218name:            alloc_agpr_1024219tracksRegLiveness: true220liveins:221  - { reg: '$vgpr0_vgpr1' }222  - { reg: '$agpr0' }223body:             |224  bb.0:225    liveins: $vgpr0_vgpr1, $agpr0226 227    %0:vreg_64_align2 = COPY $vgpr0_vgpr1228    %3:areg_1024 = IMPLICIT_DEF229    %2:vreg_1024_align2 = COPY %3:areg_1024230    GLOBAL_STORE_DWORDX4 %0, %2.sub0_sub1_sub2_sub3, 0, 0, implicit $exec231    GLOBAL_STORE_DWORDX4 %0, %2.sub4_sub5_sub6_sub7, 0, 0, implicit $exec232    GLOBAL_STORE_DWORDX4 %0, %2.sub8_sub9_sub10_sub11, 0, 0, implicit $exec233    GLOBAL_STORE_DWORDX4 %0, %2.sub12_sub13_sub14_sub15, 0, 0, implicit $exec234    GLOBAL_STORE_DWORDX4 %0, %2.sub16_sub17_sub18_sub19, 0, 0, implicit $exec235    GLOBAL_STORE_DWORDX4 %0, %2.sub20_sub21_sub22_sub23, 0, 0, implicit $exec236    GLOBAL_STORE_DWORDX4 %0, %2.sub24_sub25_sub26_sub27, 0, 0, implicit $exec237    GLOBAL_STORE_DWORDX4 %0, %2.sub28_sub29_sub30_sub31, 0, 0, implicit $exec238    %1:vgpr_32 = COPY $agpr0239    GLOBAL_STORE_DWORD %0, %1, 0, 0, implicit $exec240...241