149 lines · plain
1# RUN: llc -mtriple=amdgcn -mcpu=gfx1250 -start-before=greedy,0 -stop-after=virtregrewriter,2 -verify-machineinstrs -o - %s | FileCheck --check-prefixes=GCN,GFX1250 %s2# Using the unaligned vector tuples are OK as long as they aren't used3# in a real instruction.4 5---6# GCN-LABEL: name: alloc_vgpr_647# GFX1250: $vgpr4_vgpr5 = GLOBAL_LOAD8name: alloc_vgpr_649tracksRegLiveness: true10liveins:11 - { reg: '$vgpr0_vgpr1' }12 - { reg: '$vgpr2' }13body: |14 bb.0:15 liveins: $vgpr0_vgpr1, $vgpr216 17 %0:vreg_64_align2 = COPY $vgpr0_vgpr118 %1:vgpr_32 = COPY $vgpr219 %2:vreg_64_align2 = GLOBAL_LOAD_DWORDX2 %0, 0, 0, implicit $exec20 GLOBAL_STORE_DWORDX2 %0, %2, 0, 0, implicit $exec21 GLOBAL_STORE_DWORD %0, %1, 0, 0, implicit $exec22...23 24---25# GCN-LABEL: name: alloc_vgpr_9626# GFX1250: $vgpr4_vgpr5_vgpr6 = GLOBAL_LOAD27name: alloc_vgpr_9628tracksRegLiveness: true29liveins:30 - { reg: '$vgpr0_vgpr1' }31 - { reg: '$vgpr2' }32body: |33 bb.0:34 liveins: $vgpr0_vgpr1, $vgpr235 36 %0:vreg_64_align2 = COPY $vgpr0_vgpr137 %1:vgpr_32 = COPY $vgpr238 %2:vreg_96_align2 = GLOBAL_LOAD_DWORDX3 %0, 0, 0, implicit $exec39 GLOBAL_STORE_DWORDX3 %0, %2, 0, 0, implicit $exec40 GLOBAL_STORE_DWORD %0, %1, 0, 0, implicit $exec41...42 43---44# GCN-LABEL: name: alloc_vgpr_12845# GFX1250: $vgpr4_vgpr5_vgpr6_vgpr7 = GLOBAL_LOAD46name: alloc_vgpr_12847tracksRegLiveness: true48liveins:49 - { reg: '$vgpr0_vgpr1' }50 - { reg: '$vgpr2' }51body: |52 bb.0:53 liveins: $vgpr0_vgpr1, $vgpr254 55 %0:vreg_64_align2 = COPY $vgpr0_vgpr156 %1:vgpr_32 = COPY $vgpr257 %2:vreg_128_align2 = GLOBAL_LOAD_DWORDX4 %0, 0, 0, implicit $exec58 GLOBAL_STORE_DWORDX4 %0, %2, 0, 0, implicit $exec59 GLOBAL_STORE_DWORD %0, %1, 0, 0, implicit $exec60...61 62---63# GCN-LABEL: name: alloc_vgpr_16064# GFX1250: $vgpr4_vgpr5_vgpr6_vgpr7_vgpr8 = IMAGE_LOAD65name: alloc_vgpr_16066tracksRegLiveness: true67liveins:68 - { reg: '$vgpr0_vgpr1' }69 - { reg: '$vgpr2' }70body: |71 bb.0:72 liveins: $vgpr0_vgpr1, $vgpr273 74 %0:vreg_64_align2 = COPY $vgpr0_vgpr175 %1:vgpr_32 = COPY $vgpr276 %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)77 GLOBAL_STORE_DWORDX4 %0, %2.sub0_sub1_sub2_sub3, 0, 0, implicit $exec78 GLOBAL_STORE_DWORD %0, %1, 0, 0, implicit $exec79...80 81---82# GCN-LABEL: name: alloc_vgpr_25683# GFX1250: $vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11 = COPY84name: alloc_vgpr_25685tracksRegLiveness: true86liveins:87 - { reg: '$vgpr0_vgpr1' }88 - { reg: '$vgpr2' }89body: |90 bb.0:91 liveins: $vgpr0_vgpr1, $vgpr292 93 %0:vreg_64_align2 = COPY $vgpr0_vgpr194 %1:vgpr_32 = COPY $vgpr295 %3:sgpr_256 = IMPLICIT_DEF96 %2:vreg_256_align2 = COPY %3:sgpr_25697 %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)98 GLOBAL_STORE_DWORDX4 %0, %2.sub0_sub1_sub2_sub3, 0, 0, implicit $exec99 GLOBAL_STORE_DWORD %0, %1, 0, 0, implicit $exec100...101 102---103# GCN-LABEL: name: alloc_vgpr_512104# GFX1250: $vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17_vgpr18_vgpr19 = IMPLICIT_DEF105name: alloc_vgpr_512106tracksRegLiveness: true107liveins:108 - { reg: '$vgpr0_vgpr1' }109 - { reg: '$vgpr2' }110body: |111 bb.0:112 liveins: $vgpr0_vgpr1, $vgpr2113 114 %0:vreg_64_align2 = COPY $vgpr0_vgpr1115 %1:vgpr_32 = COPY $vgpr2116 %2:vreg_512_align2 = IMPLICIT_DEF117 GLOBAL_STORE_DWORDX4 %0, %2.sub0_sub1_sub2_sub3, 0, 0, implicit $exec118 GLOBAL_STORE_DWORDX4 %0, %2.sub4_sub5_sub6_sub7, 0, 0, implicit $exec119 GLOBAL_STORE_DWORDX4 %0, %2.sub8_sub9_sub10_sub11, 0, 0, implicit $exec120 GLOBAL_STORE_DWORDX4 %0, %2.sub12_sub13_sub14_sub15, 0, 0, implicit $exec121 GLOBAL_STORE_DWORD %0, %1, 0, 0, implicit $exec122...123 124---125# GCN-LABEL: name: alloc_vgpr_1024126# GFX1250: $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_DEF127name: alloc_vgpr_1024128tracksRegLiveness: true129liveins:130 - { reg: '$vgpr0_vgpr1' }131 - { reg: '$vgpr2' }132body: |133 bb.0:134 liveins: $vgpr0_vgpr1, $vgpr2135 136 %0:vreg_64_align2 = COPY $vgpr0_vgpr1137 %1:vgpr_32 = COPY $vgpr2138 %2:vreg_1024_align2 = IMPLICIT_DEF139 GLOBAL_STORE_DWORDX4 %0, %2.sub0_sub1_sub2_sub3, 0, 0, implicit $exec140 GLOBAL_STORE_DWORDX4 %0, %2.sub4_sub5_sub6_sub7, 0, 0, implicit $exec141 GLOBAL_STORE_DWORDX4 %0, %2.sub8_sub9_sub10_sub11, 0, 0, implicit $exec142 GLOBAL_STORE_DWORDX4 %0, %2.sub12_sub13_sub14_sub15, 0, 0, implicit $exec143 GLOBAL_STORE_DWORDX4 %0, %2.sub16_sub17_sub18_sub19, 0, 0, implicit $exec144 GLOBAL_STORE_DWORDX4 %0, %2.sub20_sub21_sub22_sub23, 0, 0, implicit $exec145 GLOBAL_STORE_DWORDX4 %0, %2.sub24_sub25_sub26_sub27, 0, 0, implicit $exec146 GLOBAL_STORE_DWORDX4 %0, %2.sub28_sub29_sub30_sub31, 0, 0, implicit $exec147 GLOBAL_STORE_DWORD %0, %1, 0, 0, implicit $exec148...149