brintos

brintos / llvm-project-archived public Read only

0
0
Text · 65.9 KiB · 6985449 Raw
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