996 lines · plain
1# RUN: llc -mtriple=amdgcn -mcpu=gfx1200 -verify-machineinstrs -run-pass si-load-store-opt -o - %s | FileCheck -check-prefix=GFX12 %s2 3---4# GFX12-LABEL: name: image_sample_l_merged_v1v35# GFX12: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_L_V4_V3_gfx12 %5, %5, %5, %3, %2, 15, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), align 4, addrspace 4)6# GFX12: %{{[0-9]+}}:vgpr_32 = COPY %8.sub07# GFX12: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub38 9name: image_sample_l_merged_v1v310body: |11 bb.0.entry:12 %0:sgpr_64 = COPY $sgpr0_sgpr113 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 014 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr9915 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 016 %4:vgpr_32 = COPY %2.sub317 %5:vgpr_32 = BUFFER_LOAD_DWORD_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)18 %6:vgpr_32 = IMAGE_SAMPLE_L_V1_V3_gfx12 %5:vgpr_32, %5:vgpr_32, %5:vgpr_32, %3:sgpr_256, %2:sgpr_128, 1, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)19 %7:vreg_96 = IMAGE_SAMPLE_L_V3_V3_gfx12 %5:vgpr_32, %5:vgpr_32, %5:vgpr_32, %3:sgpr_256, %2:sgpr_128, 14, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)20...21---22# GFX12-LABEL: name: image_sample_l_merged_v1v3_reversed23# GFX12: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_L_V4_V3_gfx12 %5, %5, %5, %3, %2, 15, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), addrspace 4)24# GFX12: %{{[0-9]+}}:vgpr_32 = COPY %8.sub325# GFX12: %{{[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:vgpr_32 = BUFFER_LOAD_DWORD_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)36 %6:vgpr_32 = IMAGE_SAMPLE_L_V1_V3_gfx12 %5:vgpr_32, %5:vgpr_32, %5:vgpr_32, %3:sgpr_256, %2:sgpr_128, 8, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)37 %7:vreg_96 = IMAGE_SAMPLE_L_V3_V3_gfx12 %5:vgpr_32, %5:vgpr_32, %5:vgpr_32, %3:sgpr_256, %2:sgpr_128, 7, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)38...39---40 41# GFX12-LABEL: name: image_sample_l_merged_v2v242# GFX12: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_L_V4_V3_gfx12 %5, %5, %5, %3, %2, 15, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), addrspace 4)43# GFX12: %{{[0-9]+}}:vreg_64 = COPY %8.sub0_sub144# GFX12: %{{[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:vgpr_32 = BUFFER_LOAD_DWORD_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)55 %6:vreg_64 = IMAGE_SAMPLE_L_V2_V3_gfx12 %5:vgpr_32, %5:vgpr_32, %5:vgpr_32, %3:sgpr_256, %2:sgpr_128, 3, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 8, align 16, addrspace 4)56 %7:vreg_64 = IMAGE_SAMPLE_L_V2_V3_gfx12 %5:vgpr_32, %5:vgpr_32, %5:vgpr_32, %3:sgpr_256, %2:sgpr_128, 12, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 8, align 16, addrspace 4)57...58---59 60# GFX12-LABEL: name: image_sample_l_merged_v2v2_reversed61# GFX12: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_L_V4_V3_gfx12 %5, %5, %5, %3, %2, 15, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), addrspace 4)62# GFX12: %{{[0-9]+}}:vreg_64 = COPY %8.sub2_sub363# GFX12: %{{[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:vgpr_32 = BUFFER_LOAD_DWORD_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)74 %6:vreg_64 = IMAGE_SAMPLE_L_V2_V3_gfx12 %5:vgpr_32, %5:vgpr_32, %5:vgpr_32, %3:sgpr_256, %2:sgpr_128, 12, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 8, align 16, addrspace 4)75 %7:vreg_64 = IMAGE_SAMPLE_L_V2_V3_gfx12 %5:vgpr_32, %5:vgpr_32, %5:vgpr_32, %3:sgpr_256, %2:sgpr_128, 3, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 8, align 16, addrspace 4)76...77---78 79# GFX12-LABEL: name: image_sample_l_merged_v3v180# GFX12: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_L_V4_V3_gfx12 %5, %5, %5, %3, %2, 15, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), addrspace 4)81# GFX12: %{{[0-9]+}}:vreg_96 = COPY %8.sub0_sub1_sub282# GFX12: %{{[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:vgpr_32 = BUFFER_LOAD_DWORD_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)93 %6:vreg_96 = IMAGE_SAMPLE_L_V3_V3_gfx12 %5:vgpr_32, %5:vgpr_32, %5:vgpr_32, %3:sgpr_256, %2:sgpr_128, 7, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)94 %7:vgpr_32 = IMAGE_SAMPLE_L_V1_V3_gfx12 %5:vgpr_32, %5:vgpr_32, %5:vgpr_32, %3:sgpr_256, %2:sgpr_128, 8, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)95...96---97 98# GFX12-LABEL: name: image_sample_l_merged_v3v1_reversed99# GFX12: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_L_V4_V3_gfx12 %5, %5, %5, %3, %2, 15, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), align 4, addrspace 4)100# GFX12: %{{[0-9]+}}:vreg_96 = COPY %8.sub1_sub2_sub3101# GFX12: %{{[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:vgpr_32 = BUFFER_LOAD_DWORD_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)112 %6:vreg_96 = IMAGE_SAMPLE_L_V3_V3_gfx12 %5:vgpr_32, %5:vgpr_32, %5:vgpr_32, %3:sgpr_256, %2:sgpr_128, 14, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)113 %7:vgpr_32 = IMAGE_SAMPLE_L_V1_V3_gfx12 %5:vgpr_32, %5:vgpr_32, %5:vgpr_32, %3:sgpr_256, %2:sgpr_128, 1, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)114...115---116 117# GFX12-LABEL: name: image_sample_l_divided_merged118# GFX12: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_L_V4_V3_gfx12 %5, %5, %5, %3, %2, 15, 1, -1, 0, 0, 0, 0, 0, 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:vgpr_32 = BUFFER_LOAD_DWORD_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)129 %6:vgpr_32 = IMAGE_SAMPLE_L_V1_V3_gfx12 %5:vgpr_32, %5:vgpr_32, %5:vgpr_32, %3:sgpr_256, %2:sgpr_128, 8, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)130 %7:vgpr_32 = BUFFER_LOAD_DWORD_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)131 %8:vgpr_32 = BUFFER_LOAD_DWORD_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)132 %9:vreg_96 = IMAGE_SAMPLE_L_V3_V3_gfx12 %7:vgpr_32, %7:vgpr_32, %7:vgpr_32, %3:sgpr_256, %2:sgpr_128, 7, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)133 %10:vgpr_32 = BUFFER_LOAD_DWORD_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)134 %11:vreg_96 = IMAGE_SAMPLE_L_V3_V3_gfx12 %5:vgpr_32, %5:vgpr_32, %5:vgpr_32, %3:sgpr_256, %2:sgpr_128, 7, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)135...136---137 138# GFX12-LABEL: name: image_sample_l_divided_not_merged139# GFX12: %{{[0-9]+}}:vgpr_32 = IMAGE_SAMPLE_L_V1_V3_gfx12 %5, %5, %5, %3, %2, 8, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4)140# GFX12: %{{[0-9]+}}:vreg_96 = IMAGE_SAMPLE_L_V3_V3_gfx12 %5, %5, %5, %3, %2, 7, 1, -1, 0, 0, 0, 0, 0, 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:vgpr_32 = BUFFER_LOAD_DWORD_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)151 %6:vgpr_32 = IMAGE_SAMPLE_L_V1_V3_gfx12 %5:vgpr_32, %5:vgpr_32, %5:vgpr_32, %3:sgpr_256, %2:sgpr_128, 8, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)152 IMAGE_STORE_V4_V2_gfx12 %4:vreg_128, %5:vgpr_32, %5:vgpr_32, %3:sgpr_256, 15, 1, 0, 0, 0, 0, 0, implicit $exec :: (store 16)153 %7:vreg_96 = IMAGE_SAMPLE_L_V3_V3_gfx12 %5:vgpr_32, %5:vgpr_32, %5:vgpr_32, %3:sgpr_256, %2:sgpr_128, 7, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)154...155---156 157# GFX12-LABEL: name: image_sample_l_dmask_overlapped_not_merged158# GFX12: %{{[0-9]+}}:vgpr_32 = IMAGE_SAMPLE_L_V1_V3_gfx12 %5, %5, %5, %3, %2, 4, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4)159# GFX12: %{{[0-9]+}}:vreg_96 = IMAGE_SAMPLE_L_V3_V3_gfx12 %5, %5, %5, %3, %2, 7, 1, -1, 0, 0, 0, 0, 0, 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:vgpr_32 = BUFFER_LOAD_DWORD_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)170 %6:vgpr_32 = IMAGE_SAMPLE_L_V1_V3_gfx12 %5:vgpr_32, %5:vgpr_32, %5:vgpr_32, %3:sgpr_256, %2:sgpr_128, 4, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)171 %7:vreg_96 = IMAGE_SAMPLE_L_V3_V3_gfx12 %5:vgpr_32, %5:vgpr_32, %5:vgpr_32, %3:sgpr_256, %2:sgpr_128, 7, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)172...173---174 175# GFX12-LABEL: name: image_sample_l_dmask_not_disjoint_not_merged176# GFX12: %{{[0-9]+}}:vgpr_32 = IMAGE_SAMPLE_L_V1_V3_gfx12 %5, %5, %5, %3, %2, 4, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4)177# GFX12: %{{[0-9]+}}:vreg_96 = IMAGE_SAMPLE_L_V3_V3_gfx12 %5, %5, %5, %3, %2, 11, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4)178 179name: image_sample_l_dmask_not_disjoint_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:vgpr_32 = BUFFER_LOAD_DWORD_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)188 %6:vgpr_32 = IMAGE_SAMPLE_L_V1_V3_gfx12 %5:vgpr_32, %5:vgpr_32, %5:vgpr_32, %3:sgpr_256, %2:sgpr_128, 4, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)189 %7:vreg_96 = IMAGE_SAMPLE_L_V3_V3_gfx12 %5:vgpr_32, %5:vgpr_32, %5:vgpr_32, %3:sgpr_256, %2:sgpr_128, 11, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)190...191---192 193# GFX12-LABEL: name: image_sample_l_not_merged_0194# GFX12: %{{[0-9]+}}:vgpr_32 = IMAGE_SAMPLE_L_V1_V3_gfx12 %5, %5, %5, %3, %2, 8, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4)195# GFX12: %{{[0-9]+}}:vreg_96 = IMAGE_SAMPLE_L_V3_V3_gfx12 %6, %6, %6, %3, %2, 7, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4)196 197name: image_sample_l_not_merged_0198body: |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:vgpr_32 = BUFFER_LOAD_DWORD_OFFSET %2, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)206 %6:vgpr_32 = BUFFER_LOAD_DWORD_OFFSET %2, 1, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)207 %7:vgpr_32 = IMAGE_SAMPLE_L_V1_V3_gfx12 %5, %5, %5, %3, %2, 8, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)208 %8:vreg_96 = IMAGE_SAMPLE_L_V3_V3_gfx12 %6, %6, %6, %3, %2, 7, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)209...210---211 212# GFX12-LABEL: name: image_sample_l_not_merged_1213# GFX12: %{{[0-9]+}}:vgpr_32 = IMAGE_SAMPLE_L_V1_V3_gfx12 %6, %6, %6, %3, %2, 8, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4)214# GFX12: %{{[0-9]+}}:vreg_96 = IMAGE_SAMPLE_L_V3_V3_gfx12 %6, %6, %6, %4, %2, 7, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4)215 216name: image_sample_l_not_merged_1217body: |218 bb.0.entry:219 %0:sgpr_64 = COPY $sgpr0_sgpr1220 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0221 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99222 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0223 %4:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0224 %5:vgpr_32 = COPY %2.sub3225 %6:vgpr_32 = BUFFER_LOAD_DWORD_OFFSET %2, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)226 %7:vgpr_32 = IMAGE_SAMPLE_L_V1_V3_gfx12 %6, %6, %6, %3, %2, 8, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)227 %8:vreg_96 = IMAGE_SAMPLE_L_V3_V3_gfx12 %6, %6, %6, %4, %2, 7, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)228...229---230 231# GFX12-LABEL: name: image_sample_l_not_merged_2232# GFX12: %{{[0-9]+}}:vgpr_32 = IMAGE_SAMPLE_L_V1_V3_gfx12 %6, %6, %6, %4, %2, 8, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4)233# GFX12: %{{[0-9]+}}:vreg_96 = IMAGE_SAMPLE_L_V3_V3_gfx12 %6, %6, %6, %4, %3, 7, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4)234 235name: image_sample_l_not_merged_2236body: |237 bb.0.entry:238 %0:sgpr_64 = COPY $sgpr0_sgpr1239 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0240 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99241 %3:sgpr_128 = COPY $sgpr92_sgpr93_sgpr94_sgpr95242 %4:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0243 %5:vgpr_32 = COPY %2.sub3244 %6:vgpr_32 = BUFFER_LOAD_DWORD_OFFSET %2, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)245 %7:vgpr_32 = IMAGE_SAMPLE_L_V1_V3_gfx12 %6, %6, %6, %4, %2, 8, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)246 %8:vreg_96 = IMAGE_SAMPLE_L_V3_V3_gfx12 %6, %6, %6, %4, %3, 7, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)247...248---249 250# GFX12-LABEL: name: image_sample_l_not_merged_3251# GFX12: %{{[0-9]+}}:vgpr_32 = IMAGE_SAMPLE_L_V1_V3_gfx12 %5, %5, %5, %3, %2, 8, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4)252# GFX12: %{{[0-9]+}}:vreg_96 = IMAGE_SAMPLE_L_V3_V3_gfx12 %5, %5, %5, %3, %2, 7, 1, -1, 1, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4)253 254name: image_sample_l_not_merged_3255body: |256 bb.0.entry:257 %0:sgpr_64 = COPY $sgpr0_sgpr1258 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0259 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99260 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0261 %4:vgpr_32 = COPY %2.sub3262 %5:vgpr_32 = BUFFER_LOAD_DWORD_OFFSET %2, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)263 %6:vgpr_32 = IMAGE_SAMPLE_L_V1_V3_gfx12 %5, %5, %5, %3, %2, 8, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)264 %7:vreg_96 = IMAGE_SAMPLE_L_V3_V3_gfx12 %5, %5, %5, %3, %2, 7, 1, -1, 1, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)265...266---267 268# GFX12-LABEL: name: image_sample_l_not_merged_4269# GFX12: %{{[0-9]+}}:vgpr_32 = IMAGE_SAMPLE_L_V1_V3_gfx12 %5, %5, %5, %3, %2, 8, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4)270# GFX12: %{{[0-9]+}}:vreg_96 = IMAGE_SAMPLE_L_V3_V3_gfx12 %5, %5, %5, %3, %2, 7, 1, -1, 0, 1, 0, 0, 0, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4)271 272name: image_sample_l_not_merged_4273body: |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:vgpr_32 = BUFFER_LOAD_DWORD_OFFSET %2, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)281 %6:vgpr_32 = IMAGE_SAMPLE_L_V1_V3_gfx12 %5, %5, %5, %3, %2, 8, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)282 %7:vreg_96 = IMAGE_SAMPLE_L_V3_V3_gfx12 %5, %5, %5, %3, %2, 7, 1, -1, 0, 1, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)283...284---285 286# GFX12-LABEL: name: image_sample_l_not_merged_5287# GFX12: %{{[0-9]+}}:vgpr_32 = IMAGE_SAMPLE_L_V1_V3_gfx12 %5, %5, %5, %3, %2, 8, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4)288# GFX12: %{{[0-9]+}}:vreg_96 = IMAGE_SAMPLE_L_V3_V3_gfx12 %5, %5, %5, %3, %2, 7, 1, -1, 1, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4)289 290name: image_sample_l_not_merged_5291body: |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:vgpr_32 = BUFFER_LOAD_DWORD_OFFSET %2, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)299 %6:vgpr_32 = IMAGE_SAMPLE_L_V1_V3_gfx12 %5, %5, %5, %3, %2, 8, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)300 %7:vreg_96 = IMAGE_SAMPLE_L_V3_V3_gfx12 %5, %5, %5, %3, %2, 7, 1, -1, 1, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)301...302---303 304# GFX12-LABEL: name: image_sample_l_not_merged_6305# GFX12: %{{[0-9]+}}:vgpr_32 = IMAGE_SAMPLE_L_V1_V3_gfx12 %5, %5, %5, %3, %2, 8, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4)306# GFX12: %{{[0-9]+}}:vreg_96 = IMAGE_SAMPLE_L_V3_V3_gfx12 %5, %5, %5, %3, %2, 7, 1, -1, 0, 1, 0, 0, 0, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4)307 308name: image_sample_l_not_merged_6309body: |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:vgpr_32 = BUFFER_LOAD_DWORD_OFFSET %2, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)317 %6:vgpr_32 = IMAGE_SAMPLE_L_V1_V3_gfx12 %5, %5, %5, %3, %2, 8, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)318 %7:vreg_96 = IMAGE_SAMPLE_L_V3_V3_gfx12 %5, %5, %5, %3, %2, 7, 1, -1, 0, 1, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)319...320---321 322# GFX12-LABEL: name: image_sample_l_not_merged_7323# GFX12: %{{[0-9]+}}:vgpr_32 = IMAGE_SAMPLE_L_V1_V2_gfx12 %5, %5, %3, %2, 8, 1, -1, 0, 0, 1, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4)324# GFX12: %{{[0-9]+}}:vreg_96 = IMAGE_SAMPLE_L_V3_V3_gfx12 %5, %5, %5, %3, %2, 7, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4)325 326name: image_sample_l_not_merged_7327body: |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:vgpr_32 = BUFFER_LOAD_DWORD_OFFSET %2, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)335 %6:vgpr_32 = IMAGE_SAMPLE_L_V1_V2_gfx12 %5, %5, %3, %2, 8, 1, -1, 0, 0, 1, 0, 0, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)336 %7:vreg_96 = IMAGE_SAMPLE_L_V3_V3_gfx12 %5, %5, %5, %3, %2, 7, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)337...338---339 340# GFX12-LABEL: name: image_sample_l_not_merged_8341# GFX12: %{{[0-9]+}}:vreg_64 = IMAGE_SAMPLE_L_V2_V3_gfx12 %5, %5, %5, %3, %2, 8, 1, -1, 0, 0, 0, 1, 0, 0, implicit $exec :: (dereferenceable load (s64), addrspace 4)342# GFX12: %{{[0-9]+}}:vreg_96 = IMAGE_SAMPLE_L_V3_V3_gfx12 %5, %5, %5, %3, %2, 7, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4)343 344name: image_sample_l_not_merged_8345body: |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:vgpr_32 = BUFFER_LOAD_DWORD_OFFSET %2, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)353 %6:vreg_64 = IMAGE_SAMPLE_L_V2_V3_gfx12 %5, %5, %5, %3, %2, 8, 1, -1, 0, 0, 0, 1, 0, 0, implicit $exec :: (dereferenceable load 8, addrspace 4)354 %7:vreg_96 = IMAGE_SAMPLE_L_V3_V3_gfx12 %5, %5, %5, %3, %2, 7, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)355...356---357 358# GFX12-LABEL: name: image_sample_l_not_merged_9359# GFX12: %{{[0-9]+}}:vreg_64 = IMAGE_SAMPLE_L_V2_V3_gfx12 %5, %5, %5, %3, %2, 8, 1, -1, 0, 0, 0, 0, 1, 0, implicit $exec :: (dereferenceable load (s64), addrspace 4)360# GFX12: %{{[0-9]+}}:vreg_96 = IMAGE_SAMPLE_L_V3_V3_gfx12 %5, %5, %5, %3, %2, 7, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4)361 362name: image_sample_l_not_merged_9363body: |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:vgpr_32 = BUFFER_LOAD_DWORD_OFFSET %2, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)371 %6:vreg_64 = IMAGE_SAMPLE_L_V2_V3_gfx12 %5, %5, %5, %3, %2, 8, 1, -1, 0, 0, 0, 0, 1, 0, implicit $exec :: (dereferenceable load 8, addrspace 4)372 %7:vreg_96 = IMAGE_SAMPLE_L_V3_V3_gfx12 %5, %5, %5, %3, %2, 7, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)373...374---375 376# GFX12-LABEL: name: image_sample_l_not_merged_10377# GFX12: %{{[0-9]+}}:vgpr_32 = IMAGE_SAMPLE_L_V1_V3_gfx12 %5, %5, %5, %3, %2, 8, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4)378# GFX12: %{{[0-9]+}}:vreg_96 = IMAGE_SAMPLE_L_V3_V3_gfx12 %5, %5, %5, %3, %2, 7, 1, -1, 0, 0, 0, 0, 0, 1, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4)379 380name: image_sample_l_not_merged_10381body: |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:vgpr_32 = BUFFER_LOAD_DWORD_OFFSET %2, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)389 %6:vgpr_32 = IMAGE_SAMPLE_L_V1_V3_gfx12 %5, %5, %5, %3, %2, 8, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)390 %7:vreg_96 = IMAGE_SAMPLE_L_V3_V3_gfx12 %5, %5, %5, %3, %2, 7, 1, -1, 0, 0, 0, 0, 0, 1, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)391...392---393 394# GFX12-LABEL: name: image_sample_merged_v1v3395# GFX12: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_V4_V2_gfx12 %5, %5, %3, %2, 15, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), align 4, addrspace 4)396# GFX12: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0397# GFX12: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3398 399name: image_sample_merged_v1v3400body: |401 bb.0.entry:402 %0:sgpr_64 = COPY $sgpr0_sgpr1403 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0404 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99405 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0406 %4:vgpr_32 = COPY %2.sub3407 %5:vgpr_32 = BUFFER_LOAD_DWORD_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)408 %6:vgpr_32 = IMAGE_SAMPLE_V1_V2_gfx12 %5:vgpr_32, %5:vgpr_32, %3:sgpr_256, %2:sgpr_128, 1, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)409 %7:vreg_96 = IMAGE_SAMPLE_V3_V2_gfx12 %5:vgpr_32, %5:vgpr_32, %3:sgpr_256, %2:sgpr_128, 14, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)410...411---412 413# GFX12-LABEL: name: image_sample_b_merged_v1v3414# GFX12: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_B_V4_V3_gfx12 %5, %5, %5, %3, %2, 15, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), align 4, addrspace 4)415# GFX12: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0416# GFX12: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3417 418name: image_sample_b_merged_v1v3419body: |420 bb.0.entry:421 %0:sgpr_64 = COPY $sgpr0_sgpr1422 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0423 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99424 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0425 %4:vgpr_32 = COPY %2.sub3426 %5:vgpr_32 = BUFFER_LOAD_DWORD_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)427 %6:vgpr_32 = IMAGE_SAMPLE_B_V1_V3_gfx12 %5:vgpr_32, %5:vgpr_32, %5:vgpr_32, %3:sgpr_256, %2:sgpr_128, 1, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)428 %7:vreg_96 = IMAGE_SAMPLE_B_V3_V3_gfx12 %5:vgpr_32, %5:vgpr_32, %5:vgpr_32, %3:sgpr_256, %2:sgpr_128, 14, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)429...430---431 432# GFX12-LABEL: name: image_sample_b_cl_merged_v1v3433# GFX12: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_B_CL_V4_V4_gfx12 %5, %5, %5, %5, %3, %2, 15, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), align 4, addrspace 4)434# GFX12: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0435# GFX12: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3436 437name: image_sample_b_cl_merged_v1v3438body: |439 bb.0.entry:440 %0:sgpr_64 = COPY $sgpr0_sgpr1441 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0442 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99443 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0444 %4:vgpr_32 = COPY %2.sub3445 %5:vgpr_32 = BUFFER_LOAD_DWORD_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)446 %6:vgpr_32 = IMAGE_SAMPLE_B_CL_V1_V4_gfx12 %5:vgpr_32, %5:vgpr_32, %5:vgpr_32, %5:vgpr_32, %3:sgpr_256, %2:sgpr_128, 1, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)447 %7:vreg_96 = IMAGE_SAMPLE_B_CL_V3_V4_gfx12 %5:vgpr_32, %5:vgpr_32, %5:vgpr_32, %5:vgpr_32, %3:sgpr_256, %2:sgpr_128, 14, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)448...449---450 451# GFX12-LABEL: name: image_sample_b_cl_o_merged_v1v3452# GFX12: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_B_CL_O_V4_V5_gfx12 %5, %5, %5, %6, %3, %2, 15, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), align 4, addrspace 4)453# GFX12: %{{[0-9]+}}:vgpr_32 = COPY %9.sub0454# GFX12: %{{[0-9]+}}:vreg_96 = COPY killed %9.sub1_sub2_sub3455 456name: image_sample_b_cl_o_merged_v1v3457body: |458 bb.0.entry:459 %0:sgpr_64 = COPY $sgpr0_sgpr1460 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0461 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99462 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0463 %4:vgpr_32 = COPY %2.sub3464 %5:vgpr_32 = BUFFER_LOAD_DWORD_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)465 %6:vreg_64 = REG_SEQUENCE %5:vgpr_32, %subreg.sub0, %5:vgpr_32, %subreg.sub1466 %7:vgpr_32 = IMAGE_SAMPLE_B_CL_O_V1_V5_gfx12 %5:vgpr_32, %5:vgpr_32, %5:vgpr_32, %6:vreg_64, %3:sgpr_256, %2:sgpr_128, 1, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)467 %8:vreg_96 = IMAGE_SAMPLE_B_CL_O_V3_V5_gfx12 %5:vgpr_32, %5:vgpr_32, %5:vgpr_32, %6:vreg_64, %3:sgpr_256, %2:sgpr_128, 14, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)468...469---470 471# GFX12-LABEL: name: image_sample_b_o_merged_v1v3472# GFX12: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_B_O_V4_V4_gfx12 %5, %5, %5, %5, %3, %2, 15, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), align 4, addrspace 4)473# GFX12: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0474# GFX12: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3475 476name: image_sample_b_o_merged_v1v3477body: |478 bb.0.entry:479 %0:sgpr_64 = COPY $sgpr0_sgpr1480 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0481 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99482 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0483 %4:vgpr_32 = COPY %2.sub3484 %5:vgpr_32 = BUFFER_LOAD_DWORD_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)485 %6:vgpr_32 = IMAGE_SAMPLE_B_O_V1_V4_gfx12 %5:vgpr_32, %5:vgpr_32, %5:vgpr_32, %5:vgpr_32, %3:sgpr_256, %2:sgpr_128, 1, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)486 %7:vreg_96 = IMAGE_SAMPLE_B_O_V3_V4_gfx12 %5:vgpr_32, %5:vgpr_32, %5:vgpr_32, %5:vgpr_32, %3:sgpr_256, %2:sgpr_128, 14, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)487...488---489 490# GFX12-LABEL: name: image_sample_c_merged_v1v3491# GFX12: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_C_V4_V3_gfx12 %5, %5, %5, %3, %2, 15, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), align 4, addrspace 4)492# GFX12: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0493# GFX12: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3494 495name: image_sample_c_merged_v1v3496body: |497 bb.0.entry:498 %0:sgpr_64 = COPY $sgpr0_sgpr1499 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0500 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99501 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0502 %4:vgpr_32 = COPY %2.sub3503 %5:vgpr_32 = BUFFER_LOAD_DWORD_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)504 %6:vgpr_32 = IMAGE_SAMPLE_C_V1_V3_gfx12 %5:vgpr_32, %5:vgpr_32, %5:vgpr_32, %3:sgpr_256, %2:sgpr_128, 1, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)505 %7:vreg_96 = IMAGE_SAMPLE_C_V3_V3_gfx12 %5:vgpr_32, %5:vgpr_32, %5:vgpr_32, %3:sgpr_256, %2:sgpr_128, 14, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)506...507---508 509# GFX12-LABEL: name: image_sample_cl_merged_v1v3510# GFX12: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_CL_V4_V3_gfx12 %5, %5, %5, %3, %2, 15, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), align 4, addrspace 4)511# GFX12: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0512# GFX12: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3513 514name: image_sample_cl_merged_v1v3515body: |516 bb.0.entry:517 %0:sgpr_64 = COPY $sgpr0_sgpr1518 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0519 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99520 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0521 %4:vgpr_32 = COPY %2.sub3522 %5:vgpr_32 = BUFFER_LOAD_DWORD_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)523 %6:vgpr_32 = IMAGE_SAMPLE_CL_V1_V3_gfx12 %5:vgpr_32, %5:vgpr_32, %5:vgpr_32, %3:sgpr_256, %2:sgpr_128, 1, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)524 %7:vreg_96 = IMAGE_SAMPLE_CL_V3_V3_gfx12 %5:vgpr_32, %5:vgpr_32, %5:vgpr_32, %3:sgpr_256, %2:sgpr_128, 14, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)525...526---527 528# GFX12-LABEL: name: image_sample_cl_o_merged_v1v3529# GFX12: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_CL_O_V4_V4_gfx12 %5, %5, %5, %5, %3, %2, 15, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), align 4, addrspace 4)530# GFX12: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0531# GFX12: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3532 533name: image_sample_cl_o_merged_v1v3534body: |535 bb.0.entry:536 %0:sgpr_64 = COPY $sgpr0_sgpr1537 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0538 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99539 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0540 %4:vgpr_32 = COPY %2.sub3541 %5:vgpr_32 = BUFFER_LOAD_DWORD_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)542 %6:vgpr_32 = IMAGE_SAMPLE_CL_O_V1_V4_gfx12 %5:vgpr_32, %5:vgpr_32, %5:vgpr_32, %5:vgpr_32, %3:sgpr_256, %2:sgpr_128, 1, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)543 %7:vreg_96 = IMAGE_SAMPLE_CL_O_V3_V4_gfx12 %5:vgpr_32, %5:vgpr_32, %5:vgpr_32, %5:vgpr_32, %3:sgpr_256, %2:sgpr_128, 14, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)544...545---546 547# GFX12-LABEL: name: image_sample_c_b_merged_v1v3548# GFX12: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_C_B_V4_V4_gfx12 %5, %5, %5, %5, %3, %2, 15, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), align 4, addrspace 4)549# GFX12: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0550# GFX12: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3551 552name: image_sample_c_b_merged_v1v3553body: |554 bb.0.entry:555 %0:sgpr_64 = COPY $sgpr0_sgpr1556 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0557 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99558 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0559 %4:vgpr_32 = COPY %2.sub3560 %5:vgpr_32 = BUFFER_LOAD_DWORD_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)561 %6:vgpr_32 = IMAGE_SAMPLE_C_B_V1_V4_gfx12 %5:vgpr_32, %5:vgpr_32, %5:vgpr_32, %5:vgpr_32, %3:sgpr_256, %2:sgpr_128, 1, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)562 %7:vreg_96 = IMAGE_SAMPLE_C_B_V3_V4_gfx12 %5:vgpr_32, %5:vgpr_32, %5:vgpr_32, %5:vgpr_32, %3:sgpr_256, %2:sgpr_128, 14, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)563...564---565 566# GFX12-LABEL: name: image_sample_c_b_cl_merged_v1v3567# GFX12: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_C_B_CL_V4_V5_gfx12 %5, %5, %5, %6, %3, %2, 15, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), align 4, addrspace 4)568# GFX12: %{{[0-9]+}}:vgpr_32 = COPY %9.sub0569# GFX12: %{{[0-9]+}}:vreg_96 = COPY killed %9.sub1_sub2_sub3570 571name: image_sample_c_b_cl_merged_v1v3572body: |573 bb.0.entry:574 %0:sgpr_64 = COPY $sgpr0_sgpr1575 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0576 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99577 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0578 %4:vgpr_32 = COPY %2.sub3579 %5:vgpr_32 = BUFFER_LOAD_DWORD_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)580 %6:vreg_64 = REG_SEQUENCE %5:vgpr_32, %subreg.sub0, %5:vgpr_32, %subreg.sub1581 %7:vgpr_32 = IMAGE_SAMPLE_C_B_CL_V1_V5_gfx12 %5:vgpr_32, %5:vgpr_32, %5:vgpr_32, %6:vreg_64, %3:sgpr_256, %2:sgpr_128, 1, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)582 %8:vreg_96 = IMAGE_SAMPLE_C_B_CL_V3_V5_gfx12 %5:vgpr_32, %5:vgpr_32, %5:vgpr_32, %6:vreg_64, %3:sgpr_256, %2:sgpr_128, 14, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)583...584---585 586# GFX12-LABEL: name: image_sample_c_b_cl_o_merged_v1v3587# GFX12: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_C_B_CL_O_V4_V6_gfx12 %5, %5, %5, %6, %3, %2, 15, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), align 4, addrspace 4)588# GFX12: %{{[0-9]+}}:vgpr_32 = COPY %9.sub0589# GFX12: %{{[0-9]+}}:vreg_96 = COPY killed %9.sub1_sub2_sub3590 591name: image_sample_c_b_cl_o_merged_v1v3592body: |593 bb.0.entry:594 %0:sgpr_64 = COPY $sgpr0_sgpr1595 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0596 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99597 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0598 %4:vgpr_32 = COPY %2.sub3599 %5:vgpr_32 = IMPLICIT_DEF600 %6:vreg_96 = IMPLICIT_DEF601 %7:vgpr_32 = IMAGE_SAMPLE_C_B_CL_O_V1_V6_gfx12 %5:vgpr_32, %5:vgpr_32, %5:vgpr_32, %6:vreg_96, %3:sgpr_256, %2:sgpr_128, 1, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)602 %8:vreg_96 = IMAGE_SAMPLE_C_B_CL_O_V3_V6_gfx12 %5:vgpr_32, %5:vgpr_32, %5:vgpr_32, %6:vreg_96, %3:sgpr_256, %2:sgpr_128, 14, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)603...604---605 606# GFX12-LABEL: name: image_sample_c_b_o_merged_v1v3607# GFX12: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_C_B_O_V4_V5_gfx12 %5, %5, %5, %6, %3, %2, 15, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), align 4, addrspace 4)608# GFX12: %{{[0-9]+}}:vgpr_32 = COPY %9.sub0609# GFX12: %{{[0-9]+}}:vreg_96 = COPY killed %9.sub1_sub2_sub3610 611name: image_sample_c_b_o_merged_v1v3612body: |613 bb.0.entry:614 %0:sgpr_64 = COPY $sgpr0_sgpr1615 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0616 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99617 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0618 %4:vgpr_32 = COPY %2.sub3619 %5:vgpr_32 = BUFFER_LOAD_DWORD_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)620 %6:vreg_64 = REG_SEQUENCE %5:vgpr_32, %subreg.sub0, %5:vgpr_32, %subreg.sub1621 %7:vgpr_32 = IMAGE_SAMPLE_C_B_O_V1_V5_gfx12 %5:vgpr_32, %5:vgpr_32, %5:vgpr_32, %6:vreg_64, %3:sgpr_256, %2:sgpr_128, 1, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)622 %8:vreg_96 = IMAGE_SAMPLE_C_B_O_V3_V5_gfx12 %5:vgpr_32, %5:vgpr_32, %5:vgpr_32, %6:vreg_64, %3:sgpr_256, %2:sgpr_128, 14, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)623...624---625 626# GFX12-LABEL: name: image_sample_c_cl_merged_v1v3627# GFX12: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_C_CL_V4_V4_gfx12 %5, %5, %5, %5, %3, %2, 15, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), align 4, addrspace 4)628# GFX12: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0629# GFX12: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3630 631name: image_sample_c_cl_merged_v1v3632body: |633 bb.0.entry:634 %0:sgpr_64 = COPY $sgpr0_sgpr1635 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0636 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99637 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0638 %4:vgpr_32 = COPY %2.sub3639 %5:vgpr_32 = BUFFER_LOAD_DWORD_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)640 %6:vgpr_32 = IMAGE_SAMPLE_C_CL_V1_V4_gfx12 %5:vgpr_32, %5:vgpr_32, %5:vgpr_32, %5:vgpr_32, %3:sgpr_256, %2:sgpr_128, 1, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)641 %7:vreg_96 = IMAGE_SAMPLE_C_CL_V3_V4_gfx12 %5:vgpr_32, %5:vgpr_32, %5:vgpr_32, %5:vgpr_32, %3:sgpr_256, %2:sgpr_128, 14, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)642...643---644 645# GFX12-LABEL: name: image_sample_c_cl_o_merged_v1v3646# GFX12: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_C_CL_O_V4_V5_gfx12 %5, %5, %5, %6, %3, %2, 15, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), align 4, addrspace 4)647# GFX12: %{{[0-9]+}}:vgpr_32 = COPY %9.sub0648# GFX12: %{{[0-9]+}}:vreg_96 = COPY killed %9.sub1_sub2_sub3649 650name: image_sample_c_cl_o_merged_v1v3651body: |652 bb.0.entry:653 %0:sgpr_64 = COPY $sgpr0_sgpr1654 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0655 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99656 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0657 %4:vgpr_32 = COPY %2.sub3658 %5:vgpr_32 = BUFFER_LOAD_DWORD_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)659 %6:vreg_64 = REG_SEQUENCE %5:vgpr_32, %subreg.sub0, %5:vgpr_32, %subreg.sub1660 %7:vgpr_32 = IMAGE_SAMPLE_C_CL_O_V1_V5_gfx12 %5:vgpr_32, %5:vgpr_32, %5:vgpr_32, %6:vreg_64, %3:sgpr_256, %2:sgpr_128, 1, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)661 %8:vreg_96 = IMAGE_SAMPLE_C_CL_O_V3_V5_gfx12 %5:vgpr_32, %5:vgpr_32, %5:vgpr_32, %6:vreg_64, %3:sgpr_256, %2:sgpr_128, 14, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)662...663---664 665# GFX12-LABEL: name: image_sample_c_d_merged_v1v3666# GFX12: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_C_D_V4_V7_gfx12 %5, %5, %5, %6, %3, %2, 15, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), align 4, addrspace 4)667# GFX12: %{{[0-9]+}}:vgpr_32 = COPY %9.sub0668# GFX12: %{{[0-9]+}}:vreg_96 = COPY killed %9.sub1_sub2_sub3669 670name: image_sample_c_d_merged_v1v3671body: |672 bb.0.entry:673 %0:sgpr_64 = COPY $sgpr0_sgpr1674 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0675 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99676 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0677 %4:vgpr_32 = COPY %2.sub3678 %5:vgpr_32 = IMPLICIT_DEF679 %6:vreg_128 = IMPLICIT_DEF680 %7:vgpr_32 = IMAGE_SAMPLE_C_D_V1_V7_gfx12 %5:vgpr_32, %5:vgpr_32, %5:vgpr_32, %6:vreg_128, %3:sgpr_256, %2:sgpr_128, 1, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)681 %8:vreg_96 = IMAGE_SAMPLE_C_D_V3_V7_gfx12 %5:vgpr_32, %5:vgpr_32, %5:vgpr_32, %6:vreg_128, %3:sgpr_256, %2:sgpr_128, 14, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)682...683---684 685# GFX12-LABEL: name: image_sample_c_d_cl_merged_v1v3686# GFX12: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_C_D_CL_V4_V8_gfx12 %5, %5, %5, %6, %3, %2, 15, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), align 4, addrspace 4)687# GFX12: %{{[0-9]+}}:vgpr_32 = COPY %9.sub0688# GFX12: %{{[0-9]+}}:vreg_96 = COPY killed %9.sub1_sub2_sub3689 690name: image_sample_c_d_cl_merged_v1v3691body: |692 bb.0.entry:693 %0:sgpr_64 = COPY $sgpr0_sgpr1694 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0695 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99696 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0697 %4:vgpr_32 = COPY %2.sub3698 %5:vgpr_32 = IMPLICIT_DEF699 %6:vreg_160 = IMPLICIT_DEF700 %7:vgpr_32 = IMAGE_SAMPLE_C_D_CL_V1_V8_gfx12 %5:vgpr_32, %5:vgpr_32, %5:vgpr_32, %6:vreg_160, %3:sgpr_256, %2:sgpr_128, 1, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)701 %8:vreg_96 = IMAGE_SAMPLE_C_D_CL_V3_V8_gfx12 %5:vgpr_32, %5:vgpr_32, %5:vgpr_32, %6:vreg_160, %3:sgpr_256, %2:sgpr_128, 14, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)702...703---704 705# GFX12-LABEL: name: image_sample_c_d_cl_o_merged_v1v3706# GFX12: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_C_D_CL_O_V4_V9_gfx12 %5, %5, %5, %6, %3, %2, 15, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), align 4, addrspace 4)707# GFX12: %{{[0-9]+}}:vgpr_32 = COPY %9.sub0708# GFX12: %{{[0-9]+}}:vreg_96 = COPY killed %9.sub1_sub2_sub3709 710name: image_sample_c_d_cl_o_merged_v1v3711body: |712 bb.0.entry:713 %0:sgpr_64 = COPY $sgpr0_sgpr1714 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0715 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99716 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0717 %4:vgpr_32 = COPY %2.sub3718 %5:vgpr_32 = IMPLICIT_DEF719 %6:vreg_192 = IMPLICIT_DEF720 %7:vgpr_32 = IMAGE_SAMPLE_C_D_CL_O_V1_V9_gfx12 %5:vgpr_32, %5:vgpr_32, %5:vgpr_32, %6:vreg_192, %3:sgpr_256, %2:sgpr_128, 1, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)721 %8:vreg_96 = IMAGE_SAMPLE_C_D_CL_O_V3_V9_gfx12 %5:vgpr_32, %5:vgpr_32, %5:vgpr_32, %6:vreg_192, %3:sgpr_256, %2:sgpr_128, 14, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)722...723---724 725# GFX12-LABEL: name: image_sample_c_d_o_merged_v1v3726# GFX12: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_C_D_O_V4_V8_gfx12 %5, %5, %5, %6, %3, %2, 15, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), align 4, addrspace 4)727# GFX12: %{{[0-9]+}}:vgpr_32 = COPY %9.sub0728# GFX12: %{{[0-9]+}}:vreg_96 = COPY killed %9.sub1_sub2_sub3729 730name: image_sample_c_d_o_merged_v1v3731body: |732 bb.0.entry:733 %0:sgpr_64 = COPY $sgpr0_sgpr1734 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0735 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99736 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0737 %4:vgpr_32 = COPY %2.sub3738 %5:vgpr_32 = IMPLICIT_DEF739 %6:vreg_160 = IMPLICIT_DEF740 %7:vgpr_32 = IMAGE_SAMPLE_C_D_O_V1_V8_gfx12 %5:vgpr_32, %5:vgpr_32, %5:vgpr_32, %6:vreg_160, %3:sgpr_256, %2:sgpr_128, 1, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)741 %8:vreg_96 = IMAGE_SAMPLE_C_D_O_V3_V8_gfx12 %5:vgpr_32, %5:vgpr_32, %5:vgpr_32, %6:vreg_160, %3:sgpr_256, %2:sgpr_128, 14, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)742...743---744 745# GFX12-LABEL: name: image_sample_c_l_merged_v1v3746# GFX12: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_C_L_V4_V4_gfx12 %5, %5, %5, %5, %3, %2, 15, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), align 4, addrspace 4)747# GFX12: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0748# GFX12: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3749 750name: image_sample_c_l_merged_v1v3751body: |752 bb.0.entry:753 %0:sgpr_64 = COPY $sgpr0_sgpr1754 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0755 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99756 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0757 %4:vgpr_32 = COPY %2.sub3758 %5:vgpr_32 = BUFFER_LOAD_DWORD_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)759 %6:vgpr_32 = IMAGE_SAMPLE_C_L_V1_V4_gfx12 %5:vgpr_32, %5:vgpr_32, %5:vgpr_32, %5:vgpr_32, %3:sgpr_256, %2:sgpr_128, 1, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)760 %7:vreg_96 = IMAGE_SAMPLE_C_L_V3_V4_gfx12 %5:vgpr_32, %5:vgpr_32, %5:vgpr_32, %5:vgpr_32, %3:sgpr_256, %2:sgpr_128, 14, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)761...762---763 764# GFX12-LABEL: name: image_sample_c_lz_merged_v1v3765# GFX12: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_C_LZ_V4_V3_gfx12 %5, %5, %5, %3, %2, 15, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), align 4, addrspace 4)766# GFX12: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0767# GFX12: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3768 769name: image_sample_c_lz_merged_v1v3770body: |771 bb.0.entry:772 %0:sgpr_64 = COPY $sgpr0_sgpr1773 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0774 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99775 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0776 %4:vgpr_32 = COPY %2.sub3777 %5:vgpr_32 = BUFFER_LOAD_DWORD_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)778 %6:vgpr_32 = IMAGE_SAMPLE_C_LZ_V1_V3_gfx12 %5:vgpr_32, %5:vgpr_32, %5:vgpr_32, %3:sgpr_256, %2:sgpr_128, 1, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)779 %7:vreg_96 = IMAGE_SAMPLE_C_LZ_V3_V3_gfx12 %5:vgpr_32, %5:vgpr_32, %5:vgpr_32, %3:sgpr_256, %2:sgpr_128, 14, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)780...781---782 783# GFX12-LABEL: name: image_sample_c_lz_o_merged_v1v3784# GFX12: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_C_LZ_O_V4_V4_gfx12 %5, %5, %5, %5, %3, %2, 15, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), align 4, addrspace 4)785# GFX12: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0786# GFX12: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3787 788name: image_sample_c_lz_o_merged_v1v3789body: |790 bb.0.entry:791 %0:sgpr_64 = COPY $sgpr0_sgpr1792 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0793 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99794 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0795 %4:vgpr_32 = COPY %2.sub3796 %5:vgpr_32 = BUFFER_LOAD_DWORD_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)797 %6:vgpr_32 = IMAGE_SAMPLE_C_LZ_O_V1_V4_gfx12 %5:vgpr_32, %5:vgpr_32, %5:vgpr_32, %5:vgpr_32, %3:sgpr_256, %2:sgpr_128, 1, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)798 %7:vreg_96 = IMAGE_SAMPLE_C_LZ_O_V3_V4_gfx12 %5:vgpr_32, %5:vgpr_32, %5:vgpr_32, %5:vgpr_32, %3:sgpr_256, %2:sgpr_128, 14, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)799...800---801 802# GFX12-LABEL: name: image_sample_c_l_o_merged_v1v3803# GFX12: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_C_L_O_V4_V5_gfx12 %5, %5, %5, %6, %3, %2, 15, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), align 4, addrspace 4)804# GFX12: %{{[0-9]+}}:vgpr_32 = COPY %9.sub0805# GFX12: %{{[0-9]+}}:vreg_96 = COPY killed %9.sub1_sub2_sub3806 807name: image_sample_c_l_o_merged_v1v3808body: |809 bb.0.entry:810 %0:sgpr_64 = COPY $sgpr0_sgpr1811 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0812 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99813 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0814 %4:vgpr_32 = COPY %2.sub3815 %5:vgpr_32 = BUFFER_LOAD_DWORD_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)816 %6:vreg_64 = REG_SEQUENCE %5:vgpr_32, %subreg.sub0, %5:vgpr_32, %subreg.sub1817 %7:vgpr_32 = IMAGE_SAMPLE_C_L_O_V1_V5_gfx12 %5:vgpr_32, %5:vgpr_32, %5:vgpr_32, %6:vreg_64, %3:sgpr_256, %2:sgpr_128, 1, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)818 %8:vreg_96 = IMAGE_SAMPLE_C_L_O_V3_V5_gfx12 %5:vgpr_32, %5:vgpr_32, %5:vgpr_32, %6:vreg_64, %3:sgpr_256, %2:sgpr_128, 14, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)819...820---821 822# GFX12-LABEL: name: image_sample_c_o_merged_v1v3823# GFX12: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_C_O_V4_V4_gfx12 %5, %5, %5, %5, %3, %2, 15, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), align 4, addrspace 4)824# GFX12: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0825# GFX12: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3826 827name: image_sample_c_o_merged_v1v3828body: |829 bb.0.entry:830 %0:sgpr_64 = COPY $sgpr0_sgpr1831 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0832 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99833 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0834 %4:vgpr_32 = COPY %2.sub3835 %5:vgpr_32 = BUFFER_LOAD_DWORD_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)836 %6:vgpr_32 = IMAGE_SAMPLE_C_O_V1_V4_gfx12 %5:vgpr_32, %5:vgpr_32, %5:vgpr_32, %5:vgpr_32, %3:sgpr_256, %2:sgpr_128, 1, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)837 %7:vreg_96 = IMAGE_SAMPLE_C_O_V3_V4_gfx12 %5:vgpr_32, %5:vgpr_32, %5:vgpr_32, %5:vgpr_32, %3:sgpr_256, %2:sgpr_128, 14, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)838...839---840 841# GFX12-LABEL: name: image_sample_d_merged_v1v3842# GFX12: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_D_V4_V6_gfx12 %5, %5, %5, %6, %3, %2, 15, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), align 4, addrspace 4)843# GFX12: %{{[0-9]+}}:vgpr_32 = COPY %9.sub0844# GFX12: %{{[0-9]+}}:vreg_96 = COPY killed %9.sub1_sub2_sub3845 846name: image_sample_d_merged_v1v3847body: |848 bb.0.entry:849 %0:sgpr_64 = COPY $sgpr0_sgpr1850 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0851 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99852 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0853 %4:vgpr_32 = COPY %2.sub3854 %5:vgpr_32 = IMPLICIT_DEF855 %6:vreg_96 = IMPLICIT_DEF856 %7:vgpr_32 = IMAGE_SAMPLE_D_V1_V6_gfx12 %5:vgpr_32, %5:vgpr_32, %5:vgpr_32, %6:vreg_96, %3:sgpr_256, %2:sgpr_128, 1, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)857 %8:vreg_96 = IMAGE_SAMPLE_D_V3_V6_gfx12 %5:vgpr_32, %5:vgpr_32, %5:vgpr_32, %6:vreg_96, %3:sgpr_256, %2:sgpr_128, 14, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)858...859---860 861# GFX12-LABEL: name: image_sample_d_cl_merged_v1v3862# GFX12: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_D_CL_V4_V7_gfx12 %5, %5, %5, %6, %3, %2, 15, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), align 4, addrspace 4)863# GFX12: %{{[0-9]+}}:vgpr_32 = COPY %9.sub0864# GFX12: %{{[0-9]+}}:vreg_96 = COPY killed %9.sub1_sub2_sub3865 866name: image_sample_d_cl_merged_v1v3867body: |868 bb.0.entry:869 %0:sgpr_64 = COPY $sgpr0_sgpr1870 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0871 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99872 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0873 %4:vgpr_32 = COPY %2.sub3874 %5:vgpr_32 = IMPLICIT_DEF875 %6:vreg_128 = IMPLICIT_DEF876 %7:vgpr_32 = IMAGE_SAMPLE_D_CL_V1_V7_gfx12 %5:vgpr_32, %5:vgpr_32, %5:vgpr_32, %6:vreg_128, %3:sgpr_256, %2:sgpr_128, 1, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)877 %8:vreg_96 = IMAGE_SAMPLE_D_CL_V3_V7_gfx12 %5:vgpr_32, %5:vgpr_32, %5:vgpr_32, %6:vreg_128, %3:sgpr_256, %2:sgpr_128, 14, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)878...879---880 881# GFX12-LABEL: name: image_sample_d_cl_o_merged_v1v3882# GFX12: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_D_CL_O_V4_V8_gfx12 %5, %5, %5, %6, %3, %2, 15, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), align 4, addrspace 4)883# GFX12: %{{[0-9]+}}:vgpr_32 = COPY %9.sub0884# GFX12: %{{[0-9]+}}:vreg_96 = COPY killed %9.sub1_sub2_sub3885 886name: image_sample_d_cl_o_merged_v1v3887body: |888 bb.0.entry:889 %0:sgpr_64 = COPY $sgpr0_sgpr1890 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0891 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99892 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0893 %4:vgpr_32 = COPY %2.sub3894 %5:vgpr_32 = IMPLICIT_DEF895 %6:vreg_160 = IMPLICIT_DEF896 %7:vgpr_32 = IMAGE_SAMPLE_D_CL_O_V1_V8_gfx12 %5:vgpr_32, %5:vgpr_32, %5:vgpr_32, %6:vreg_160, %3:sgpr_256, %2:sgpr_128, 1, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)897 %8:vreg_96 = IMAGE_SAMPLE_D_CL_O_V3_V8_gfx12 %5:vgpr_32, %5:vgpr_32, %5:vgpr_32, %6:vreg_160, %3:sgpr_256, %2:sgpr_128, 14, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)898...899---900 901# GFX12-LABEL: name: image_sample_d_o_merged_v1v3902# GFX12: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_D_O_V4_V7_gfx12 %5, %5, %5, %6, %3, %2, 15, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), align 4, addrspace 4)903# GFX12: %{{[0-9]+}}:vgpr_32 = COPY %9.sub0904# GFX12: %{{[0-9]+}}:vreg_96 = COPY killed %9.sub1_sub2_sub3905 906name: image_sample_d_o_merged_v1v3907body: |908 bb.0.entry:909 %0:sgpr_64 = COPY $sgpr0_sgpr1910 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0911 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99912 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0913 %4:vgpr_32 = COPY %2.sub3914 %5:vgpr_32 = IMPLICIT_DEF915 %6:vreg_128 = IMPLICIT_DEF916 %7:vgpr_32 = IMAGE_SAMPLE_D_O_V1_V7_gfx12 %5:vgpr_32, %5:vgpr_32, %5:vgpr_32, %6:vreg_128, %3:sgpr_256, %2:sgpr_128, 1, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)917 %8:vreg_96 = IMAGE_SAMPLE_D_O_V3_V7_gfx12 %5:vgpr_32, %5:vgpr_32, %5:vgpr_32, %6:vreg_128, %3:sgpr_256, %2:sgpr_128, 14, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)918...919---920 921# GFX12-LABEL: name: image_sample_lz_merged_v1v3922# GFX12: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_LZ_V4_V2_gfx12 %5, %5, %3, %2, 15, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), align 4, addrspace 4)923# GFX12: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0924# GFX12: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3925 926name: image_sample_lz_merged_v1v3927body: |928 bb.0.entry:929 %0:sgpr_64 = COPY $sgpr0_sgpr1930 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0931 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99932 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0933 %4:vgpr_32 = COPY %2.sub3934 %5:vgpr_32 = BUFFER_LOAD_DWORD_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)935 %6:vgpr_32 = IMAGE_SAMPLE_LZ_V1_V2_gfx12 %5:vgpr_32, %5:vgpr_32, %3:sgpr_256, %2:sgpr_128, 1, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)936 %7:vreg_96 = IMAGE_SAMPLE_LZ_V3_V2_gfx12 %5:vgpr_32, %5:vgpr_32, %3:sgpr_256, %2:sgpr_128, 14, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)937...938---939 940# GFX12-LABEL: name: image_sample_lz_o_merged_v1v3941# GFX12: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_LZ_O_V4_V3_gfx12 %5, %5, %5, %3, %2, 15, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), align 4, addrspace 4)942# GFX12: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0943# GFX12: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3944 945name: image_sample_lz_o_merged_v1v3946body: |947 bb.0.entry:948 %0:sgpr_64 = COPY $sgpr0_sgpr1949 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0950 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99951 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0952 %4:vgpr_32 = COPY %2.sub3953 %5:vgpr_32 = BUFFER_LOAD_DWORD_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)954 %6:vgpr_32 = IMAGE_SAMPLE_LZ_O_V1_V3_gfx12 %5:vgpr_32, %5:vgpr_32, %5:vgpr_32, %3:sgpr_256, %2:sgpr_128, 1, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)955 %7:vreg_96 = IMAGE_SAMPLE_LZ_O_V3_V3_gfx12 %5:vgpr_32, %5:vgpr_32, %5:vgpr_32, %3:sgpr_256, %2:sgpr_128, 14, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)956...957---958 959# GFX12-LABEL: name: image_sample_l_o_merged_v1v3960# GFX12: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_L_O_V4_V4_gfx12 %5, %5, %5, %5, %3, %2, 15, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), align 4, addrspace 4)961# GFX12: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0962# GFX12: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3963 964name: image_sample_l_o_merged_v1v3965body: |966 bb.0.entry:967 %0:sgpr_64 = COPY $sgpr0_sgpr1968 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0969 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99970 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0971 %4:vgpr_32 = COPY %2.sub3972 %5:vgpr_32 = BUFFER_LOAD_DWORD_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)973 %6:vgpr_32 = IMAGE_SAMPLE_L_O_V1_V4_gfx12 %5:vgpr_32, %5:vgpr_32, %5:vgpr_32, %5:vgpr_32, %3:sgpr_256, %2:sgpr_128, 1, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)974 %7:vreg_96 = IMAGE_SAMPLE_L_O_V3_V4_gfx12 %5:vgpr_32, %5:vgpr_32, %5:vgpr_32, %5:vgpr_32, %3:sgpr_256, %2:sgpr_128, 14, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)975...976---977 978# GFX12-LABEL: name: image_sample_o_merged_v1v3979# GFX12: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_O_V4_V3_gfx12 %5, %5, %5, %3, %2, 15, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), align 4, addrspace 4)980# GFX12: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0981# GFX12: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3982 983name: image_sample_o_merged_v1v3984body: |985 bb.0.entry:986 %0:sgpr_64 = COPY $sgpr0_sgpr1987 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0988 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99989 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0990 %4:vgpr_32 = COPY %2.sub3991 %5:vgpr_32 = BUFFER_LOAD_DWORD_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)992 %6:vgpr_32 = IMAGE_SAMPLE_O_V1_V3_gfx12 %5:vgpr_32, %5:vgpr_32, %5:vgpr_32, %3:sgpr_256, %2:sgpr_128, 1, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)993 %7:vreg_96 = IMAGE_SAMPLE_O_V3_V3_gfx12 %5:vgpr_32, %5:vgpr_32, %5:vgpr_32, %3:sgpr_256, %2:sgpr_128, 14, 1, -1, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)994...995---996