1# RUN: llc -march=amdgcn -mcpu=gfx900 -verify-machineinstrs -run-pass si-load-store-opt -o - %s | FileCheck -check-prefix=GFX9 %s
2
3# GFX9-LABEL: name: image_sample_l_merged_v1v3
4# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_L_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load 16, align 4, addrspace 4)
5# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0
6# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
7
8name: image_sample_l_merged_v1v3
9body:             |
10  bb.0.entry:
11    %0:sgpr_64 = COPY $sgpr0_sgpr1
12    %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0, 0
13    %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
14    %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0, 0
15    %4:vgpr_32 = COPY %2.sub3
16    %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)
17    %6:vgpr_32 = IMAGE_SAMPLE_L_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
18    %7:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
19...
20---
21# GFX9-LABEL: name: image_sample_l_merged_v1v3_reversed
22# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_L_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load 16, align 4, addrspace 4)
23# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub3
24# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub0_sub1_sub2
25
26name: image_sample_l_merged_v1v3_reversed
27body:             |
28  bb.0.entry:
29    %0:sgpr_64 = COPY $sgpr0_sgpr1
30    %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0, 0
31    %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
32    %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0, 0
33    %4:vgpr_32 = COPY %2.sub3
34    %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)
35    %6:vgpr_32 = IMAGE_SAMPLE_L_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 8, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
36    %7:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 7, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
37...
38---
39
40# GFX9-LABEL: name: image_sample_l_merged_v2v2
41# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_L_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load 16, addrspace 4)
42# GFX9: %{{[0-9]+}}:vreg_64 = COPY %8.sub0_sub1
43# GFX9: %{{[0-9]+}}:vreg_64 = COPY killed %8.sub2_sub3
44
45name: image_sample_l_merged_v2v2
46body:             |
47  bb.0.entry:
48    %0:sgpr_64 = COPY $sgpr0_sgpr1
49    %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0, 0
50    %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
51    %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0, 0
52    %4:vgpr_32 = COPY %2.sub3
53    %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)
54    %6:vreg_64 = IMAGE_SAMPLE_L_V2_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 3, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 8, align 16, addrspace 4)
55    %7:vreg_64 = IMAGE_SAMPLE_L_V2_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 12, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 8, align 16, addrspace 4)
56...
57---
58
59# GFX9-LABEL: name: image_sample_l_merged_v2v2_reversed
60# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_L_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load 16, addrspace 4)
61# GFX9: %{{[0-9]+}}:vreg_64 = COPY %8.sub2_sub3
62# GFX9: %{{[0-9]+}}:vreg_64 = COPY killed %8.sub0_sub1
63
64name: image_sample_l_merged_v2v2_reversed
65body:             |
66  bb.0.entry:
67    %0:sgpr_64 = COPY $sgpr0_sgpr1
68    %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0, 0
69    %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
70    %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0, 0
71    %4:vgpr_32 = COPY %2.sub3
72    %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)
73    %6:vreg_64 = IMAGE_SAMPLE_L_V2_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 12, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 8, align 16, addrspace 4)
74    %7:vreg_64 = IMAGE_SAMPLE_L_V2_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 3, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 8, align 16, addrspace 4)
75...
76---
77
78# GFX9-LABEL: name: image_sample_l_merged_v3v1
79# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_L_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load 16, addrspace 4)
80# GFX9: %{{[0-9]+}}:vreg_96 = COPY %8.sub0_sub1_sub2
81# GFX9: %{{[0-9]+}}:vgpr_32 = COPY killed %8.sub3
82
83name: image_sample_l_merged_v3v1
84body:             |
85  bb.0.entry:
86    %0:sgpr_64 = COPY $sgpr0_sgpr1
87    %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0, 0
88    %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
89    %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0, 0
90    %4:vgpr_32 = COPY %2.sub3
91    %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)
92    %6:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 7, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
93    %7:vgpr_32 = IMAGE_SAMPLE_L_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 8, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
94...
95---
96
97# GFX9-LABEL: name: image_sample_l_merged_v3v1_reversed
98# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_L_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load 16, addrspace 4)
99# GFX9: %{{[0-9]+}}:vreg_96 = COPY %8.sub1_sub2_sub3
100# GFX9: %{{[0-9]+}}:vgpr_32 = COPY killed %8.sub0
101
102name: image_sample_l_merged_v3v1_reversed
103body:             |
104  bb.0.entry:
105    %0:sgpr_64 = COPY $sgpr0_sgpr1
106    %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0, 0
107    %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
108    %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0, 0
109    %4:vgpr_32 = COPY %2.sub3
110    %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)
111    %6:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
112    %7:vgpr_32 = IMAGE_SAMPLE_L_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
113...
114---
115
116# GFX9-LABEL: name: image_sample_l_divided_merged
117# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_L_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load 16, align 4, addrspace 4)
118
119name: image_sample_l_divided_merged
120body:             |
121  bb.0.entry:
122    %0:sgpr_64 = COPY $sgpr0_sgpr1
123    %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0, 0
124    %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
125    %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0, 0
126    %4:vgpr_32 = COPY %2.sub3
127    %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)
128    %6:vgpr_32 = IMAGE_SAMPLE_L_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 8, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
129    %7:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)
130    %8:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)
131    %9:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %7:vreg_128, %3:sgpr_256, %2:sgpr_128, 7, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
132    %10:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)
133    %11:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 7, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
134...
135---
136
137# GFX9-LABEL: name: image_sample_l_divided_not_merged
138# GFX9: %{{[0-9]+}}:vgpr_32 = IMAGE_SAMPLE_L_V1_V4 %5, %3, %2, 8, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
139# GFX9: %{{[0-9]+}}:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %5, %3, %2, 7, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
140
141name: image_sample_l_divided_not_merged
142body:             |
143  bb.0.entry:
144    %0:sgpr_64 = COPY $sgpr0_sgpr1
145    %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0, 0
146    %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
147    %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0, 0
148    %4:vreg_128 = COPY %2
149    %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)
150    %6:vgpr_32 = IMAGE_SAMPLE_L_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 8, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
151    IMAGE_STORE_V4_V4 %4:vreg_128, %5:vreg_128, %3:sgpr_256, 15, -1, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (store 16)
152    %7:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 7, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
153...
154---
155
156# GFX9-LABEL: name: image_sample_l_dmask_overlapped_not_merged
157# GFX9: %{{[0-9]+}}:vgpr_32 = IMAGE_SAMPLE_L_V1_V4 %5, %3, %2, 4, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
158# GFX9: %{{[0-9]+}}:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %5, %3, %2, 7, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
159
160name: image_sample_l_dmask_overlapped_not_merged
161body:             |
162  bb.0.entry:
163    %0:sgpr_64 = COPY $sgpr0_sgpr1
164    %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0, 0
165    %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
166    %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0, 0
167    %4:vgpr_32 = COPY %2.sub3
168    %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)
169    %6:vgpr_32 = IMAGE_SAMPLE_L_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 4, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
170    %7:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 7, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
171...
172---
173
174# GFX9-LABEL: name: image_sample_l_dmask_not_disjoint_not_merged
175# GFX9: %{{[0-9]+}}:vgpr_32 = IMAGE_SAMPLE_L_V1_V4 %5, %3, %2, 4, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
176# GFX9: %{{[0-9]+}}:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %5, %3, %2, 11, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
177
178name: image_sample_l_dmask_not_disjoint_not_merged
179body:             |
180  bb.0.entry:
181    %0:sgpr_64 = COPY $sgpr0_sgpr1
182    %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0, 0
183    %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
184    %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0, 0
185    %4:vgpr_32 = COPY %2.sub3
186    %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)
187    %6:vgpr_32 = IMAGE_SAMPLE_L_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 4, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
188    %7:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 11, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
189...
190---
191
192# GFX9-LABEL: name: image_sample_l_not_merged_0
193# GFX9: %{{[0-9]+}}:vgpr_32 = IMAGE_SAMPLE_L_V1_V4 %5, %3, %2, 8, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
194# GFX9: %{{[0-9]+}}:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %6, %3, %2, 7, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
195
196name: image_sample_l_not_merged_0
197body:             |
198  bb.0.entry:
199    %0:sgpr_64 = COPY $sgpr0_sgpr1
200    %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0, 0
201    %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
202    %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0, 0
203    %4:vgpr_32 = COPY %2.sub3
204    %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)
205    %6:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2, 1, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)
206    %7:vgpr_32 = IMAGE_SAMPLE_L_V1_V4 %5, %3, %2, 8, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
207    %8:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %6, %3, %2, 7, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
208...
209---
210
211# GFX9-LABEL: name: image_sample_l_not_merged_1
212# GFX9: %{{[0-9]+}}:vgpr_32 = IMAGE_SAMPLE_L_V1_V4 %6, %3, %2, 8, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
213# GFX9: %{{[0-9]+}}:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %6, %4, %2, 7, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
214
215name: image_sample_l_not_merged_1
216body:             |
217  bb.0.entry:
218    %0:sgpr_64 = COPY $sgpr0_sgpr1
219    %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0, 0
220    %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
221    %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0, 0
222    %4:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0, 0
223    %5:vgpr_32 = COPY %2.sub3
224    %6:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)
225    %7:vgpr_32 = IMAGE_SAMPLE_L_V1_V4 %6, %3, %2, 8, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
226    %8:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %6, %4, %2, 7, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
227...
228---
229
230# GFX9-LABEL: name: image_sample_l_not_merged_2
231# GFX9: %{{[0-9]+}}:vgpr_32 = IMAGE_SAMPLE_L_V1_V4 %6, %4, %2, 8, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
232# GFX9: %{{[0-9]+}}:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %6, %4, %3, 7, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
233
234name: image_sample_l_not_merged_2
235body:             |
236  bb.0.entry:
237    %0:sgpr_64 = COPY $sgpr0_sgpr1
238    %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0, 0
239    %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
240    %3:sgpr_128 = COPY $sgpr92_sgpr93_sgpr94_sgpr95
241    %4:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0, 0
242    %5:vgpr_32 = COPY %2.sub3
243    %6:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)
244    %7:vgpr_32 = IMAGE_SAMPLE_L_V1_V4 %6, %4, %2, 8, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
245    %8:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %6, %4, %3, 7, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
246...
247---
248
249# GFX9-LABEL: name: image_sample_l_not_merged_3
250# GFX9: %{{[0-9]+}}:vgpr_32 = IMAGE_SAMPLE_L_V1_V4 %5, %3, %2, 8, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
251# GFX9: %{{[0-9]+}}:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %5, %3, %2, 7, 1, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
252
253name: image_sample_l_not_merged_3
254body:             |
255  bb.0.entry:
256    %0:sgpr_64 = COPY $sgpr0_sgpr1
257    %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0, 0
258    %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
259    %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0, 0
260    %4:vgpr_32 = COPY %2.sub3
261    %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)
262    %6:vgpr_32 = IMAGE_SAMPLE_L_V1_V4 %5, %3, %2, 8, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
263    %7:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %5, %3, %2, 7, 1, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
264...
265---
266
267# GFX9-LABEL: name: image_sample_l_not_merged_4
268# GFX9: %{{[0-9]+}}:vgpr_32 = IMAGE_SAMPLE_L_V1_V4 %5, %3, %2, 8, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
269# GFX9: %{{[0-9]+}}:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %5, %3, %2, 7, 0, 1, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
270
271name: image_sample_l_not_merged_4
272body:             |
273  bb.0.entry:
274    %0:sgpr_64 = COPY $sgpr0_sgpr1
275    %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0, 0
276    %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
277    %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0, 0
278    %4:vgpr_32 = COPY %2.sub3
279    %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)
280    %6:vgpr_32 = IMAGE_SAMPLE_L_V1_V4 %5, %3, %2, 8, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
281    %7:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %5, %3, %2, 7, 0, 1, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
282...
283---
284
285# GFX9-LABEL: name: image_sample_l_not_merged_5
286# GFX9: %{{[0-9]+}}:vgpr_32 = IMAGE_SAMPLE_L_V1_V4 %5, %3, %2, 8, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
287# GFX9: %{{[0-9]+}}:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %5, %3, %2, 7, 0, 0, 1, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
288
289name: image_sample_l_not_merged_5
290body:             |
291  bb.0.entry:
292    %0:sgpr_64 = COPY $sgpr0_sgpr1
293    %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0, 0
294    %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
295    %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0, 0
296    %4:vgpr_32 = COPY %2.sub3
297    %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)
298    %6:vgpr_32 = IMAGE_SAMPLE_L_V1_V4 %5, %3, %2, 8, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
299    %7:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %5, %3, %2, 7, 0, 0, 1, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
300...
301---
302
303# GFX9-LABEL: name: image_sample_l_not_merged_6
304# GFX9: %{{[0-9]+}}:vgpr_32 = IMAGE_SAMPLE_L_V1_V4 %5, %3, %2, 8, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
305# GFX9: %{{[0-9]+}}:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %5, %3, %2, 7, 0, 0, 0, 1, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
306
307name: image_sample_l_not_merged_6
308body:             |
309  bb.0.entry:
310    %0:sgpr_64 = COPY $sgpr0_sgpr1
311    %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0, 0
312    %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
313    %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0, 0
314    %4:vgpr_32 = COPY %2.sub3
315    %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)
316    %6:vgpr_32 = IMAGE_SAMPLE_L_V1_V4 %5, %3, %2, 8, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
317    %7:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %5, %3, %2, 7, 0, 0, 0, 1, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
318...
319---
320
321# GFX9-LABEL: name: image_sample_l_not_merged_7
322# GFX9: %{{[0-9]+}}:vreg_64 = IMAGE_SAMPLE_L_V2_V4 %5, %3, %2, 8, 0, 0, 0, 0, 1, 0, -1, 0, implicit $exec :: (dereferenceable load 8, addrspace 4)
323# GFX9: %{{[0-9]+}}:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %5, %3, %2, 7, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
324
325name: image_sample_l_not_merged_7
326body:             |
327  bb.0.entry:
328    %0:sgpr_64 = COPY $sgpr0_sgpr1
329    %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0, 0
330    %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
331    %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0, 0
332    %4:vgpr_32 = COPY %2.sub3
333    %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)
334    %6:vreg_64 = IMAGE_SAMPLE_L_V2_V4 %5, %3, %2, 8, 0, 0, 0, 0, 1, 0, -1, 0, implicit $exec :: (dereferenceable load 8, addrspace 4)
335    %7:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %5, %3, %2, 7, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
336...
337---
338
339# GFX9-LABEL: name: image_sample_l_not_merged_8
340# GFX9: %{{[0-9]+}}:vreg_64 = IMAGE_SAMPLE_L_V2_V4 %5, %3, %2, 8, 0, 0, 0, 0, 0, 1, -1, 0, implicit $exec :: (dereferenceable load 8, addrspace 4)
341# GFX9: %{{[0-9]+}}:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %5, %3, %2, 7, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
342
343name: image_sample_l_not_merged_8
344body:             |
345  bb.0.entry:
346    %0:sgpr_64 = COPY $sgpr0_sgpr1
347    %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0, 0
348    %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
349    %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0, 0
350    %4:vgpr_32 = COPY %2.sub3
351    %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)
352    %6:vreg_64 = IMAGE_SAMPLE_L_V2_V4 %5, %3, %2, 8, 0, 0, 0, 0, 0, 1, -1, 0, implicit $exec :: (dereferenceable load 8, addrspace 4)
353    %7:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %5, %3, %2, 7, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
354...
355---
356
357# GFX9-LABEL: name: image_sample_l_not_merged_9
358# GFX9: %{{[0-9]+}}:vgpr_32 = IMAGE_SAMPLE_L_V1_V4 %5, %3, %2, 8, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
359# GFX9: %{{[0-9]+}}:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %5, %3, %2, 7, 0, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
360
361name: image_sample_l_not_merged_9
362body:             |
363  bb.0.entry:
364    %0:sgpr_64 = COPY $sgpr0_sgpr1
365    %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0, 0
366    %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
367    %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0, 0
368    %4:vgpr_32 = COPY %2.sub3
369    %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)
370    %6:vgpr_32 = IMAGE_SAMPLE_L_V1_V4 %5, %3, %2, 8, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
371    %7:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %5, %3, %2, 7, 0, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
372...
373---
374
375# GFX9-LABEL: name: image_sample_l_not_merged_10
376# GFX9: %{{[0-9]+}}:vgpr_32 = IMAGE_SAMPLE_L_V1_V4 %5, %3, %2, 8, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
377# GFX9: %{{[0-9]+}}:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %5, %3, %2, 7, 0, 0, 0, 0, 0, 0, -1, 1, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
378
379name: image_sample_l_not_merged_10
380body:             |
381  bb.0.entry:
382    %0:sgpr_64 = COPY $sgpr0_sgpr1
383    %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0, 0
384    %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
385    %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0, 0
386    %4:vgpr_32 = COPY %2.sub3
387    %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)
388    %6:vgpr_32 = IMAGE_SAMPLE_L_V1_V4 %5, %3, %2, 8, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
389    %7:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %5, %3, %2, 7, 0, 0, 0, 0, 0, 0, -1, 1, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
390...
391---
392
393
394
395
396# GFX9-LABEL: name: image_sample_merged_v1v3
397# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load 16, align 4, addrspace 4)
398# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0
399# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
400
401name: image_sample_merged_v1v3
402body:             |
403  bb.0.entry:
404    %0:sgpr_64 = COPY $sgpr0_sgpr1
405    %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0, 0
406    %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
407    %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0, 0
408    %4:vgpr_32 = COPY %2.sub3
409    %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)
410    %6:vgpr_32 = IMAGE_SAMPLE_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
411    %7:vreg_96 = IMAGE_SAMPLE_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
412...
413---
414
415
416# GFX9-LABEL: name: image_sample_b_merged_v1v3
417# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_B_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load 16, align 4, addrspace 4)
418# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0
419# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
420
421name: image_sample_b_merged_v1v3
422body:             |
423  bb.0.entry:
424    %0:sgpr_64 = COPY $sgpr0_sgpr1
425    %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0, 0
426    %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
427    %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0, 0
428    %4:vgpr_32 = COPY %2.sub3
429    %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)
430    %6:vgpr_32 = IMAGE_SAMPLE_B_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
431    %7:vreg_96 = IMAGE_SAMPLE_B_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
432...
433---
434
435
436# GFX9-LABEL: name: image_sample_b_cl_merged_v1v3
437# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_B_CL_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load 16, align 4, addrspace 4)
438# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0
439# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
440
441name: image_sample_b_cl_merged_v1v3
442body:             |
443  bb.0.entry:
444    %0:sgpr_64 = COPY $sgpr0_sgpr1
445    %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0, 0
446    %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
447    %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0, 0
448    %4:vgpr_32 = COPY %2.sub3
449    %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)
450    %6:vgpr_32 = IMAGE_SAMPLE_B_CL_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
451    %7:vreg_96 = IMAGE_SAMPLE_B_CL_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
452...
453---
454
455
456# GFX9-LABEL: name: image_sample_b_cl_o_merged_v1v3
457# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_B_CL_O_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load 16, align 4, addrspace 4)
458# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0
459# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
460
461name: image_sample_b_cl_o_merged_v1v3
462body:             |
463  bb.0.entry:
464    %0:sgpr_64 = COPY $sgpr0_sgpr1
465    %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0, 0
466    %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
467    %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0, 0
468    %4:vgpr_32 = COPY %2.sub3
469    %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)
470    %6:vgpr_32 = IMAGE_SAMPLE_B_CL_O_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
471    %7:vreg_96 = IMAGE_SAMPLE_B_CL_O_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
472...
473---
474
475
476# GFX9-LABEL: name: image_sample_b_o_merged_v1v3
477# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_B_O_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load 16, align 4, addrspace 4)
478# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0
479# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
480
481name: image_sample_b_o_merged_v1v3
482body:             |
483  bb.0.entry:
484    %0:sgpr_64 = COPY $sgpr0_sgpr1
485    %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0, 0
486    %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
487    %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0, 0
488    %4:vgpr_32 = COPY %2.sub3
489    %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)
490    %6:vgpr_32 = IMAGE_SAMPLE_B_O_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
491    %7:vreg_96 = IMAGE_SAMPLE_B_O_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
492...
493---
494
495
496# GFX9-LABEL: name: image_sample_c_merged_v1v3
497# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_C_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load 16, align 4, addrspace 4)
498# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0
499# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
500
501name: image_sample_c_merged_v1v3
502body:             |
503  bb.0.entry:
504    %0:sgpr_64 = COPY $sgpr0_sgpr1
505    %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0, 0
506    %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
507    %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0, 0
508    %4:vgpr_32 = COPY %2.sub3
509    %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)
510    %6:vgpr_32 = IMAGE_SAMPLE_C_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
511    %7:vreg_96 = IMAGE_SAMPLE_C_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
512...
513---
514
515
516# GFX9-LABEL: name: image_sample_cd_merged_v1v3
517# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_CD_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load 16, align 4, addrspace 4)
518# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0
519# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
520
521name: image_sample_cd_merged_v1v3
522body:             |
523  bb.0.entry:
524    %0:sgpr_64 = COPY $sgpr0_sgpr1
525    %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0, 0
526    %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
527    %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0, 0
528    %4:vgpr_32 = COPY %2.sub3
529    %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)
530    %6:vgpr_32 = IMAGE_SAMPLE_CD_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
531    %7:vreg_96 = IMAGE_SAMPLE_CD_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
532...
533---
534
535
536# GFX9-LABEL: name: image_sample_cd_cl_merged_v1v3
537# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_CD_CL_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load 16, align 4, addrspace 4)
538# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0
539# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
540
541name: image_sample_cd_cl_merged_v1v3
542body:             |
543  bb.0.entry:
544    %0:sgpr_64 = COPY $sgpr0_sgpr1
545    %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0, 0
546    %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
547    %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0, 0
548    %4:vgpr_32 = COPY %2.sub3
549    %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)
550    %6:vgpr_32 = IMAGE_SAMPLE_CD_CL_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
551    %7:vreg_96 = IMAGE_SAMPLE_CD_CL_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
552...
553---
554
555
556# GFX9-LABEL: name: image_sample_cd_cl_o_merged_v1v3
557# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_CD_CL_O_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load 16, align 4, addrspace 4)
558# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0
559# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
560
561name: image_sample_cd_cl_o_merged_v1v3
562body:             |
563  bb.0.entry:
564    %0:sgpr_64 = COPY $sgpr0_sgpr1
565    %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0, 0
566    %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
567    %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0, 0
568    %4:vgpr_32 = COPY %2.sub3
569    %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)
570    %6:vgpr_32 = IMAGE_SAMPLE_CD_CL_O_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
571    %7:vreg_96 = IMAGE_SAMPLE_CD_CL_O_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
572...
573---
574
575
576# GFX9-LABEL: name: image_sample_cd_o_merged_v1v3
577# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_CD_O_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load 16, align 4, addrspace 4)
578# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0
579# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
580
581name: image_sample_cd_o_merged_v1v3
582body:             |
583  bb.0.entry:
584    %0:sgpr_64 = COPY $sgpr0_sgpr1
585    %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0, 0
586    %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
587    %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0, 0
588    %4:vgpr_32 = COPY %2.sub3
589    %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)
590    %6:vgpr_32 = IMAGE_SAMPLE_CD_O_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
591    %7:vreg_96 = IMAGE_SAMPLE_CD_O_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
592...
593---
594
595
596# GFX9-LABEL: name: image_sample_cl_merged_v1v3
597# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_CL_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load 16, align 4, addrspace 4)
598# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0
599# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
600
601name: image_sample_cl_merged_v1v3
602body:             |
603  bb.0.entry:
604    %0:sgpr_64 = COPY $sgpr0_sgpr1
605    %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0, 0
606    %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
607    %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0, 0
608    %4:vgpr_32 = COPY %2.sub3
609    %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)
610    %6:vgpr_32 = IMAGE_SAMPLE_CL_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
611    %7:vreg_96 = IMAGE_SAMPLE_CL_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
612...
613---
614
615
616# GFX9-LABEL: name: image_sample_cl_o_merged_v1v3
617# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_CL_O_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load 16, align 4, addrspace 4)
618# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0
619# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
620
621name: image_sample_cl_o_merged_v1v3
622body:             |
623  bb.0.entry:
624    %0:sgpr_64 = COPY $sgpr0_sgpr1
625    %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0, 0
626    %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
627    %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0, 0
628    %4:vgpr_32 = COPY %2.sub3
629    %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)
630    %6:vgpr_32 = IMAGE_SAMPLE_CL_O_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
631    %7:vreg_96 = IMAGE_SAMPLE_CL_O_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
632...
633---
634
635
636# GFX9-LABEL: name: image_sample_c_b_merged_v1v3
637# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_C_B_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load 16, align 4, addrspace 4)
638# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0
639# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
640
641name: image_sample_c_b_merged_v1v3
642body:             |
643  bb.0.entry:
644    %0:sgpr_64 = COPY $sgpr0_sgpr1
645    %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0, 0
646    %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
647    %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0, 0
648    %4:vgpr_32 = COPY %2.sub3
649    %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)
650    %6:vgpr_32 = IMAGE_SAMPLE_C_B_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
651    %7:vreg_96 = IMAGE_SAMPLE_C_B_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
652...
653---
654
655
656# GFX9-LABEL: name: image_sample_c_b_cl_merged_v1v3
657# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_C_B_CL_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load 16, align 4, addrspace 4)
658# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0
659# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
660
661name: image_sample_c_b_cl_merged_v1v3
662body:             |
663  bb.0.entry:
664    %0:sgpr_64 = COPY $sgpr0_sgpr1
665    %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0, 0
666    %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
667    %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0, 0
668    %4:vgpr_32 = COPY %2.sub3
669    %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)
670    %6:vgpr_32 = IMAGE_SAMPLE_C_B_CL_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
671    %7:vreg_96 = IMAGE_SAMPLE_C_B_CL_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
672...
673---
674
675
676# GFX9-LABEL: name: image_sample_c_b_cl_o_merged_v1v3
677# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_C_B_CL_O_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load 16, align 4, addrspace 4)
678# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0
679# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
680
681name: image_sample_c_b_cl_o_merged_v1v3
682body:             |
683  bb.0.entry:
684    %0:sgpr_64 = COPY $sgpr0_sgpr1
685    %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0, 0
686    %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
687    %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0, 0
688    %4:vgpr_32 = COPY %2.sub3
689    %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)
690    %6:vgpr_32 = IMAGE_SAMPLE_C_B_CL_O_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
691    %7:vreg_96 = IMAGE_SAMPLE_C_B_CL_O_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
692...
693---
694
695
696# GFX9-LABEL: name: image_sample_c_b_o_merged_v1v3
697# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_C_B_O_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load 16, align 4, addrspace 4)
698# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0
699# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
700
701name: image_sample_c_b_o_merged_v1v3
702body:             |
703  bb.0.entry:
704    %0:sgpr_64 = COPY $sgpr0_sgpr1
705    %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0, 0
706    %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
707    %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0, 0
708    %4:vgpr_32 = COPY %2.sub3
709    %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)
710    %6:vgpr_32 = IMAGE_SAMPLE_C_B_O_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
711    %7:vreg_96 = IMAGE_SAMPLE_C_B_O_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
712...
713---
714
715
716# GFX9-LABEL: name: image_sample_c_cd_merged_v1v3
717# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_C_CD_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load 16, align 4, addrspace 4)
718# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0
719# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
720
721name: image_sample_c_cd_merged_v1v3
722body:             |
723  bb.0.entry:
724    %0:sgpr_64 = COPY $sgpr0_sgpr1
725    %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0, 0
726    %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
727    %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0, 0
728    %4:vgpr_32 = COPY %2.sub3
729    %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)
730    %6:vgpr_32 = IMAGE_SAMPLE_C_CD_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
731    %7:vreg_96 = IMAGE_SAMPLE_C_CD_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
732...
733---
734
735
736# GFX9-LABEL: name: image_sample_c_cd_cl_merged_v1v3
737# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_C_CD_CL_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load 16, align 4, addrspace 4)
738# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0
739# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
740
741name: image_sample_c_cd_cl_merged_v1v3
742body:             |
743  bb.0.entry:
744    %0:sgpr_64 = COPY $sgpr0_sgpr1
745    %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0, 0
746    %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
747    %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0, 0
748    %4:vgpr_32 = COPY %2.sub3
749    %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)
750    %6:vgpr_32 = IMAGE_SAMPLE_C_CD_CL_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
751    %7:vreg_96 = IMAGE_SAMPLE_C_CD_CL_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
752...
753---
754
755
756# GFX9-LABEL: name: image_sample_c_cd_cl_o_merged_v1v3
757# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_C_CD_CL_O_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load 16, align 4, addrspace 4)
758# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0
759# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
760
761name: image_sample_c_cd_cl_o_merged_v1v3
762body:             |
763  bb.0.entry:
764    %0:sgpr_64 = COPY $sgpr0_sgpr1
765    %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0, 0
766    %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
767    %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0, 0
768    %4:vgpr_32 = COPY %2.sub3
769    %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)
770    %6:vgpr_32 = IMAGE_SAMPLE_C_CD_CL_O_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
771    %7:vreg_96 = IMAGE_SAMPLE_C_CD_CL_O_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
772...
773---
774
775
776# GFX9-LABEL: name: image_sample_c_cd_o_merged_v1v3
777# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_C_CD_O_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load 16, align 4, addrspace 4)
778# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0
779# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
780
781name: image_sample_c_cd_o_merged_v1v3
782body:             |
783  bb.0.entry:
784    %0:sgpr_64 = COPY $sgpr0_sgpr1
785    %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0, 0
786    %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
787    %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0, 0
788    %4:vgpr_32 = COPY %2.sub3
789    %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)
790    %6:vgpr_32 = IMAGE_SAMPLE_C_CD_O_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
791    %7:vreg_96 = IMAGE_SAMPLE_C_CD_O_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
792...
793---
794
795
796# GFX9-LABEL: name: image_sample_c_cl_merged_v1v3
797# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_C_CL_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load 16, align 4, addrspace 4)
798# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0
799# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
800
801name: image_sample_c_cl_merged_v1v3
802body:             |
803  bb.0.entry:
804    %0:sgpr_64 = COPY $sgpr0_sgpr1
805    %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0, 0
806    %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
807    %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0, 0
808    %4:vgpr_32 = COPY %2.sub3
809    %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)
810    %6:vgpr_32 = IMAGE_SAMPLE_C_CL_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
811    %7:vreg_96 = IMAGE_SAMPLE_C_CL_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
812...
813---
814
815
816# GFX9-LABEL: name: image_sample_c_cl_o_merged_v1v3
817# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_C_CL_O_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load 16, align 4, addrspace 4)
818# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0
819# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
820
821name: image_sample_c_cl_o_merged_v1v3
822body:             |
823  bb.0.entry:
824    %0:sgpr_64 = COPY $sgpr0_sgpr1
825    %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0, 0
826    %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
827    %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0, 0
828    %4:vgpr_32 = COPY %2.sub3
829    %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)
830    %6:vgpr_32 = IMAGE_SAMPLE_C_CL_O_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
831    %7:vreg_96 = IMAGE_SAMPLE_C_CL_O_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
832...
833---
834
835
836# GFX9-LABEL: name: image_sample_c_d_merged_v1v3
837# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_C_D_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load 16, align 4, addrspace 4)
838# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0
839# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
840
841name: image_sample_c_d_merged_v1v3
842body:             |
843  bb.0.entry:
844    %0:sgpr_64 = COPY $sgpr0_sgpr1
845    %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0, 0
846    %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
847    %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0, 0
848    %4:vgpr_32 = COPY %2.sub3
849    %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)
850    %6:vgpr_32 = IMAGE_SAMPLE_C_D_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
851    %7:vreg_96 = IMAGE_SAMPLE_C_D_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
852...
853---
854
855
856# GFX9-LABEL: name: image_sample_c_d_cl_merged_v1v3
857# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_C_D_CL_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load 16, align 4, addrspace 4)
858# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0
859# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
860
861name: image_sample_c_d_cl_merged_v1v3
862body:             |
863  bb.0.entry:
864    %0:sgpr_64 = COPY $sgpr0_sgpr1
865    %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0, 0
866    %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
867    %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0, 0
868    %4:vgpr_32 = COPY %2.sub3
869    %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)
870    %6:vgpr_32 = IMAGE_SAMPLE_C_D_CL_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
871    %7:vreg_96 = IMAGE_SAMPLE_C_D_CL_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
872...
873---
874
875
876# GFX9-LABEL: name: image_sample_c_d_cl_o_merged_v1v3
877# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_C_D_CL_O_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load 16, align 4, addrspace 4)
878# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0
879# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
880
881name: image_sample_c_d_cl_o_merged_v1v3
882body:             |
883  bb.0.entry:
884    %0:sgpr_64 = COPY $sgpr0_sgpr1
885    %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0, 0
886    %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
887    %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0, 0
888    %4:vgpr_32 = COPY %2.sub3
889    %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)
890    %6:vgpr_32 = IMAGE_SAMPLE_C_D_CL_O_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
891    %7:vreg_96 = IMAGE_SAMPLE_C_D_CL_O_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
892...
893---
894
895
896# GFX9-LABEL: name: image_sample_c_d_o_merged_v1v3
897# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_C_D_O_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load 16, align 4, addrspace 4)
898# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0
899# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
900
901name: image_sample_c_d_o_merged_v1v3
902body:             |
903  bb.0.entry:
904    %0:sgpr_64 = COPY $sgpr0_sgpr1
905    %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0, 0
906    %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
907    %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0, 0
908    %4:vgpr_32 = COPY %2.sub3
909    %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)
910    %6:vgpr_32 = IMAGE_SAMPLE_C_D_O_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
911    %7:vreg_96 = IMAGE_SAMPLE_C_D_O_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
912...
913---
914
915
916# GFX9-LABEL: name: image_sample_c_l_merged_v1v3
917# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_C_L_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load 16, align 4, addrspace 4)
918# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0
919# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
920
921name: image_sample_c_l_merged_v1v3
922body:             |
923  bb.0.entry:
924    %0:sgpr_64 = COPY $sgpr0_sgpr1
925    %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0, 0
926    %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
927    %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0, 0
928    %4:vgpr_32 = COPY %2.sub3
929    %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)
930    %6:vgpr_32 = IMAGE_SAMPLE_C_L_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
931    %7:vreg_96 = IMAGE_SAMPLE_C_L_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
932...
933---
934
935
936# GFX9-LABEL: name: image_sample_c_lz_merged_v1v3
937# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_C_LZ_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load 16, align 4, addrspace 4)
938# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0
939# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
940
941name: image_sample_c_lz_merged_v1v3
942body:             |
943  bb.0.entry:
944    %0:sgpr_64 = COPY $sgpr0_sgpr1
945    %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0, 0
946    %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
947    %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0, 0
948    %4:vgpr_32 = COPY %2.sub3
949    %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)
950    %6:vgpr_32 = IMAGE_SAMPLE_C_LZ_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
951    %7:vreg_96 = IMAGE_SAMPLE_C_LZ_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
952...
953---
954
955
956# GFX9-LABEL: name: image_sample_c_lz_o_merged_v1v3
957# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_C_LZ_O_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load 16, align 4, addrspace 4)
958# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0
959# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
960
961name: image_sample_c_lz_o_merged_v1v3
962body:             |
963  bb.0.entry:
964    %0:sgpr_64 = COPY $sgpr0_sgpr1
965    %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0, 0
966    %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
967    %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0, 0
968    %4:vgpr_32 = COPY %2.sub3
969    %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)
970    %6:vgpr_32 = IMAGE_SAMPLE_C_LZ_O_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
971    %7:vreg_96 = IMAGE_SAMPLE_C_LZ_O_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
972...
973---
974
975
976# GFX9-LABEL: name: image_sample_c_l_o_merged_v1v3
977# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_C_L_O_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load 16, align 4, addrspace 4)
978# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0
979# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
980
981name: image_sample_c_l_o_merged_v1v3
982body:             |
983  bb.0.entry:
984    %0:sgpr_64 = COPY $sgpr0_sgpr1
985    %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0, 0
986    %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
987    %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0, 0
988    %4:vgpr_32 = COPY %2.sub3
989    %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)
990    %6:vgpr_32 = IMAGE_SAMPLE_C_L_O_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
991    %7:vreg_96 = IMAGE_SAMPLE_C_L_O_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
992...
993---
994
995
996# GFX9-LABEL: name: image_sample_c_o_merged_v1v3
997# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_C_O_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load 16, align 4, addrspace 4)
998# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0
999# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
1000
1001name: image_sample_c_o_merged_v1v3
1002body:             |
1003  bb.0.entry:
1004    %0:sgpr_64 = COPY $sgpr0_sgpr1
1005    %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0, 0
1006    %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
1007    %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0, 0
1008    %4:vgpr_32 = COPY %2.sub3
1009    %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)
1010    %6:vgpr_32 = IMAGE_SAMPLE_C_O_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
1011    %7:vreg_96 = IMAGE_SAMPLE_C_O_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
1012...
1013---
1014
1015
1016# GFX9-LABEL: name: image_sample_d_merged_v1v3
1017# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_D_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load 16, align 4, addrspace 4)
1018# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0
1019# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
1020
1021name: image_sample_d_merged_v1v3
1022body:             |
1023  bb.0.entry:
1024    %0:sgpr_64 = COPY $sgpr0_sgpr1
1025    %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0, 0
1026    %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
1027    %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0, 0
1028    %4:vgpr_32 = COPY %2.sub3
1029    %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)
1030    %6:vgpr_32 = IMAGE_SAMPLE_D_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
1031    %7:vreg_96 = IMAGE_SAMPLE_D_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
1032...
1033---
1034
1035
1036# GFX9-LABEL: name: image_sample_d_cl_merged_v1v3
1037# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_D_CL_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load 16, align 4, addrspace 4)
1038# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0
1039# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
1040
1041name: image_sample_d_cl_merged_v1v3
1042body:             |
1043  bb.0.entry:
1044    %0:sgpr_64 = COPY $sgpr0_sgpr1
1045    %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0, 0
1046    %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
1047    %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0, 0
1048    %4:vgpr_32 = COPY %2.sub3
1049    %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)
1050    %6:vgpr_32 = IMAGE_SAMPLE_D_CL_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
1051    %7:vreg_96 = IMAGE_SAMPLE_D_CL_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
1052...
1053---
1054
1055
1056# GFX9-LABEL: name: image_sample_d_cl_o_merged_v1v3
1057# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_D_CL_O_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load 16, align 4, addrspace 4)
1058# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0
1059# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
1060
1061name: image_sample_d_cl_o_merged_v1v3
1062body:             |
1063  bb.0.entry:
1064    %0:sgpr_64 = COPY $sgpr0_sgpr1
1065    %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0, 0
1066    %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
1067    %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0, 0
1068    %4:vgpr_32 = COPY %2.sub3
1069    %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)
1070    %6:vgpr_32 = IMAGE_SAMPLE_D_CL_O_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
1071    %7:vreg_96 = IMAGE_SAMPLE_D_CL_O_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
1072...
1073---
1074
1075
1076# GFX9-LABEL: name: image_sample_d_o_merged_v1v3
1077# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_D_O_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load 16, align 4, addrspace 4)
1078# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0
1079# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
1080
1081name: image_sample_d_o_merged_v1v3
1082body:             |
1083  bb.0.entry:
1084    %0:sgpr_64 = COPY $sgpr0_sgpr1
1085    %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0, 0
1086    %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
1087    %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0, 0
1088    %4:vgpr_32 = COPY %2.sub3
1089    %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)
1090    %6:vgpr_32 = IMAGE_SAMPLE_D_O_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
1091    %7:vreg_96 = IMAGE_SAMPLE_D_O_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
1092...
1093---
1094
1095
1096# GFX9-LABEL: name: image_sample_lz_merged_v1v3
1097# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_LZ_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load 16, align 4, addrspace 4)
1098# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0
1099# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
1100
1101name: image_sample_lz_merged_v1v3
1102body:             |
1103  bb.0.entry:
1104    %0:sgpr_64 = COPY $sgpr0_sgpr1
1105    %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0, 0
1106    %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
1107    %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0, 0
1108    %4:vgpr_32 = COPY %2.sub3
1109    %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)
1110    %6:vgpr_32 = IMAGE_SAMPLE_LZ_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
1111    %7:vreg_96 = IMAGE_SAMPLE_LZ_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
1112...
1113---
1114
1115
1116# GFX9-LABEL: name: image_sample_lz_o_merged_v1v3
1117# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_LZ_O_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load 16, align 4, addrspace 4)
1118# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0
1119# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
1120
1121name: image_sample_lz_o_merged_v1v3
1122body:             |
1123  bb.0.entry:
1124    %0:sgpr_64 = COPY $sgpr0_sgpr1
1125    %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0, 0
1126    %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
1127    %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0, 0
1128    %4:vgpr_32 = COPY %2.sub3
1129    %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)
1130    %6:vgpr_32 = IMAGE_SAMPLE_LZ_O_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
1131    %7:vreg_96 = IMAGE_SAMPLE_LZ_O_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
1132...
1133---
1134
1135
1136# GFX9-LABEL: name: image_sample_l_o_merged_v1v3
1137# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_L_O_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load 16, align 4, addrspace 4)
1138# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0
1139# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
1140
1141name: image_sample_l_o_merged_v1v3
1142body:             |
1143  bb.0.entry:
1144    %0:sgpr_64 = COPY $sgpr0_sgpr1
1145    %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0, 0
1146    %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
1147    %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0, 0
1148    %4:vgpr_32 = COPY %2.sub3
1149    %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)
1150    %6:vgpr_32 = IMAGE_SAMPLE_L_O_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
1151    %7:vreg_96 = IMAGE_SAMPLE_L_O_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
1152...
1153---
1154
1155
1156# GFX9-LABEL: name: image_sample_o_merged_v1v3
1157# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_O_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load 16, align 4, addrspace 4)
1158# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0
1159# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
1160
1161name: image_sample_o_merged_v1v3
1162body:             |
1163  bb.0.entry:
1164    %0:sgpr_64 = COPY $sgpr0_sgpr1
1165    %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0, 0
1166    %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
1167    %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0, 0
1168    %4:vgpr_32 = COPY %2.sub3
1169    %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)
1170    %6:vgpr_32 = IMAGE_SAMPLE_O_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
1171    %7:vreg_96 = IMAGE_SAMPLE_O_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
1172...
1173---
1174