[clang] Fix crashes when passing VLA to va_arg (#119563)
[llvm-project.git] / llvm / test / CodeGen / AMDGPU / merge-image-sample-gfx12.mir
blobe8bd54df98bd421c6fb8381e75456d5cb9d596fe
1 # RUN: llc -mtriple=amdgcn -mcpu=gfx1200 -verify-machineinstrs -run-pass si-load-store-opt -o - %s | FileCheck -check-prefix=GFX12 %s
3 ---
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
10 body:             |
11   bb.0.entry:
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)
20 ...
21 ---
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
28 body:             |
29   bb.0.entry:
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)
38 ...
39 ---
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
47 body:             |
48   bb.0.entry:
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)
57 ...
58 ---
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
66 body:             |
67   bb.0.entry:
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)
76 ...
77 ---
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
85 body:             |
86   bb.0.entry:
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)
95 ...
96 ---
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
104 body:             |
105   bb.0.entry:
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
121 body:             |
122   bb.0.entry:
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
143 body:             |
144   bb.0.entry:
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
162 body:             |
163   bb.0.entry:
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
180 body:             |
181   bb.0.entry:
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
198 body:             |
199   bb.0.entry:
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
217 body:             |
218   bb.0.entry:
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
236 body:             |
237   bb.0.entry:
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
255 body:             |
256   bb.0.entry:
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
273 body:             |
274   bb.0.entry:
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
291 body:             |
292   bb.0.entry:
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
309 body:             |
310   bb.0.entry:
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
327 body:             |
328   bb.0.entry:
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
345 body:             |
346   bb.0.entry:
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
363 body:             |
364   bb.0.entry:
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
381 body:             |
382   bb.0.entry:
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
400 body:             |
401   bb.0.entry:
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
419 body:             |
420   bb.0.entry:
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
438 body:             |
439   bb.0.entry:
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
457 body:             |
458   bb.0.entry:
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
477 body:             |
478   bb.0.entry:
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
496 body:             |
497   bb.0.entry:
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
515 body:             |
516   bb.0.entry:
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
534 body:             |
535   bb.0.entry:
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
553 body:             |
554   bb.0.entry:
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
572 body:             |
573   bb.0.entry:
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
592 body:             |
593   bb.0.entry:
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
612 body:             |
613   bb.0.entry:
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
632 body:             |
633   bb.0.entry:
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
651 body:             |
652   bb.0.entry:
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
671 body:             |
672   bb.0.entry:
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
691 body:             |
692   bb.0.entry:
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
711 body:             |
712   bb.0.entry:
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
731 body:             |
732   bb.0.entry:
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
751 body:             |
752   bb.0.entry:
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
770 body:             |
771   bb.0.entry:
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
789 body:             |
790   bb.0.entry:
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
808 body:             |
809   bb.0.entry:
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
828 body:             |
829   bb.0.entry:
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
847 body:             |
848   bb.0.entry:
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
867 body:             |
868   bb.0.entry:
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
887 body:             |
888   bb.0.entry:
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
907 body:             |
908   bb.0.entry:
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
927 body:             |
928   bb.0.entry:
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
946 body:             |
947   bb.0.entry:
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
965 body:             |
966   bb.0.entry:
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
984 body:             |
985   bb.0.entry:
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)