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