1 # RUN: llc -mtriple=amdgcn -mcpu=gfx1200 -verify-machineinstrs -run-pass si-load-store-opt -o - %s | FileCheck -check-prefix=GFX12 %s
4 # GFX12-LABEL: name: image_sample_l_merged_v1v3
5 # 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.sub0
7 # GFX12: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
9 name: image_sample_l_merged_v1v3
12 %0:sgpr_64 = COPY $sgpr0_sgpr1
13 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
14 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
15 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
16 %4:vgpr_32 = COPY %2.sub3
17 %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)
22 # GFX12-LABEL: name: image_sample_l_merged_v1v3_reversed
23 # 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.sub3
25 # GFX12: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub0_sub1_sub2
27 name: image_sample_l_merged_v1v3_reversed
30 %0:sgpr_64 = COPY $sgpr0_sgpr1
31 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
32 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
33 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
34 %4:vgpr_32 = COPY %2.sub3
35 %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)
41 # GFX12-LABEL: name: image_sample_l_merged_v2v2
42 # 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_sub1
44 # GFX12: %{{[0-9]+}}:vreg_64 = COPY killed %8.sub2_sub3
46 name: image_sample_l_merged_v2v2
49 %0:sgpr_64 = COPY $sgpr0_sgpr1
50 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
51 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
52 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
53 %4:vgpr_32 = COPY %2.sub3
54 %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)
60 # GFX12-LABEL: name: image_sample_l_merged_v2v2_reversed
61 # 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_sub3
63 # GFX12: %{{[0-9]+}}:vreg_64 = COPY killed %8.sub0_sub1
65 name: image_sample_l_merged_v2v2_reversed
68 %0:sgpr_64 = COPY $sgpr0_sgpr1
69 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
70 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
71 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
72 %4:vgpr_32 = COPY %2.sub3
73 %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)
79 # GFX12-LABEL: name: image_sample_l_merged_v3v1
80 # 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_sub2
82 # GFX12: %{{[0-9]+}}:vgpr_32 = COPY killed %8.sub3
84 name: image_sample_l_merged_v3v1
87 %0:sgpr_64 = COPY $sgpr0_sgpr1
88 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
89 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
90 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
91 %4:vgpr_32 = COPY %2.sub3
92 %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)
98 # GFX12-LABEL: name: image_sample_l_merged_v3v1_reversed
99 # 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_sub3
101 # GFX12: %{{[0-9]+}}:vgpr_32 = COPY killed %8.sub0
103 name: image_sample_l_merged_v3v1_reversed
106 %0:sgpr_64 = COPY $sgpr0_sgpr1
107 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
108 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
109 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
110 %4:vgpr_32 = COPY %2.sub3
111 %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)
117 # GFX12-LABEL: name: image_sample_l_divided_merged
118 # 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)
120 name: image_sample_l_divided_merged
123 %0:sgpr_64 = COPY $sgpr0_sgpr1
124 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
125 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
126 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
127 %4:vgpr_32 = COPY %2.sub3
128 %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)
138 # GFX12-LABEL: name: image_sample_l_divided_not_merged
139 # 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)
142 name: image_sample_l_divided_not_merged
145 %0:sgpr_64 = COPY $sgpr0_sgpr1
146 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
147 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
148 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
149 %4:vreg_128 = COPY %2
150 %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)
157 # GFX12-LABEL: name: image_sample_l_dmask_overlapped_not_merged
158 # 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)
161 name: image_sample_l_dmask_overlapped_not_merged
164 %0:sgpr_64 = COPY $sgpr0_sgpr1
165 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
166 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
167 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
168 %4:vgpr_32 = COPY %2.sub3
169 %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)
175 # GFX12-LABEL: name: image_sample_l_dmask_not_disjoint_not_merged
176 # 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)
179 name: image_sample_l_dmask_not_disjoint_not_merged
182 %0:sgpr_64 = COPY $sgpr0_sgpr1
183 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
184 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
185 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
186 %4:vgpr_32 = COPY %2.sub3
187 %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)
193 # GFX12-LABEL: name: image_sample_l_not_merged_0
194 # 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)
197 name: image_sample_l_not_merged_0
200 %0:sgpr_64 = COPY $sgpr0_sgpr1
201 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
202 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
203 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
204 %4:vgpr_32 = COPY %2.sub3
205 %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)
212 # GFX12-LABEL: name: image_sample_l_not_merged_1
213 # 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)
216 name: image_sample_l_not_merged_1
219 %0:sgpr_64 = COPY $sgpr0_sgpr1
220 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
221 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
222 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
223 %4:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
224 %5:vgpr_32 = COPY %2.sub3
225 %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)
231 # GFX12-LABEL: name: image_sample_l_not_merged_2
232 # 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)
235 name: image_sample_l_not_merged_2
238 %0:sgpr_64 = COPY $sgpr0_sgpr1
239 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
240 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
241 %3:sgpr_128 = COPY $sgpr92_sgpr93_sgpr94_sgpr95
242 %4:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
243 %5:vgpr_32 = COPY %2.sub3
244 %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)
250 # GFX12-LABEL: name: image_sample_l_not_merged_3
251 # 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)
254 name: image_sample_l_not_merged_3
257 %0:sgpr_64 = COPY $sgpr0_sgpr1
258 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
259 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
260 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
261 %4:vgpr_32 = COPY %2.sub3
262 %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)
268 # GFX12-LABEL: name: image_sample_l_not_merged_4
269 # 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)
272 name: image_sample_l_not_merged_4
275 %0:sgpr_64 = COPY $sgpr0_sgpr1
276 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
277 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
278 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
279 %4:vgpr_32 = COPY %2.sub3
280 %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)
286 # GFX12-LABEL: name: image_sample_l_not_merged_5
287 # 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)
290 name: image_sample_l_not_merged_5
293 %0:sgpr_64 = COPY $sgpr0_sgpr1
294 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
295 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
296 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
297 %4:vgpr_32 = COPY %2.sub3
298 %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)
304 # GFX12-LABEL: name: image_sample_l_not_merged_6
305 # 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)
308 name: image_sample_l_not_merged_6
311 %0:sgpr_64 = COPY $sgpr0_sgpr1
312 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
313 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
314 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
315 %4:vgpr_32 = COPY %2.sub3
316 %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)
322 # GFX12-LABEL: name: image_sample_l_not_merged_7
323 # 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)
326 name: image_sample_l_not_merged_7
329 %0:sgpr_64 = COPY $sgpr0_sgpr1
330 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
331 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
332 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
333 %4:vgpr_32 = COPY %2.sub3
334 %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)
340 # GFX12-LABEL: name: image_sample_l_not_merged_8
341 # 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)
344 name: image_sample_l_not_merged_8
347 %0:sgpr_64 = COPY $sgpr0_sgpr1
348 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
349 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
350 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
351 %4:vgpr_32 = COPY %2.sub3
352 %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)
358 # GFX12-LABEL: name: image_sample_l_not_merged_9
359 # 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)
362 name: image_sample_l_not_merged_9
365 %0:sgpr_64 = COPY $sgpr0_sgpr1
366 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
367 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
368 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
369 %4:vgpr_32 = COPY %2.sub3
370 %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)
376 # GFX12-LABEL: name: image_sample_l_not_merged_10
377 # 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)
380 name: image_sample_l_not_merged_10
383 %0:sgpr_64 = COPY $sgpr0_sgpr1
384 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
385 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
386 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
387 %4:vgpr_32 = COPY %2.sub3
388 %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)
394 # GFX12-LABEL: name: image_sample_merged_v1v3
395 # 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.sub0
397 # GFX12: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
399 name: image_sample_merged_v1v3
402 %0:sgpr_64 = COPY $sgpr0_sgpr1
403 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
404 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
405 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
406 %4:vgpr_32 = COPY %2.sub3
407 %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)
413 # GFX12-LABEL: name: image_sample_b_merged_v1v3
414 # 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.sub0
416 # GFX12: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
418 name: image_sample_b_merged_v1v3
421 %0:sgpr_64 = COPY $sgpr0_sgpr1
422 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
423 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
424 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
425 %4:vgpr_32 = COPY %2.sub3
426 %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)
432 # GFX12-LABEL: name: image_sample_b_cl_merged_v1v3
433 # 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.sub0
435 # GFX12: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
437 name: image_sample_b_cl_merged_v1v3
440 %0:sgpr_64 = COPY $sgpr0_sgpr1
441 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
442 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
443 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
444 %4:vgpr_32 = COPY %2.sub3
445 %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)
451 # GFX12-LABEL: name: image_sample_b_cl_o_merged_v1v3
452 # 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.sub0
454 # GFX12: %{{[0-9]+}}:vreg_96 = COPY killed %9.sub1_sub2_sub3
456 name: image_sample_b_cl_o_merged_v1v3
459 %0:sgpr_64 = COPY $sgpr0_sgpr1
460 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
461 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
462 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
463 %4:vgpr_32 = COPY %2.sub3
464 %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.sub1
466 %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)
471 # GFX12-LABEL: name: image_sample_b_o_merged_v1v3
472 # 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.sub0
474 # GFX12: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
476 name: image_sample_b_o_merged_v1v3
479 %0:sgpr_64 = COPY $sgpr0_sgpr1
480 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
481 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
482 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
483 %4:vgpr_32 = COPY %2.sub3
484 %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)
490 # GFX12-LABEL: name: image_sample_c_merged_v1v3
491 # 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.sub0
493 # GFX12: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
495 name: image_sample_c_merged_v1v3
498 %0:sgpr_64 = COPY $sgpr0_sgpr1
499 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
500 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
501 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
502 %4:vgpr_32 = COPY %2.sub3
503 %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)
509 # GFX12-LABEL: name: image_sample_cl_merged_v1v3
510 # 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.sub0
512 # GFX12: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
514 name: image_sample_cl_merged_v1v3
517 %0:sgpr_64 = COPY $sgpr0_sgpr1
518 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
519 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
520 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
521 %4:vgpr_32 = COPY %2.sub3
522 %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)
528 # GFX12-LABEL: name: image_sample_cl_o_merged_v1v3
529 # 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.sub0
531 # GFX12: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
533 name: image_sample_cl_o_merged_v1v3
536 %0:sgpr_64 = COPY $sgpr0_sgpr1
537 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
538 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
539 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
540 %4:vgpr_32 = COPY %2.sub3
541 %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)
547 # GFX12-LABEL: name: image_sample_c_b_merged_v1v3
548 # 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.sub0
550 # GFX12: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
552 name: image_sample_c_b_merged_v1v3
555 %0:sgpr_64 = COPY $sgpr0_sgpr1
556 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
557 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
558 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
559 %4:vgpr_32 = COPY %2.sub3
560 %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)
566 # GFX12-LABEL: name: image_sample_c_b_cl_merged_v1v3
567 # 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.sub0
569 # GFX12: %{{[0-9]+}}:vreg_96 = COPY killed %9.sub1_sub2_sub3
571 name: image_sample_c_b_cl_merged_v1v3
574 %0:sgpr_64 = COPY $sgpr0_sgpr1
575 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
576 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
577 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
578 %4:vgpr_32 = COPY %2.sub3
579 %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.sub1
581 %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)
586 # GFX12-LABEL: name: image_sample_c_b_cl_o_merged_v1v3
587 # 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.sub0
589 # GFX12: %{{[0-9]+}}:vreg_96 = COPY killed %9.sub1_sub2_sub3
591 name: image_sample_c_b_cl_o_merged_v1v3
594 %0:sgpr_64 = COPY $sgpr0_sgpr1
595 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
596 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
597 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
598 %4:vgpr_32 = COPY %2.sub3
599 %5:vgpr_32 = IMPLICIT_DEF
600 %6:vreg_96 = IMPLICIT_DEF
601 %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)
606 # GFX12-LABEL: name: image_sample_c_b_o_merged_v1v3
607 # 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.sub0
609 # GFX12: %{{[0-9]+}}:vreg_96 = COPY killed %9.sub1_sub2_sub3
611 name: image_sample_c_b_o_merged_v1v3
614 %0:sgpr_64 = COPY $sgpr0_sgpr1
615 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
616 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
617 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
618 %4:vgpr_32 = COPY %2.sub3
619 %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.sub1
621 %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)
626 # GFX12-LABEL: name: image_sample_c_cl_merged_v1v3
627 # 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.sub0
629 # GFX12: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
631 name: image_sample_c_cl_merged_v1v3
634 %0:sgpr_64 = COPY $sgpr0_sgpr1
635 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
636 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
637 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
638 %4:vgpr_32 = COPY %2.sub3
639 %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)
645 # GFX12-LABEL: name: image_sample_c_cl_o_merged_v1v3
646 # 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.sub0
648 # GFX12: %{{[0-9]+}}:vreg_96 = COPY killed %9.sub1_sub2_sub3
650 name: image_sample_c_cl_o_merged_v1v3
653 %0:sgpr_64 = COPY $sgpr0_sgpr1
654 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
655 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
656 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
657 %4:vgpr_32 = COPY %2.sub3
658 %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.sub1
660 %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)
665 # GFX12-LABEL: name: image_sample_c_d_merged_v1v3
666 # 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.sub0
668 # GFX12: %{{[0-9]+}}:vreg_96 = COPY killed %9.sub1_sub2_sub3
670 name: image_sample_c_d_merged_v1v3
673 %0:sgpr_64 = COPY $sgpr0_sgpr1
674 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
675 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
676 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
677 %4:vgpr_32 = COPY %2.sub3
678 %5:vgpr_32 = IMPLICIT_DEF
679 %6:vreg_128 = IMPLICIT_DEF
680 %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)
685 # GFX12-LABEL: name: image_sample_c_d_cl_merged_v1v3
686 # 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.sub0
688 # GFX12: %{{[0-9]+}}:vreg_96 = COPY killed %9.sub1_sub2_sub3
690 name: image_sample_c_d_cl_merged_v1v3
693 %0:sgpr_64 = COPY $sgpr0_sgpr1
694 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
695 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
696 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
697 %4:vgpr_32 = COPY %2.sub3
698 %5:vgpr_32 = IMPLICIT_DEF
699 %6:vreg_160 = IMPLICIT_DEF
700 %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)
705 # GFX12-LABEL: name: image_sample_c_d_cl_o_merged_v1v3
706 # 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.sub0
708 # GFX12: %{{[0-9]+}}:vreg_96 = COPY killed %9.sub1_sub2_sub3
710 name: image_sample_c_d_cl_o_merged_v1v3
713 %0:sgpr_64 = COPY $sgpr0_sgpr1
714 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
715 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
716 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
717 %4:vgpr_32 = COPY %2.sub3
718 %5:vgpr_32 = IMPLICIT_DEF
719 %6:vreg_192 = IMPLICIT_DEF
720 %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)
725 # GFX12-LABEL: name: image_sample_c_d_o_merged_v1v3
726 # 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.sub0
728 # GFX12: %{{[0-9]+}}:vreg_96 = COPY killed %9.sub1_sub2_sub3
730 name: image_sample_c_d_o_merged_v1v3
733 %0:sgpr_64 = COPY $sgpr0_sgpr1
734 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
735 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
736 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
737 %4:vgpr_32 = COPY %2.sub3
738 %5:vgpr_32 = IMPLICIT_DEF
739 %6:vreg_160 = IMPLICIT_DEF
740 %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)
745 # GFX12-LABEL: name: image_sample_c_l_merged_v1v3
746 # 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.sub0
748 # GFX12: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
750 name: image_sample_c_l_merged_v1v3
753 %0:sgpr_64 = COPY $sgpr0_sgpr1
754 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
755 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
756 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
757 %4:vgpr_32 = COPY %2.sub3
758 %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)
764 # GFX12-LABEL: name: image_sample_c_lz_merged_v1v3
765 # 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.sub0
767 # GFX12: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
769 name: image_sample_c_lz_merged_v1v3
772 %0:sgpr_64 = COPY $sgpr0_sgpr1
773 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
774 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
775 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
776 %4:vgpr_32 = COPY %2.sub3
777 %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)
783 # GFX12-LABEL: name: image_sample_c_lz_o_merged_v1v3
784 # 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.sub0
786 # GFX12: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
788 name: image_sample_c_lz_o_merged_v1v3
791 %0:sgpr_64 = COPY $sgpr0_sgpr1
792 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
793 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
794 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
795 %4:vgpr_32 = COPY %2.sub3
796 %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)
802 # GFX12-LABEL: name: image_sample_c_l_o_merged_v1v3
803 # 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.sub0
805 # GFX12: %{{[0-9]+}}:vreg_96 = COPY killed %9.sub1_sub2_sub3
807 name: image_sample_c_l_o_merged_v1v3
810 %0:sgpr_64 = COPY $sgpr0_sgpr1
811 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
812 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
813 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
814 %4:vgpr_32 = COPY %2.sub3
815 %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.sub1
817 %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)
822 # GFX12-LABEL: name: image_sample_c_o_merged_v1v3
823 # 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.sub0
825 # GFX12: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
827 name: image_sample_c_o_merged_v1v3
830 %0:sgpr_64 = COPY $sgpr0_sgpr1
831 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
832 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
833 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
834 %4:vgpr_32 = COPY %2.sub3
835 %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)
841 # GFX12-LABEL: name: image_sample_d_merged_v1v3
842 # 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.sub0
844 # GFX12: %{{[0-9]+}}:vreg_96 = COPY killed %9.sub1_sub2_sub3
846 name: image_sample_d_merged_v1v3
849 %0:sgpr_64 = COPY $sgpr0_sgpr1
850 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
851 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
852 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
853 %4:vgpr_32 = COPY %2.sub3
854 %5:vgpr_32 = IMPLICIT_DEF
855 %6:vreg_96 = IMPLICIT_DEF
856 %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)
861 # GFX12-LABEL: name: image_sample_d_cl_merged_v1v3
862 # 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.sub0
864 # GFX12: %{{[0-9]+}}:vreg_96 = COPY killed %9.sub1_sub2_sub3
866 name: image_sample_d_cl_merged_v1v3
869 %0:sgpr_64 = COPY $sgpr0_sgpr1
870 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
871 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
872 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
873 %4:vgpr_32 = COPY %2.sub3
874 %5:vgpr_32 = IMPLICIT_DEF
875 %6:vreg_128 = IMPLICIT_DEF
876 %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)
881 # GFX12-LABEL: name: image_sample_d_cl_o_merged_v1v3
882 # 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.sub0
884 # GFX12: %{{[0-9]+}}:vreg_96 = COPY killed %9.sub1_sub2_sub3
886 name: image_sample_d_cl_o_merged_v1v3
889 %0:sgpr_64 = COPY $sgpr0_sgpr1
890 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
891 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
892 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
893 %4:vgpr_32 = COPY %2.sub3
894 %5:vgpr_32 = IMPLICIT_DEF
895 %6:vreg_160 = IMPLICIT_DEF
896 %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)
901 # GFX12-LABEL: name: image_sample_d_o_merged_v1v3
902 # 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.sub0
904 # GFX12: %{{[0-9]+}}:vreg_96 = COPY killed %9.sub1_sub2_sub3
906 name: image_sample_d_o_merged_v1v3
909 %0:sgpr_64 = COPY $sgpr0_sgpr1
910 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
911 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
912 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
913 %4:vgpr_32 = COPY %2.sub3
914 %5:vgpr_32 = IMPLICIT_DEF
915 %6:vreg_128 = IMPLICIT_DEF
916 %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)
921 # GFX12-LABEL: name: image_sample_lz_merged_v1v3
922 # 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.sub0
924 # GFX12: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
926 name: image_sample_lz_merged_v1v3
929 %0:sgpr_64 = COPY $sgpr0_sgpr1
930 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
931 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
932 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
933 %4:vgpr_32 = COPY %2.sub3
934 %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)
940 # GFX12-LABEL: name: image_sample_lz_o_merged_v1v3
941 # 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.sub0
943 # GFX12: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
945 name: image_sample_lz_o_merged_v1v3
948 %0:sgpr_64 = COPY $sgpr0_sgpr1
949 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
950 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
951 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
952 %4:vgpr_32 = COPY %2.sub3
953 %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)
959 # GFX12-LABEL: name: image_sample_l_o_merged_v1v3
960 # 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.sub0
962 # GFX12: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
964 name: image_sample_l_o_merged_v1v3
967 %0:sgpr_64 = COPY $sgpr0_sgpr1
968 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
969 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
970 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
971 %4:vgpr_32 = COPY %2.sub3
972 %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)
978 # GFX12-LABEL: name: image_sample_o_merged_v1v3
979 # 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.sub0
981 # GFX12: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
983 name: image_sample_o_merged_v1v3
986 %0:sgpr_64 = COPY $sgpr0_sgpr1
987 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
988 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
989 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
990 %4:vgpr_32 = COPY %2.sub3
991 %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)