1152 lines · plain
1# RUN: llc -mtriple=amdgcn -mcpu=gfx900 -verify-machineinstrs -run-pass si-load-store-opt -o - %s | FileCheck -check-prefix=GFX9 %s2 3# GFX9-LABEL: name: image_sample_l_merged_v1v34# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_L_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), align 4, addrspace 4)5# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub06# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub37 8name: image_sample_l_merged_v1v39body: |10 bb.0.entry:11 %0:sgpr_64 = COPY $sgpr0_sgpr112 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 013 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr9914 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 015 %4:vgpr_32 = COPY %2.sub316 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128))17 %6:vgpr_32 = IMAGE_SAMPLE_L_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4)18 %7:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4)19...20---21 22# GFX9-LABEL: name: image_sample_l_merged_v1v3_reversed23# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_L_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), addrspace 4)24# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub325# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub0_sub1_sub226 27name: image_sample_l_merged_v1v3_reversed28body: |29 bb.0.entry:30 %0:sgpr_64 = COPY $sgpr0_sgpr131 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 032 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr9933 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 034 %4:vgpr_32 = COPY %2.sub335 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128))36 %6:vgpr_32 = IMAGE_SAMPLE_L_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 8, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4)37 %7:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 7, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4)38...39---40 41# GFX9-LABEL: name: image_sample_l_merged_v2v242# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_L_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), addrspace 4)43# GFX9: %{{[0-9]+}}:vreg_64 = COPY %8.sub0_sub144# GFX9: %{{[0-9]+}}:vreg_64 = COPY killed %8.sub2_sub345 46name: image_sample_l_merged_v2v247body: |48 bb.0.entry:49 %0:sgpr_64 = COPY $sgpr0_sgpr150 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 051 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr9952 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 053 %4:vgpr_32 = COPY %2.sub354 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128))55 %6:vreg_64 = IMAGE_SAMPLE_L_V2_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 3, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s64), align 16, addrspace 4)56 %7:vreg_64 = IMAGE_SAMPLE_L_V2_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 12, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s64), align 16, addrspace 4)57...58---59 60# GFX9-LABEL: name: image_sample_l_merged_v2v2_reversed61# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_L_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), addrspace 4)62# GFX9: %{{[0-9]+}}:vreg_64 = COPY %8.sub2_sub363# GFX9: %{{[0-9]+}}:vreg_64 = COPY killed %8.sub0_sub164 65name: image_sample_l_merged_v2v2_reversed66body: |67 bb.0.entry:68 %0:sgpr_64 = COPY $sgpr0_sgpr169 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 070 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr9971 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 072 %4:vgpr_32 = COPY %2.sub373 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128))74 %6:vreg_64 = IMAGE_SAMPLE_L_V2_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 12, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s64), align 16, addrspace 4)75 %7:vreg_64 = IMAGE_SAMPLE_L_V2_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 3, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s64), align 16, addrspace 4)76...77---78 79# GFX9-LABEL: name: image_sample_l_merged_v3v180# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_L_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), addrspace 4)81# GFX9: %{{[0-9]+}}:vreg_96 = COPY %8.sub0_sub1_sub282# GFX9: %{{[0-9]+}}:vgpr_32 = COPY killed %8.sub383 84name: image_sample_l_merged_v3v185body: |86 bb.0.entry:87 %0:sgpr_64 = COPY $sgpr0_sgpr188 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 089 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr9990 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 091 %4:vgpr_32 = COPY %2.sub392 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128))93 %6:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 7, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4)94 %7:vgpr_32 = IMAGE_SAMPLE_L_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 8, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4)95...96---97 98# GFX9-LABEL: name: image_sample_l_merged_v3v1_reversed99# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_L_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), align 4, addrspace 4)100# GFX9: %{{[0-9]+}}:vreg_96 = COPY %8.sub1_sub2_sub3101# GFX9: %{{[0-9]+}}:vgpr_32 = COPY killed %8.sub0102 103name: image_sample_l_merged_v3v1_reversed104body: |105 bb.0.entry:106 %0:sgpr_64 = COPY $sgpr0_sgpr1107 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0108 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99109 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0110 %4:vgpr_32 = COPY %2.sub3111 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128))112 %6:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4)113 %7:vgpr_32 = IMAGE_SAMPLE_L_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4)114...115---116 117# GFX9-LABEL: name: image_sample_l_divided_merged118# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_L_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), addrspace 4)119 120name: image_sample_l_divided_merged121body: |122 bb.0.entry:123 %0:sgpr_64 = COPY $sgpr0_sgpr1124 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0125 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99126 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0127 %4:vgpr_32 = COPY %2.sub3128 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128))129 %6:vgpr_32 = IMAGE_SAMPLE_L_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 8, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4)130 %7:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128))131 %8:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128))132 %9:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %7:vreg_128, %3:sgpr_256, %2:sgpr_128, 7, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4)133 %10:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128))134 %11:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 7, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4)135...136---137 138# GFX9-LABEL: name: image_sample_l_divided_not_merged139# GFX9: %{{[0-9]+}}:vgpr_32 = IMAGE_SAMPLE_L_V1_V4 %5, %3, %2, 8, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4)140# GFX9: %{{[0-9]+}}:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %5, %3, %2, 7, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4)141 142name: image_sample_l_divided_not_merged143body: |144 bb.0.entry:145 %0:sgpr_64 = COPY $sgpr0_sgpr1146 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0147 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99148 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0149 %4:vreg_128 = COPY %2150 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128))151 %6:vgpr_32 = IMAGE_SAMPLE_L_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 8, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4)152 IMAGE_STORE_V4_V4 %4:vreg_128, %5:vreg_128, %3:sgpr_256, 15, -1, 0, 0, 0, 0, 0, 0, implicit $exec :: (store (s128))153 %7:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 7, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4)154...155---156 157# GFX9-LABEL: name: image_sample_l_dmask_overlapped_not_merged158# GFX9: %{{[0-9]+}}:vgpr_32 = IMAGE_SAMPLE_L_V1_V4 %5, %3, %2, 4, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4)159# GFX9: %{{[0-9]+}}:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %5, %3, %2, 7, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4)160 161name: image_sample_l_dmask_overlapped_not_merged162body: |163 bb.0.entry:164 %0:sgpr_64 = COPY $sgpr0_sgpr1165 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0166 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99167 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0168 %4:vgpr_32 = COPY %2.sub3169 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128))170 %6:vgpr_32 = IMAGE_SAMPLE_L_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 4, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4)171 %7:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 7, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4)172...173---174 175# GFX9-LABEL: name: image_sample_l_dmask_zero_not_merged176# GFX9: %{{[0-9]+}}:vgpr_32 = IMAGE_SAMPLE_L_V1_V4 %5, %3, %2, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4)177# GFX9: %{{[0-9]+}}:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %5, %3, %2, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4)178 179name: image_sample_l_dmask_zero_not_merged180body: |181 bb.0.entry:182 %0:sgpr_64 = COPY $sgpr0_sgpr1183 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0184 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99185 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0186 %4:vgpr_32 = COPY %2.sub3187 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128))188 %6:vgpr_32 = IMAGE_SAMPLE_L_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4)189 %7:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4)190...191---192 193# GFX9-LABEL: name: image_sample_l_dmask_not_disjoint_not_merged194# GFX9: %{{[0-9]+}}:vgpr_32 = IMAGE_SAMPLE_L_V1_V4 %5, %3, %2, 4, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4)195# GFX9: %{{[0-9]+}}:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %5, %3, %2, 11, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4)196 197name: image_sample_l_dmask_not_disjoint_not_merged198body: |199 bb.0.entry:200 %0:sgpr_64 = COPY $sgpr0_sgpr1201 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0202 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99203 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0204 %4:vgpr_32 = COPY %2.sub3205 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128))206 %6:vgpr_32 = IMAGE_SAMPLE_L_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 4, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4)207 %7:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 11, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4)208...209---210 211# GFX9-LABEL: name: image_sample_l_not_merged_0212# GFX9: %{{[0-9]+}}:vgpr_32 = IMAGE_SAMPLE_L_V1_V4 %5, %3, %2, 8, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4)213# GFX9: %{{[0-9]+}}:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %6, %3, %2, 7, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4)214 215name: image_sample_l_not_merged_0216body: |217 bb.0.entry:218 %0:sgpr_64 = COPY $sgpr0_sgpr1219 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0220 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99221 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0222 %4:vgpr_32 = COPY %2.sub3223 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128))224 %6:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2, 1, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128))225 %7:vgpr_32 = IMAGE_SAMPLE_L_V1_V4 %5, %3, %2, 8, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4)226 %8:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %6, %3, %2, 7, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4)227...228---229 230# GFX9-LABEL: name: image_sample_l_not_merged_1231# GFX9: %{{[0-9]+}}:vgpr_32 = IMAGE_SAMPLE_L_V1_V4 %6, %3, %2, 8, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4)232# GFX9: %{{[0-9]+}}:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %6, %4, %2, 7, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4)233 234name: image_sample_l_not_merged_1235body: |236 bb.0.entry:237 %0:sgpr_64 = COPY $sgpr0_sgpr1238 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0239 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99240 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0241 %4:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0242 %5:vgpr_32 = COPY %2.sub3243 %6:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128))244 %7:vgpr_32 = IMAGE_SAMPLE_L_V1_V4 %6, %3, %2, 8, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4)245 %8:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %6, %4, %2, 7, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4)246...247---248 249# GFX9-LABEL: name: image_sample_l_not_merged_2250# GFX9: %{{[0-9]+}}:vgpr_32 = IMAGE_SAMPLE_L_V1_V4 %6, %4, %2, 8, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4)251# GFX9: %{{[0-9]+}}:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %6, %4, %3, 7, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4)252 253name: image_sample_l_not_merged_2254body: |255 bb.0.entry:256 %0:sgpr_64 = COPY $sgpr0_sgpr1257 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0258 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99259 %3:sgpr_128 = COPY $sgpr92_sgpr93_sgpr94_sgpr95260 %4:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0261 %5:vgpr_32 = COPY %2.sub3262 %6:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128))263 %7:vgpr_32 = IMAGE_SAMPLE_L_V1_V4 %6, %4, %2, 8, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4)264 %8:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %6, %4, %3, 7, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4)265...266---267 268# GFX9-LABEL: name: image_sample_l_not_merged_3269# GFX9: %{{[0-9]+}}:vgpr_32 = IMAGE_SAMPLE_L_V1_V4 %5, %3, %2, 8, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4)270# GFX9: %{{[0-9]+}}:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %5, %3, %2, 7, 1, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4)271 272name: image_sample_l_not_merged_3273body: |274 bb.0.entry:275 %0:sgpr_64 = COPY $sgpr0_sgpr1276 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0277 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99278 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0279 %4:vgpr_32 = COPY %2.sub3280 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128))281 %6:vgpr_32 = IMAGE_SAMPLE_L_V1_V4 %5, %3, %2, 8, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4)282 %7:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %5, %3, %2, 7, 1, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4)283...284---285 286# GFX9-LABEL: name: image_sample_l_not_merged_4287# GFX9: %{{[0-9]+}}:vgpr_32 = IMAGE_SAMPLE_L_V1_V4 %5, %3, %2, 8, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4)288# GFX9: %{{[0-9]+}}:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %5, %3, %2, 7, 0, 0, 1, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4)289 290name: image_sample_l_not_merged_4291body: |292 bb.0.entry:293 %0:sgpr_64 = COPY $sgpr0_sgpr1294 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0295 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99296 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0297 %4:vgpr_32 = COPY %2.sub3298 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128))299 %6:vgpr_32 = IMAGE_SAMPLE_L_V1_V4 %5, %3, %2, 8, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4)300 %7:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %5, %3, %2, 7, 0, 0, 1, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4)301...302---303 304# GFX9-LABEL: name: image_sample_l_not_merged_5305# GFX9: %{{[0-9]+}}:vgpr_32 = IMAGE_SAMPLE_L_V1_V4 %5, %3, %2, 8, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4)306# GFX9: %{{[0-9]+}}:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %5, %3, %2, 7, 0, 1, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4)307 308name: image_sample_l_not_merged_5309body: |310 bb.0.entry:311 %0:sgpr_64 = COPY $sgpr0_sgpr1312 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0313 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99314 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0315 %4:vgpr_32 = COPY %2.sub3316 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128))317 %6:vgpr_32 = IMAGE_SAMPLE_L_V1_V4 %5, %3, %2, 8, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4)318 %7:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %5, %3, %2, 7, 0, 1, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4)319...320---321 322# GFX9-LABEL: name: image_sample_l_not_merged_6323# GFX9: %{{[0-9]+}}:vgpr_32 = IMAGE_SAMPLE_L_V1_V4 %5, %3, %2, 8, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4)324# GFX9: %{{[0-9]+}}:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %5, %3, %2, 7, 0, 0, 1, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4)325 326name: image_sample_l_not_merged_6327body: |328 bb.0.entry:329 %0:sgpr_64 = COPY $sgpr0_sgpr1330 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0331 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99332 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0333 %4:vgpr_32 = COPY %2.sub3334 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128))335 %6:vgpr_32 = IMAGE_SAMPLE_L_V1_V4 %5, %3, %2, 8, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4)336 %7:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %5, %3, %2, 7, 0, 0, 1, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4)337...338---339 340# GFX9-LABEL: name: image_sample_l_not_merged_7341# GFX9: %{{[0-9]+}}:vreg_64 = IMAGE_SAMPLE_L_V2_V4 %5, %3, %2, 8, 0, 0, 0, 1, 0, -1, 0, implicit $exec :: (dereferenceable load (s64), addrspace 4)342# GFX9: %{{[0-9]+}}:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %5, %3, %2, 7, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4)343 344name: image_sample_l_not_merged_7345body: |346 bb.0.entry:347 %0:sgpr_64 = COPY $sgpr0_sgpr1348 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0349 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99350 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0351 %4:vgpr_32 = COPY %2.sub3352 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128))353 %6:vreg_64 = IMAGE_SAMPLE_L_V2_V4 %5, %3, %2, 8, 0, 0, 0, 1, 0, -1, 0, implicit $exec :: (dereferenceable load (s64), addrspace 4)354 %7:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %5, %3, %2, 7, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4)355...356---357 358# GFX9-LABEL: name: image_sample_l_not_merged_8359# GFX9: %{{[0-9]+}}:vreg_64 = IMAGE_SAMPLE_L_V2_V4 %5, %3, %2, 8, 0, 0, 0, 0, 1, -1, 0, implicit $exec :: (dereferenceable load (s64), addrspace 4)360# GFX9: %{{[0-9]+}}:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %5, %3, %2, 7, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4)361 362name: image_sample_l_not_merged_8363body: |364 bb.0.entry:365 %0:sgpr_64 = COPY $sgpr0_sgpr1366 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0367 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99368 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0369 %4:vgpr_32 = COPY %2.sub3370 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128))371 %6:vreg_64 = IMAGE_SAMPLE_L_V2_V4 %5, %3, %2, 8, 0, 0, 0, 0, 1, -1, 0, implicit $exec :: (dereferenceable load (s64), addrspace 4)372 %7:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %5, %3, %2, 7, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4)373...374---375 376# GFX9-LABEL: name: image_sample_l_not_merged_9377# GFX9: %{{[0-9]+}}:vgpr_32 = IMAGE_SAMPLE_L_V1_V4 %5, %3, %2, 8, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4)378# GFX9: %{{[0-9]+}}:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %5, %3, %2, 7, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4)379 380name: image_sample_l_not_merged_9381body: |382 bb.0.entry:383 %0:sgpr_64 = COPY $sgpr0_sgpr1384 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0385 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99386 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0387 %4:vgpr_32 = COPY %2.sub3388 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128))389 %6:vgpr_32 = IMAGE_SAMPLE_L_V1_V4 %5, %3, %2, 8, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4)390 %7:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %5, %3, %2, 7, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4)391...392---393 394# GFX9-LABEL: name: image_sample_l_not_merged_10395# GFX9: %{{[0-9]+}}:vgpr_32 = IMAGE_SAMPLE_L_V1_V4 %5, %3, %2, 8, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4)396# GFX9: %{{[0-9]+}}:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %5, %3, %2, 7, 0, 0, 0, 0, 0, -1, 1, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4)397 398name: image_sample_l_not_merged_10399body: |400 bb.0.entry:401 %0:sgpr_64 = COPY $sgpr0_sgpr1402 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0403 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99404 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0405 %4:vgpr_32 = COPY %2.sub3406 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128))407 %6:vgpr_32 = IMAGE_SAMPLE_L_V1_V4 %5, %3, %2, 8, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4)408 %7:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %5, %3, %2, 7, 0, 0, 0, 0, 0, -1, 1, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4)409...410---411 412# GFX9-LABEL: name: image_sample_merged_v1v3413# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), align 4, addrspace 4)414# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0415# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3416 417name: image_sample_merged_v1v3418body: |419 bb.0.entry:420 %0:sgpr_64 = COPY $sgpr0_sgpr1421 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0422 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99423 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0424 %4:vgpr_32 = COPY %2.sub3425 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128))426 %6:vgpr_32 = IMAGE_SAMPLE_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4)427 %7:vreg_96 = IMAGE_SAMPLE_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4)428...429---430 431# GFX9-LABEL: name: image_sample_b_merged_v1v3432# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_B_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), align 4, addrspace 4)433# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0434# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3435 436name: image_sample_b_merged_v1v3437body: |438 bb.0.entry:439 %0:sgpr_64 = COPY $sgpr0_sgpr1440 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0441 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99442 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0443 %4:vgpr_32 = COPY %2.sub3444 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128))445 %6:vgpr_32 = IMAGE_SAMPLE_B_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4)446 %7:vreg_96 = IMAGE_SAMPLE_B_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4)447...448---449 450# GFX9-LABEL: name: image_sample_b_cl_merged_v1v3451# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_B_CL_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), align 4, addrspace 4)452# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0453# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3454 455name: image_sample_b_cl_merged_v1v3456body: |457 bb.0.entry:458 %0:sgpr_64 = COPY $sgpr0_sgpr1459 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0460 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99461 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0462 %4:vgpr_32 = COPY %2.sub3463 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128))464 %6:vgpr_32 = IMAGE_SAMPLE_B_CL_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4)465 %7:vreg_96 = IMAGE_SAMPLE_B_CL_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4)466...467---468 469# GFX9-LABEL: name: image_sample_b_cl_o_merged_v1v3470# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_B_CL_O_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), align 4, addrspace 4)471# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0472# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3473 474name: image_sample_b_cl_o_merged_v1v3475body: |476 bb.0.entry:477 %0:sgpr_64 = COPY $sgpr0_sgpr1478 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0479 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99480 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0481 %4:vgpr_32 = COPY %2.sub3482 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128))483 %6:vgpr_32 = IMAGE_SAMPLE_B_CL_O_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4)484 %7:vreg_96 = IMAGE_SAMPLE_B_CL_O_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4)485...486---487 488# GFX9-LABEL: name: image_sample_b_o_merged_v1v3489# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_B_O_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), align 4, addrspace 4)490# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0491# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3492 493name: image_sample_b_o_merged_v1v3494body: |495 bb.0.entry:496 %0:sgpr_64 = COPY $sgpr0_sgpr1497 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0498 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99499 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0500 %4:vgpr_32 = COPY %2.sub3501 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128))502 %6:vgpr_32 = IMAGE_SAMPLE_B_O_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4)503 %7:vreg_96 = IMAGE_SAMPLE_B_O_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4)504...505---506 507# GFX9-LABEL: name: image_sample_c_merged_v1v3508# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_C_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), align 4, addrspace 4)509# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0510# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3511 512name: image_sample_c_merged_v1v3513body: |514 bb.0.entry:515 %0:sgpr_64 = COPY $sgpr0_sgpr1516 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0517 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99518 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0519 %4:vgpr_32 = COPY %2.sub3520 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128))521 %6:vgpr_32 = IMAGE_SAMPLE_C_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4)522 %7:vreg_96 = IMAGE_SAMPLE_C_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4)523...524---525 526# GFX9-LABEL: name: image_sample_cd_merged_v1v3527# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_CD_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), align 4, addrspace 4)528# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0529# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3530 531name: image_sample_cd_merged_v1v3532body: |533 bb.0.entry:534 %0:sgpr_64 = COPY $sgpr0_sgpr1535 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0536 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99537 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0538 %4:vgpr_32 = COPY %2.sub3539 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128))540 %6:vgpr_32 = IMAGE_SAMPLE_CD_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4)541 %7:vreg_96 = IMAGE_SAMPLE_CD_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4)542...543---544 545# GFX9-LABEL: name: image_sample_cd_cl_merged_v1v3546# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_CD_CL_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), align 4, addrspace 4)547# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0548# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3549 550name: image_sample_cd_cl_merged_v1v3551body: |552 bb.0.entry:553 %0:sgpr_64 = COPY $sgpr0_sgpr1554 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0555 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99556 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0557 %4:vgpr_32 = COPY %2.sub3558 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128))559 %6:vgpr_32 = IMAGE_SAMPLE_CD_CL_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4)560 %7:vreg_96 = IMAGE_SAMPLE_CD_CL_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4)561...562---563 564# GFX9-LABEL: name: image_sample_cd_cl_o_merged_v1v3565# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_CD_CL_O_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), align 4, addrspace 4)566# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0567# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3568 569name: image_sample_cd_cl_o_merged_v1v3570body: |571 bb.0.entry:572 %0:sgpr_64 = COPY $sgpr0_sgpr1573 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0574 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99575 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0576 %4:vgpr_32 = COPY %2.sub3577 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128))578 %6:vgpr_32 = IMAGE_SAMPLE_CD_CL_O_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4)579 %7:vreg_96 = IMAGE_SAMPLE_CD_CL_O_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4)580...581---582 583# GFX9-LABEL: name: image_sample_cd_o_merged_v1v3584# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_CD_O_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), align 4, addrspace 4)585# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0586# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3587 588name: image_sample_cd_o_merged_v1v3589body: |590 bb.0.entry:591 %0:sgpr_64 = COPY $sgpr0_sgpr1592 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0593 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99594 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0595 %4:vgpr_32 = COPY %2.sub3596 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128))597 %6:vgpr_32 = IMAGE_SAMPLE_CD_O_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4)598 %7:vreg_96 = IMAGE_SAMPLE_CD_O_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4)599...600---601 602# GFX9-LABEL: name: image_sample_cl_merged_v1v3603# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_CL_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), align 4, addrspace 4)604# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0605# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3606 607name: image_sample_cl_merged_v1v3608body: |609 bb.0.entry:610 %0:sgpr_64 = COPY $sgpr0_sgpr1611 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0612 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99613 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0614 %4:vgpr_32 = COPY %2.sub3615 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128))616 %6:vgpr_32 = IMAGE_SAMPLE_CL_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4)617 %7:vreg_96 = IMAGE_SAMPLE_CL_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4)618...619---620 621# GFX9-LABEL: name: image_sample_cl_o_merged_v1v3622# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_CL_O_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), align 4, addrspace 4)623# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0624# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3625 626name: image_sample_cl_o_merged_v1v3627body: |628 bb.0.entry:629 %0:sgpr_64 = COPY $sgpr0_sgpr1630 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0631 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99632 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0633 %4:vgpr_32 = COPY %2.sub3634 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128))635 %6:vgpr_32 = IMAGE_SAMPLE_CL_O_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4)636 %7:vreg_96 = IMAGE_SAMPLE_CL_O_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4)637...638---639 640# GFX9-LABEL: name: image_sample_c_b_merged_v1v3641# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_C_B_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), align 4, addrspace 4)642# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0643# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3644 645name: image_sample_c_b_merged_v1v3646body: |647 bb.0.entry:648 %0:sgpr_64 = COPY $sgpr0_sgpr1649 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0650 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99651 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0652 %4:vgpr_32 = COPY %2.sub3653 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128))654 %6:vgpr_32 = IMAGE_SAMPLE_C_B_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4)655 %7:vreg_96 = IMAGE_SAMPLE_C_B_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4)656...657---658 659# GFX9-LABEL: name: image_sample_c_b_cl_merged_v1v3660# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_C_B_CL_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), align 4, addrspace 4)661# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0662# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3663 664name: image_sample_c_b_cl_merged_v1v3665body: |666 bb.0.entry:667 %0:sgpr_64 = COPY $sgpr0_sgpr1668 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0669 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99670 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0671 %4:vgpr_32 = COPY %2.sub3672 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128))673 %6:vgpr_32 = IMAGE_SAMPLE_C_B_CL_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4)674 %7:vreg_96 = IMAGE_SAMPLE_C_B_CL_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4)675...676---677 678# GFX9-LABEL: name: image_sample_c_b_cl_o_merged_v1v3679# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_C_B_CL_O_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), align 4, addrspace 4)680# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0681# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3682 683name: image_sample_c_b_cl_o_merged_v1v3684body: |685 bb.0.entry:686 %0:sgpr_64 = COPY $sgpr0_sgpr1687 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0688 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99689 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0690 %4:vgpr_32 = COPY %2.sub3691 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128))692 %6:vgpr_32 = IMAGE_SAMPLE_C_B_CL_O_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4)693 %7:vreg_96 = IMAGE_SAMPLE_C_B_CL_O_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4)694...695---696 697# GFX9-LABEL: name: image_sample_c_b_o_merged_v1v3698# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_C_B_O_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), align 4, addrspace 4)699# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0700# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3701 702name: image_sample_c_b_o_merged_v1v3703body: |704 bb.0.entry:705 %0:sgpr_64 = COPY $sgpr0_sgpr1706 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0707 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99708 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0709 %4:vgpr_32 = COPY %2.sub3710 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128))711 %6:vgpr_32 = IMAGE_SAMPLE_C_B_O_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4)712 %7:vreg_96 = IMAGE_SAMPLE_C_B_O_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4)713...714---715 716# GFX9-LABEL: name: image_sample_c_cd_merged_v1v3717# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_C_CD_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), align 4, addrspace 4)718# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0719# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3720 721name: image_sample_c_cd_merged_v1v3722body: |723 bb.0.entry:724 %0:sgpr_64 = COPY $sgpr0_sgpr1725 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0726 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99727 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0728 %4:vgpr_32 = COPY %2.sub3729 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128))730 %6:vgpr_32 = IMAGE_SAMPLE_C_CD_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4)731 %7:vreg_96 = IMAGE_SAMPLE_C_CD_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4)732...733---734 735# GFX9-LABEL: name: image_sample_c_cd_cl_merged_v1v3736# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_C_CD_CL_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), align 4, addrspace 4)737# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0738# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3739 740name: image_sample_c_cd_cl_merged_v1v3741body: |742 bb.0.entry:743 %0:sgpr_64 = COPY $sgpr0_sgpr1744 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0745 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99746 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0747 %4:vgpr_32 = COPY %2.sub3748 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128))749 %6:vgpr_32 = IMAGE_SAMPLE_C_CD_CL_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4)750 %7:vreg_96 = IMAGE_SAMPLE_C_CD_CL_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4)751...752---753 754# GFX9-LABEL: name: image_sample_c_cd_cl_o_merged_v1v3755# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_C_CD_CL_O_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), align 4, addrspace 4)756# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0757# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3758 759name: image_sample_c_cd_cl_o_merged_v1v3760body: |761 bb.0.entry:762 %0:sgpr_64 = COPY $sgpr0_sgpr1763 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0764 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99765 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0766 %4:vgpr_32 = COPY %2.sub3767 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128))768 %6:vgpr_32 = IMAGE_SAMPLE_C_CD_CL_O_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4)769 %7:vreg_96 = IMAGE_SAMPLE_C_CD_CL_O_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4)770...771---772 773# GFX9-LABEL: name: image_sample_c_cd_o_merged_v1v3774# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_C_CD_O_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), align 4, addrspace 4)775# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0776# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3777 778name: image_sample_c_cd_o_merged_v1v3779body: |780 bb.0.entry:781 %0:sgpr_64 = COPY $sgpr0_sgpr1782 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0783 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99784 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0785 %4:vgpr_32 = COPY %2.sub3786 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128))787 %6:vgpr_32 = IMAGE_SAMPLE_C_CD_O_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4)788 %7:vreg_96 = IMAGE_SAMPLE_C_CD_O_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4)789...790---791 792# GFX9-LABEL: name: image_sample_c_cl_merged_v1v3793# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_C_CL_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), align 4, addrspace 4)794# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0795# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3796 797name: image_sample_c_cl_merged_v1v3798body: |799 bb.0.entry:800 %0:sgpr_64 = COPY $sgpr0_sgpr1801 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0802 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99803 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0804 %4:vgpr_32 = COPY %2.sub3805 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128))806 %6:vgpr_32 = IMAGE_SAMPLE_C_CL_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4)807 %7:vreg_96 = IMAGE_SAMPLE_C_CL_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4)808...809---810 811# GFX9-LABEL: name: image_sample_c_cl_o_merged_v1v3812# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_C_CL_O_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), align 4, addrspace 4)813# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0814# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3815 816name: image_sample_c_cl_o_merged_v1v3817body: |818 bb.0.entry:819 %0:sgpr_64 = COPY $sgpr0_sgpr1820 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0821 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99822 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0823 %4:vgpr_32 = COPY %2.sub3824 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128))825 %6:vgpr_32 = IMAGE_SAMPLE_C_CL_O_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4)826 %7:vreg_96 = IMAGE_SAMPLE_C_CL_O_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4)827...828---829 830# GFX9-LABEL: name: image_sample_c_d_merged_v1v3831# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_C_D_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), align 4, addrspace 4)832# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0833# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3834 835name: image_sample_c_d_merged_v1v3836body: |837 bb.0.entry:838 %0:sgpr_64 = COPY $sgpr0_sgpr1839 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0840 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99841 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0842 %4:vgpr_32 = COPY %2.sub3843 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128))844 %6:vgpr_32 = IMAGE_SAMPLE_C_D_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4)845 %7:vreg_96 = IMAGE_SAMPLE_C_D_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4)846...847---848 849# GFX9-LABEL: name: image_sample_c_d_cl_merged_v1v3850# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_C_D_CL_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), align 4, addrspace 4)851# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0852# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3853 854name: image_sample_c_d_cl_merged_v1v3855body: |856 bb.0.entry:857 %0:sgpr_64 = COPY $sgpr0_sgpr1858 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0859 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99860 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0861 %4:vgpr_32 = COPY %2.sub3862 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128))863 %6:vgpr_32 = IMAGE_SAMPLE_C_D_CL_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4)864 %7:vreg_96 = IMAGE_SAMPLE_C_D_CL_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4)865...866---867 868# GFX9-LABEL: name: image_sample_c_d_cl_o_merged_v1v3869# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_C_D_CL_O_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), align 4, addrspace 4)870# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0871# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3872 873name: image_sample_c_d_cl_o_merged_v1v3874body: |875 bb.0.entry:876 %0:sgpr_64 = COPY $sgpr0_sgpr1877 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0878 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99879 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0880 %4:vgpr_32 = COPY %2.sub3881 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128))882 %6:vgpr_32 = IMAGE_SAMPLE_C_D_CL_O_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4)883 %7:vreg_96 = IMAGE_SAMPLE_C_D_CL_O_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4)884...885---886 887# GFX9-LABEL: name: image_sample_c_d_o_merged_v1v3888# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_C_D_O_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), align 4, addrspace 4)889# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0890# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3891 892name: image_sample_c_d_o_merged_v1v3893body: |894 bb.0.entry:895 %0:sgpr_64 = COPY $sgpr0_sgpr1896 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0897 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99898 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0899 %4:vgpr_32 = COPY %2.sub3900 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128))901 %6:vgpr_32 = IMAGE_SAMPLE_C_D_O_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4)902 %7:vreg_96 = IMAGE_SAMPLE_C_D_O_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4)903...904---905 906# GFX9-LABEL: name: image_sample_c_l_merged_v1v3907# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_C_L_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), align 4, addrspace 4)908# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0909# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3910 911name: image_sample_c_l_merged_v1v3912body: |913 bb.0.entry:914 %0:sgpr_64 = COPY $sgpr0_sgpr1915 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0916 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99917 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0918 %4:vgpr_32 = COPY %2.sub3919 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128))920 %6:vgpr_32 = IMAGE_SAMPLE_C_L_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4)921 %7:vreg_96 = IMAGE_SAMPLE_C_L_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4)922...923---924 925# GFX9-LABEL: name: image_sample_c_lz_merged_v1v3926# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_C_LZ_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), align 4, addrspace 4)927# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0928# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3929 930name: image_sample_c_lz_merged_v1v3931body: |932 bb.0.entry:933 %0:sgpr_64 = COPY $sgpr0_sgpr1934 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0935 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99936 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0937 %4:vgpr_32 = COPY %2.sub3938 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128))939 %6:vgpr_32 = IMAGE_SAMPLE_C_LZ_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4)940 %7:vreg_96 = IMAGE_SAMPLE_C_LZ_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4)941...942---943 944# GFX9-LABEL: name: image_sample_c_lz_o_merged_v1v3945# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_C_LZ_O_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), align 4, addrspace 4)946# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0947# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3948 949name: image_sample_c_lz_o_merged_v1v3950body: |951 bb.0.entry:952 %0:sgpr_64 = COPY $sgpr0_sgpr1953 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0954 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99955 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0956 %4:vgpr_32 = COPY %2.sub3957 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128))958 %6:vgpr_32 = IMAGE_SAMPLE_C_LZ_O_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4)959 %7:vreg_96 = IMAGE_SAMPLE_C_LZ_O_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4)960...961---962 963# GFX9-LABEL: name: image_sample_c_l_o_merged_v1v3964# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_C_L_O_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), align 4, addrspace 4)965# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0966# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3967 968name: image_sample_c_l_o_merged_v1v3969body: |970 bb.0.entry:971 %0:sgpr_64 = COPY $sgpr0_sgpr1972 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0973 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99974 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0975 %4:vgpr_32 = COPY %2.sub3976 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128))977 %6:vgpr_32 = IMAGE_SAMPLE_C_L_O_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4)978 %7:vreg_96 = IMAGE_SAMPLE_C_L_O_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4)979...980---981 982# GFX9-LABEL: name: image_sample_c_o_merged_v1v3983# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_C_O_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), align 4, addrspace 4)984# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0985# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3986 987name: image_sample_c_o_merged_v1v3988body: |989 bb.0.entry:990 %0:sgpr_64 = COPY $sgpr0_sgpr1991 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0992 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99993 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0994 %4:vgpr_32 = COPY %2.sub3995 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128))996 %6:vgpr_32 = IMAGE_SAMPLE_C_O_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4)997 %7:vreg_96 = IMAGE_SAMPLE_C_O_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4)998...999---1000 1001# GFX9-LABEL: name: image_sample_d_merged_v1v31002# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_D_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), align 4, addrspace 4)1003# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub01004# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub31005 1006name: image_sample_d_merged_v1v31007body: |1008 bb.0.entry:1009 %0:sgpr_64 = COPY $sgpr0_sgpr11010 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 01011 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr991012 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 01013 %4:vgpr_32 = COPY %2.sub31014 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128))1015 %6:vgpr_32 = IMAGE_SAMPLE_D_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4)1016 %7:vreg_96 = IMAGE_SAMPLE_D_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4)1017...1018---1019 1020# GFX9-LABEL: name: image_sample_d_cl_merged_v1v31021# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_D_CL_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), align 4, addrspace 4)1022# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub01023# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub31024 1025name: image_sample_d_cl_merged_v1v31026body: |1027 bb.0.entry:1028 %0:sgpr_64 = COPY $sgpr0_sgpr11029 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 01030 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr991031 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 01032 %4:vgpr_32 = COPY %2.sub31033 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128))1034 %6:vgpr_32 = IMAGE_SAMPLE_D_CL_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4)1035 %7:vreg_96 = IMAGE_SAMPLE_D_CL_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4)1036...1037---1038 1039# GFX9-LABEL: name: image_sample_d_cl_o_merged_v1v31040# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_D_CL_O_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), align 4, addrspace 4)1041# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub01042# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub31043 1044name: image_sample_d_cl_o_merged_v1v31045body: |1046 bb.0.entry:1047 %0:sgpr_64 = COPY $sgpr0_sgpr11048 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 01049 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr991050 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 01051 %4:vgpr_32 = COPY %2.sub31052 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128))1053 %6:vgpr_32 = IMAGE_SAMPLE_D_CL_O_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4)1054 %7:vreg_96 = IMAGE_SAMPLE_D_CL_O_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4)1055...1056---1057 1058# GFX9-LABEL: name: image_sample_d_o_merged_v1v31059# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_D_O_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), align 4, addrspace 4)1060# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub01061# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub31062 1063name: image_sample_d_o_merged_v1v31064body: |1065 bb.0.entry:1066 %0:sgpr_64 = COPY $sgpr0_sgpr11067 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 01068 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr991069 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 01070 %4:vgpr_32 = COPY %2.sub31071 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128))1072 %6:vgpr_32 = IMAGE_SAMPLE_D_O_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4)1073 %7:vreg_96 = IMAGE_SAMPLE_D_O_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4)1074...1075---1076 1077# GFX9-LABEL: name: image_sample_lz_merged_v1v31078# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_LZ_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), align 4, addrspace 4)1079# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub01080# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub31081 1082name: image_sample_lz_merged_v1v31083body: |1084 bb.0.entry:1085 %0:sgpr_64 = COPY $sgpr0_sgpr11086 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 01087 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr991088 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 01089 %4:vgpr_32 = COPY %2.sub31090 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128))1091 %6:vgpr_32 = IMAGE_SAMPLE_LZ_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4)1092 %7:vreg_96 = IMAGE_SAMPLE_LZ_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4)1093...1094---1095 1096# GFX9-LABEL: name: image_sample_lz_o_merged_v1v31097# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_LZ_O_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), align 4, addrspace 4)1098# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub01099# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub31100 1101name: image_sample_lz_o_merged_v1v31102body: |1103 bb.0.entry:1104 %0:sgpr_64 = COPY $sgpr0_sgpr11105 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 01106 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr991107 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 01108 %4:vgpr_32 = COPY %2.sub31109 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128))1110 %6:vgpr_32 = IMAGE_SAMPLE_LZ_O_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4)1111 %7:vreg_96 = IMAGE_SAMPLE_LZ_O_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4)1112...1113---1114 1115# GFX9-LABEL: name: image_sample_l_o_merged_v1v31116# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_L_O_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), align 4, addrspace 4)1117# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub01118# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub31119 1120name: image_sample_l_o_merged_v1v31121body: |1122 bb.0.entry:1123 %0:sgpr_64 = COPY $sgpr0_sgpr11124 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 01125 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr991126 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 01127 %4:vgpr_32 = COPY %2.sub31128 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128))1129 %6:vgpr_32 = IMAGE_SAMPLE_L_O_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4)1130 %7:vreg_96 = IMAGE_SAMPLE_L_O_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4)1131...1132---1133 1134# GFX9-LABEL: name: image_sample_o_merged_v1v31135# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_O_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), align 4, addrspace 4)1136# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub01137# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub31138 1139name: image_sample_o_merged_v1v31140body: |1141 bb.0.entry:1142 %0:sgpr_64 = COPY $sgpr0_sgpr11143 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 01144 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr991145 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 01146 %4:vgpr_32 = COPY %2.sub31147 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128))1148 %6:vgpr_32 = IMAGE_SAMPLE_O_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4)1149 %7:vreg_96 = IMAGE_SAMPLE_O_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4)1150...1151---1152