1 # RUN: llc -march=amdgcn -mcpu=gfx900 -verify-machineinstrs -run-pass si-load-store-opt -o - %s | FileCheck -check-prefix=GFX9 %s
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
8 name: image_sample_l_merged_v1v3
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)
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
27 name: image_sample_l_merged_v1v3_reversed
30 %0:sgpr_64 = COPY $sgpr0_sgpr1
31 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
32 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
33 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
34 %4:vgpr_32 = COPY %2.sub3
35 %5: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)
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
46 name: image_sample_l_merged_v2v2
49 %0:sgpr_64 = COPY $sgpr0_sgpr1
50 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
51 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
52 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
53 %4:vgpr_32 = COPY %2.sub3
54 %5: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)
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
65 name: image_sample_l_merged_v2v2_reversed
68 %0:sgpr_64 = COPY $sgpr0_sgpr1
69 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
70 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
71 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
72 %4:vgpr_32 = COPY %2.sub3
73 %5: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)
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
84 name: image_sample_l_merged_v3v1
87 %0:sgpr_64 = COPY $sgpr0_sgpr1
88 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
89 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
90 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
91 %4:vgpr_32 = COPY %2.sub3
92 %5: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)
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
103 name: image_sample_l_merged_v3v1_reversed
106 %0:sgpr_64 = COPY $sgpr0_sgpr1
107 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
108 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
109 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
110 %4:vgpr_32 = COPY %2.sub3
111 %5: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)
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)
120 name: image_sample_l_divided_merged
123 %0:sgpr_64 = COPY $sgpr0_sgpr1
124 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
125 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
126 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
127 %4:vgpr_32 = COPY %2.sub3
128 %5: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)
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)
142 name: image_sample_l_divided_not_merged
145 %0:sgpr_64 = COPY $sgpr0_sgpr1
146 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
147 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
148 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
149 %4:vreg_128 = COPY %2
150 %5: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)
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)
161 name: image_sample_l_dmask_overlapped_not_merged
164 %0:sgpr_64 = COPY $sgpr0_sgpr1
165 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
166 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
167 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
168 %4:vgpr_32 = COPY %2.sub3
169 %5: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)
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)
179 name: image_sample_l_dmask_not_disjoint_not_merged
182 %0:sgpr_64 = COPY $sgpr0_sgpr1
183 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
184 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
185 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
186 %4:vgpr_32 = COPY %2.sub3
187 %5: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)
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)
197 name: image_sample_l_not_merged_0
200 %0:sgpr_64 = COPY $sgpr0_sgpr1
201 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
202 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
203 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
204 %4:vgpr_32 = COPY %2.sub3
205 %5: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)
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)
216 name: image_sample_l_not_merged_1
219 %0:sgpr_64 = COPY $sgpr0_sgpr1
220 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
221 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
222 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
223 %4:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
224 %5:vgpr_32 = COPY %2.sub3
225 %6: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)
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)
235 name: image_sample_l_not_merged_2
238 %0:sgpr_64 = COPY $sgpr0_sgpr1
239 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
240 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
241 %3:sgpr_128 = COPY $sgpr92_sgpr93_sgpr94_sgpr95
242 %4:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
243 %5:vgpr_32 = COPY %2.sub3
244 %6: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)
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)
254 name: image_sample_l_not_merged_3
257 %0:sgpr_64 = COPY $sgpr0_sgpr1
258 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
259 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
260 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
261 %4:vgpr_32 = COPY %2.sub3
262 %5: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)
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)
272 name: image_sample_l_not_merged_4
275 %0:sgpr_64 = COPY $sgpr0_sgpr1
276 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
277 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
278 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
279 %4:vgpr_32 = COPY %2.sub3
280 %5: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)
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)
290 name: image_sample_l_not_merged_5
293 %0:sgpr_64 = COPY $sgpr0_sgpr1
294 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
295 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
296 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
297 %4:vgpr_32 = COPY %2.sub3
298 %5: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)
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)
308 name: image_sample_l_not_merged_6
311 %0:sgpr_64 = COPY $sgpr0_sgpr1
312 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
313 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
314 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
315 %4:vgpr_32 = COPY %2.sub3
316 %5: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)
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)
326 name: image_sample_l_not_merged_7
329 %0:sgpr_64 = COPY $sgpr0_sgpr1
330 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
331 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
332 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
333 %4:vgpr_32 = COPY %2.sub3
334 %5: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)
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)
344 name: image_sample_l_not_merged_8
347 %0:sgpr_64 = COPY $sgpr0_sgpr1
348 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
349 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
350 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
351 %4:vgpr_32 = COPY %2.sub3
352 %5: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)
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)
362 name: image_sample_l_not_merged_9
365 %0:sgpr_64 = COPY $sgpr0_sgpr1
366 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
367 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
368 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
369 %4:vgpr_32 = COPY %2.sub3
370 %5: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)
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)
380 name: image_sample_l_not_merged_10
383 %0:sgpr_64 = COPY $sgpr0_sgpr1
384 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
385 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
386 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
387 %4:vgpr_32 = COPY %2.sub3
388 %5: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)
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
399 name: image_sample_merged_v1v3
402 %0:sgpr_64 = COPY $sgpr0_sgpr1
403 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
404 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
405 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
406 %4:vgpr_32 = COPY %2.sub3
407 %5: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)
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
418 name: image_sample_b_merged_v1v3
421 %0:sgpr_64 = COPY $sgpr0_sgpr1
422 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
423 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
424 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
425 %4:vgpr_32 = COPY %2.sub3
426 %5: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)
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
437 name: image_sample_b_cl_merged_v1v3
440 %0:sgpr_64 = COPY $sgpr0_sgpr1
441 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
442 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
443 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
444 %4:vgpr_32 = COPY %2.sub3
445 %5: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)
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
456 name: image_sample_b_cl_o_merged_v1v3
459 %0:sgpr_64 = COPY $sgpr0_sgpr1
460 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
461 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
462 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
463 %4:vgpr_32 = COPY %2.sub3
464 %5: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)
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
475 name: image_sample_b_o_merged_v1v3
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)
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
494 name: image_sample_c_merged_v1v3
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)
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
513 name: image_sample_cd_merged_v1v3
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)
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
532 name: image_sample_cd_cl_merged_v1v3
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)
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
551 name: image_sample_cd_cl_o_merged_v1v3
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)
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
570 name: image_sample_cd_o_merged_v1v3
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)
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
589 name: image_sample_cl_merged_v1v3
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)
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
608 name: image_sample_cl_o_merged_v1v3
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)
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
627 name: image_sample_c_b_merged_v1v3
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)
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
646 name: image_sample_c_b_cl_merged_v1v3
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)
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
665 name: image_sample_c_b_cl_o_merged_v1v3
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)
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
684 name: image_sample_c_b_o_merged_v1v3
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)
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
703 name: image_sample_c_cd_merged_v1v3
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)
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
722 name: image_sample_c_cd_cl_merged_v1v3
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)
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
741 name: image_sample_c_cd_cl_o_merged_v1v3
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)
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
760 name: image_sample_c_cd_o_merged_v1v3
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)
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
779 name: image_sample_c_cl_merged_v1v3
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)
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
798 name: image_sample_c_cl_o_merged_v1v3
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)
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
817 name: image_sample_c_d_merged_v1v3
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)
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
836 name: image_sample_c_d_cl_merged_v1v3
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)
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
855 name: image_sample_c_d_cl_o_merged_v1v3
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)
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
874 name: image_sample_c_d_o_merged_v1v3
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)
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
893 name: image_sample_c_l_merged_v1v3
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)
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
912 name: image_sample_c_lz_merged_v1v3
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)
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
931 name: image_sample_c_lz_o_merged_v1v3
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)
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
950 name: image_sample_c_l_o_merged_v1v3
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)
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
969 name: image_sample_c_o_merged_v1v3
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)
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
988 name: image_sample_d_merged_v1v3
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)
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
1007 name: image_sample_d_cl_merged_v1v3
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)
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
1026 name: image_sample_d_cl_o_merged_v1v3
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)
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
1045 name: image_sample_d_o_merged_v1v3
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)
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
1064 name: image_sample_lz_merged_v1v3
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)
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
1083 name: image_sample_lz_o_merged_v1v3
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)
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
1102 name: image_sample_l_o_merged_v1v3
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)
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
1121 name: image_sample_o_merged_v1v3
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)