237 lines · plain
1# RUN: llc -mtriple=amdgcn -mcpu=gfx908 -start-before=greedy,0 -stop-after=virtregrewriter,2 -verify-machineinstrs -o - %s | FileCheck --check-prefixes=GCN,GFX908 %s2 3---4# GCN-LABEL: name: alloc_vgpr_645# GFX908: $vgpr3_vgpr4 = GLOBAL_LOAD6name: alloc_vgpr_647tracksRegLiveness: true8liveins:9 - { reg: '$vgpr0_vgpr1' }10 - { reg: '$vgpr2' }11body: |12 bb.0:13 liveins: $vgpr0_vgpr1, $vgpr214 15 %0:vreg_64 = COPY $vgpr0_vgpr116 %1:vgpr_32 = COPY $vgpr217 %2:vreg_64 = GLOBAL_LOAD_DWORDX2 %0, 0, 0, implicit $exec18 GLOBAL_STORE_DWORDX2 %0, %2, 0, 0, implicit $exec19 GLOBAL_STORE_DWORD %0, %1, 0, 0, implicit $exec20...21 22---23# GCN-LABEL: name: alloc_vgpr_9624# GFX908: $vgpr3_vgpr4_vgpr5 = GLOBAL_LOAD25name: alloc_vgpr_9626tracksRegLiveness: true27liveins:28 - { reg: '$vgpr0_vgpr1' }29 - { reg: '$vgpr2' }30body: |31 bb.0:32 liveins: $vgpr0_vgpr1, $vgpr233 34 %0:vreg_64 = COPY $vgpr0_vgpr135 %1:vgpr_32 = COPY $vgpr236 %2:vreg_96 = GLOBAL_LOAD_DWORDX3 %0, 0, 0, implicit $exec37 GLOBAL_STORE_DWORDX3 %0, %2, 0, 0, implicit $exec38 GLOBAL_STORE_DWORD %0, %1, 0, 0, implicit $exec39...40 41---42# GCN-LABEL: name: alloc_vgpr_12843# GFX908: $vgpr3_vgpr4_vgpr5_vgpr6 = GLOBAL_LOAD44name: alloc_vgpr_12845tracksRegLiveness: true46liveins:47 - { reg: '$vgpr0_vgpr1' }48 - { reg: '$vgpr2' }49body: |50 bb.0:51 liveins: $vgpr0_vgpr1, $vgpr252 53 %0:vreg_64 = COPY $vgpr0_vgpr154 %1:vgpr_32 = COPY $vgpr255 %2:vreg_128 = GLOBAL_LOAD_DWORDX4 %0, 0, 0, implicit $exec56 GLOBAL_STORE_DWORDX4 %0, %2, 0, 0, implicit $exec57 GLOBAL_STORE_DWORD %0, %1, 0, 0, implicit $exec58...59 60---61# GCN-LABEL: name: alloc_vgpr_16062# GFX908: $vgpr3_vgpr4_vgpr5_vgpr6_vgpr7 = IMAGE_LOAD63name: alloc_vgpr_16064tracksRegLiveness: true65liveins:66 - { reg: '$vgpr0_vgpr1' }67 - { reg: '$vgpr2' }68body: |69 bb.0:70 liveins: $vgpr0_vgpr1, $vgpr271 72 %0:vreg_64 = COPY $vgpr0_vgpr173 %1:vgpr_32 = COPY $vgpr274 %2:vreg_160 = IMAGE_LOAD_V5_V1 %1, undef %3:sgpr_256, 0, 0, 0, 0, 0, 1, 0, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4)75 GLOBAL_STORE_DWORDX4 %0, %2.sub0_sub1_sub2_sub3, 0, 0, implicit $exec76 GLOBAL_STORE_DWORD %0, %1, 0, 0, implicit $exec77...78 79---80# GCN-LABEL: name: alloc_vgpr_25681# GFX908: $vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10 = COPY82name: alloc_vgpr_25683tracksRegLiveness: true84liveins:85 - { reg: '$vgpr0_vgpr1' }86 - { reg: '$vgpr2' }87body: |88 bb.0:89 liveins: $vgpr0_vgpr1, $vgpr290 91 %0:vreg_64 = COPY $vgpr0_vgpr192 %1:vgpr_32 = COPY $vgpr293 %3:sgpr_256 = IMPLICIT_DEF94 %2:vreg_256 = COPY %3:sgpr_25695 %4:vreg_128 = 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)96 GLOBAL_STORE_DWORDX4 %0, %2.sub0_sub1_sub2_sub3, 0, 0, implicit $exec97 GLOBAL_STORE_DWORD %0, %1, 0, 0, implicit $exec98...99 100---101# GCN-LABEL: name: alloc_vgpr_512102# GFX908: $vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17_vgpr18 = IMPLICIT_DEF103name: alloc_vgpr_512104tracksRegLiveness: true105liveins:106 - { reg: '$vgpr0_vgpr1' }107 - { reg: '$vgpr2' }108body: |109 bb.0:110 liveins: $vgpr0_vgpr1, $vgpr2111 112 %0:vreg_64 = COPY $vgpr0_vgpr1113 %1:vgpr_32 = COPY $vgpr2114 %2:vreg_512 = IMPLICIT_DEF115 GLOBAL_STORE_DWORDX4 %0, %2.sub0_sub1_sub2_sub3, 0, 0, implicit $exec116 GLOBAL_STORE_DWORDX4 %0, %2.sub4_sub5_sub6_sub7, 0, 0, implicit $exec117 GLOBAL_STORE_DWORDX4 %0, %2.sub8_sub9_sub10_sub11, 0, 0, implicit $exec118 GLOBAL_STORE_DWORDX4 %0, %2.sub12_sub13_sub14_sub15, 0, 0, implicit $exec119 GLOBAL_STORE_DWORD %0, %1, 0, 0, implicit $exec120...121 122---123# GCN-LABEL: name: alloc_vgpr_1024124# GFX908: $vgpr3_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 = IMPLICIT_DEF125name: alloc_vgpr_1024126tracksRegLiveness: true127liveins:128 - { reg: '$vgpr0_vgpr1' }129 - { reg: '$vgpr2' }130body: |131 bb.0:132 liveins: $vgpr0_vgpr1, $vgpr2133 134 %0:vreg_64 = COPY $vgpr0_vgpr1135 %1:vgpr_32 = COPY $vgpr2136 %2:vreg_1024 = IMPLICIT_DEF137 GLOBAL_STORE_DWORDX4 %0, %2.sub0_sub1_sub2_sub3, 0, 0, implicit $exec138 GLOBAL_STORE_DWORDX4 %0, %2.sub4_sub5_sub6_sub7, 0, 0, implicit $exec139 GLOBAL_STORE_DWORDX4 %0, %2.sub8_sub9_sub10_sub11, 0, 0, implicit $exec140 GLOBAL_STORE_DWORDX4 %0, %2.sub12_sub13_sub14_sub15, 0, 0, implicit $exec141 GLOBAL_STORE_DWORDX4 %0, %2.sub16_sub17_sub18_sub19, 0, 0, implicit $exec142 GLOBAL_STORE_DWORDX4 %0, %2.sub20_sub21_sub22_sub23, 0, 0, implicit $exec143 GLOBAL_STORE_DWORDX4 %0, %2.sub24_sub25_sub26_sub27, 0, 0, implicit $exec144 GLOBAL_STORE_DWORDX4 %0, %2.sub28_sub29_sub30_sub31, 0, 0, implicit $exec145 GLOBAL_STORE_DWORD %0, %1, 0, 0, implicit $exec146...147 148---149# GCN-LABEL: name: alloc_agpr_64150# GFX908: $agpr1_agpr2 = IMPLICIT_DEF151name: alloc_agpr_64152tracksRegLiveness: true153liveins:154 - { reg: '$vgpr0_vgpr1' }155 - { reg: '$agpr0' }156body: |157 bb.0:158 liveins: $vgpr0_vgpr1, $agpr0159 160 %0:vreg_64 = COPY $vgpr0_vgpr1161 %3:areg_64 = IMPLICIT_DEF162 %2:vreg_64 = COPY %3:areg_64163 GLOBAL_STORE_DWORDX2 %0, %2, 0, 0, implicit $exec164 %1:vgpr_32 = COPY $agpr0165 GLOBAL_STORE_DWORD %0, %1, 0, 0, implicit $exec166...167 168---169# GCN-LABEL: name: alloc_agpr_128170# GFX908: $agpr1_agpr2_agpr3_agpr4 = IMPLICIT_DEF171name: alloc_agpr_128172tracksRegLiveness: true173liveins:174 - { reg: '$vgpr0_vgpr1' }175 - { reg: '$agpr0' }176body: |177 bb.0:178 liveins: $vgpr0_vgpr1, $agpr0179 180 %0:vreg_64 = COPY $vgpr0_vgpr1181 %3:areg_128 = IMPLICIT_DEF182 %2:vreg_128 = COPY %3:areg_128183 GLOBAL_STORE_DWORDX4 %0, %2, 0, 0, implicit $exec184 %1:vgpr_32 = COPY $agpr0185 GLOBAL_STORE_DWORD %0, %1, 0, 0, implicit $exec186...187 188---189# GCN-LABEL: name: alloc_agpr_512190# GFX908: $agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7_agpr8_agpr9_agpr10_agpr11_agpr12_agpr13_agpr14_agpr15_agpr16 = IMPLICIT_DEF191name: alloc_agpr_512192tracksRegLiveness: true193liveins:194 - { reg: '$vgpr0_vgpr1' }195 - { reg: '$agpr0' }196body: |197 bb.0:198 liveins: $vgpr0_vgpr1, $agpr0199 200 %0:vreg_64 = COPY $vgpr0_vgpr1201 %3:areg_512 = IMPLICIT_DEF202 %2:vreg_512 = COPY %3:areg_512203 GLOBAL_STORE_DWORDX4 %0, %2.sub0_sub1_sub2_sub3, 0, 0, implicit $exec204 GLOBAL_STORE_DWORDX4 %0, %2.sub4_sub5_sub6_sub7, 0, 0, implicit $exec205 GLOBAL_STORE_DWORDX4 %0, %2.sub8_sub9_sub10_sub11, 0, 0, implicit $exec206 GLOBAL_STORE_DWORDX4 %0, %2.sub12_sub13_sub14_sub15, 0, 0, implicit $exec207 %1:vgpr_32 = COPY $agpr0208 GLOBAL_STORE_DWORD %0, %1, 0, 0, implicit $exec209...210 211---212# GCN-LABEL: name: alloc_agpr_1024213# GFX908: $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_DEF214name: alloc_agpr_1024215tracksRegLiveness: true216liveins:217 - { reg: '$vgpr0_vgpr1' }218 - { reg: '$agpr0' }219body: |220 bb.0:221 liveins: $vgpr0_vgpr1, $agpr0222 223 %0:vreg_64 = COPY $vgpr0_vgpr1224 %3:areg_1024 = IMPLICIT_DEF225 %2:vreg_1024 = COPY %3:areg_1024226 GLOBAL_STORE_DWORDX4 %0, %2.sub0_sub1_sub2_sub3, 0, 0, implicit $exec227 GLOBAL_STORE_DWORDX4 %0, %2.sub4_sub5_sub6_sub7, 0, 0, implicit $exec228 GLOBAL_STORE_DWORDX4 %0, %2.sub8_sub9_sub10_sub11, 0, 0, implicit $exec229 GLOBAL_STORE_DWORDX4 %0, %2.sub12_sub13_sub14_sub15, 0, 0, implicit $exec230 GLOBAL_STORE_DWORDX4 %0, %2.sub16_sub17_sub18_sub19, 0, 0, implicit $exec231 GLOBAL_STORE_DWORDX4 %0, %2.sub20_sub21_sub22_sub23, 0, 0, implicit $exec232 GLOBAL_STORE_DWORDX4 %0, %2.sub24_sub25_sub26_sub27, 0, 0, implicit $exec233 GLOBAL_STORE_DWORDX4 %0, %2.sub28_sub29_sub30_sub31, 0, 0, implicit $exec234 %1:vgpr_32 = COPY $agpr0235 GLOBAL_STORE_DWORD %0, %1, 0, 0, implicit $exec236...237