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, 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, 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, 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, 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, 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, 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, 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, implicit $exec :: (dereferenceable invariant load (s128))
131 %8:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 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, 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, 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, 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_zero_not_merged
176 # GFX9: %{{[0-9]+}}:vgpr_32 = IMAGE_SAMPLE_L_V1_V4 %5, %3, %2, 0, 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, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4)
179 name: image_sample_l_dmask_zero_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, implicit $exec :: (dereferenceable invariant load (s128))
188 %6:vgpr_32 = IMAGE_SAMPLE_L_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 0, 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, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4)
193 # GFX9-LABEL: name: image_sample_l_dmask_not_disjoint_not_merged
194 # 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)
195 # 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)
197 name: image_sample_l_dmask_not_disjoint_not_merged
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:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128))
206 %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)
207 %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)
211 # GFX9-LABEL: name: image_sample_l_not_merged_0
212 # 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)
213 # 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)
215 name: image_sample_l_not_merged_0
218 %0:sgpr_64 = COPY $sgpr0_sgpr1
219 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
220 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
221 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
222 %4:vgpr_32 = COPY %2.sub3
223 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128))
224 %6:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2, 1, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128))
225 %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)
226 %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)
230 # GFX9-LABEL: name: image_sample_l_not_merged_1
231 # 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)
232 # 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)
234 name: image_sample_l_not_merged_1
237 %0:sgpr_64 = COPY $sgpr0_sgpr1
238 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
239 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
240 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
241 %4:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
242 %5:vgpr_32 = COPY %2.sub3
243 %6:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128))
244 %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)
245 %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)
249 # GFX9-LABEL: name: image_sample_l_not_merged_2
250 # 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)
251 # 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)
253 name: image_sample_l_not_merged_2
256 %0:sgpr_64 = COPY $sgpr0_sgpr1
257 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
258 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
259 %3:sgpr_128 = COPY $sgpr92_sgpr93_sgpr94_sgpr95
260 %4:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
261 %5:vgpr_32 = COPY %2.sub3
262 %6:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128))
263 %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)
264 %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)
268 # GFX9-LABEL: name: image_sample_l_not_merged_3
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, 1, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4)
272 name: image_sample_l_not_merged_3
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, 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, 1, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4)
286 # GFX9-LABEL: name: image_sample_l_not_merged_4
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, 0, 1, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4)
290 name: image_sample_l_not_merged_4
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, 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, 0, 1, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4)
304 # GFX9-LABEL: name: image_sample_l_not_merged_5
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, 1, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4)
308 name: image_sample_l_not_merged_5
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, 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, 1, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4)
322 # GFX9-LABEL: name: image_sample_l_not_merged_6
323 # 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)
324 # 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)
326 name: image_sample_l_not_merged_6
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, implicit $exec :: (dereferenceable invariant load (s128))
335 %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)
336 %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)
340 # GFX9-LABEL: name: image_sample_l_not_merged_7
341 # 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)
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_7
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, implicit $exec :: (dereferenceable invariant load (s128))
353 %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)
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_8
359 # 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)
360 # 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)
362 name: image_sample_l_not_merged_8
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, implicit $exec :: (dereferenceable invariant load (s128))
371 %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)
372 %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)
376 # GFX9-LABEL: name: image_sample_l_not_merged_9
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, 0, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4)
380 name: image_sample_l_not_merged_9
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, 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, 0, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4)
394 # GFX9-LABEL: name: image_sample_l_not_merged_10
395 # 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)
396 # 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)
398 name: image_sample_l_not_merged_10
401 %0:sgpr_64 = COPY $sgpr0_sgpr1
402 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
403 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
404 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
405 %4:vgpr_32 = COPY %2.sub3
406 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128))
407 %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)
408 %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)
412 # GFX9-LABEL: name: image_sample_merged_v1v3
413 # 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)
414 # GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0
415 # GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
417 name: image_sample_merged_v1v3
420 %0:sgpr_64 = COPY $sgpr0_sgpr1
421 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
422 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
423 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
424 %4:vgpr_32 = COPY %2.sub3
425 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128))
426 %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)
427 %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)
431 # GFX9-LABEL: name: image_sample_b_merged_v1v3
432 # 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)
433 # GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0
434 # GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
436 name: image_sample_b_merged_v1v3
439 %0:sgpr_64 = COPY $sgpr0_sgpr1
440 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
441 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
442 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
443 %4:vgpr_32 = COPY %2.sub3
444 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128))
445 %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)
446 %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)
450 # GFX9-LABEL: name: image_sample_b_cl_merged_v1v3
451 # 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)
452 # GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0
453 # GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
455 name: image_sample_b_cl_merged_v1v3
458 %0:sgpr_64 = COPY $sgpr0_sgpr1
459 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
460 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
461 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
462 %4:vgpr_32 = COPY %2.sub3
463 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128))
464 %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)
465 %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)
469 # GFX9-LABEL: name: image_sample_b_cl_o_merged_v1v3
470 # 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)
471 # GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0
472 # GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
474 name: image_sample_b_cl_o_merged_v1v3
477 %0:sgpr_64 = COPY $sgpr0_sgpr1
478 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
479 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
480 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
481 %4:vgpr_32 = COPY %2.sub3
482 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128))
483 %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)
484 %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)
488 # GFX9-LABEL: name: image_sample_b_o_merged_v1v3
489 # 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)
490 # GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0
491 # GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
493 name: image_sample_b_o_merged_v1v3
496 %0:sgpr_64 = COPY $sgpr0_sgpr1
497 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
498 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
499 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
500 %4:vgpr_32 = COPY %2.sub3
501 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128))
502 %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)
503 %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)
507 # GFX9-LABEL: name: image_sample_c_merged_v1v3
508 # 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)
509 # GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0
510 # GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
512 name: image_sample_c_merged_v1v3
515 %0:sgpr_64 = COPY $sgpr0_sgpr1
516 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
517 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
518 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
519 %4:vgpr_32 = COPY %2.sub3
520 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128))
521 %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)
522 %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)
526 # GFX9-LABEL: name: image_sample_cd_merged_v1v3
527 # 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)
528 # GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0
529 # GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
531 name: image_sample_cd_merged_v1v3
534 %0:sgpr_64 = COPY $sgpr0_sgpr1
535 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
536 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
537 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
538 %4:vgpr_32 = COPY %2.sub3
539 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128))
540 %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)
541 %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)
545 # GFX9-LABEL: name: image_sample_cd_cl_merged_v1v3
546 # 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)
547 # GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0
548 # GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
550 name: image_sample_cd_cl_merged_v1v3
553 %0:sgpr_64 = COPY $sgpr0_sgpr1
554 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
555 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
556 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
557 %4:vgpr_32 = COPY %2.sub3
558 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128))
559 %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)
560 %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)
564 # GFX9-LABEL: name: image_sample_cd_cl_o_merged_v1v3
565 # 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)
566 # GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0
567 # GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
569 name: image_sample_cd_cl_o_merged_v1v3
572 %0:sgpr_64 = COPY $sgpr0_sgpr1
573 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
574 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
575 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
576 %4:vgpr_32 = COPY %2.sub3
577 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128))
578 %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)
579 %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)
583 # GFX9-LABEL: name: image_sample_cd_o_merged_v1v3
584 # 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)
585 # GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0
586 # GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
588 name: image_sample_cd_o_merged_v1v3
591 %0:sgpr_64 = COPY $sgpr0_sgpr1
592 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
593 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
594 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
595 %4:vgpr_32 = COPY %2.sub3
596 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128))
597 %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)
598 %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)
602 # GFX9-LABEL: name: image_sample_cl_merged_v1v3
603 # 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)
604 # GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0
605 # GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
607 name: image_sample_cl_merged_v1v3
610 %0:sgpr_64 = COPY $sgpr0_sgpr1
611 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
612 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
613 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
614 %4:vgpr_32 = COPY %2.sub3
615 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128))
616 %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)
617 %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)
621 # GFX9-LABEL: name: image_sample_cl_o_merged_v1v3
622 # 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)
623 # GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0
624 # GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
626 name: image_sample_cl_o_merged_v1v3
629 %0:sgpr_64 = COPY $sgpr0_sgpr1
630 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
631 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
632 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
633 %4:vgpr_32 = COPY %2.sub3
634 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128))
635 %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)
636 %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)
640 # GFX9-LABEL: name: image_sample_c_b_merged_v1v3
641 # 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)
642 # GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0
643 # GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
645 name: image_sample_c_b_merged_v1v3
648 %0:sgpr_64 = COPY $sgpr0_sgpr1
649 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
650 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
651 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
652 %4:vgpr_32 = COPY %2.sub3
653 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128))
654 %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)
655 %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)
659 # GFX9-LABEL: name: image_sample_c_b_cl_merged_v1v3
660 # 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)
661 # GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0
662 # GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
664 name: image_sample_c_b_cl_merged_v1v3
667 %0:sgpr_64 = COPY $sgpr0_sgpr1
668 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
669 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
670 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
671 %4:vgpr_32 = COPY %2.sub3
672 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128))
673 %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)
674 %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)
678 # GFX9-LABEL: name: image_sample_c_b_cl_o_merged_v1v3
679 # 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)
680 # GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0
681 # GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
683 name: image_sample_c_b_cl_o_merged_v1v3
686 %0:sgpr_64 = COPY $sgpr0_sgpr1
687 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
688 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
689 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
690 %4:vgpr_32 = COPY %2.sub3
691 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128))
692 %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)
693 %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)
697 # GFX9-LABEL: name: image_sample_c_b_o_merged_v1v3
698 # 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)
699 # GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0
700 # GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
702 name: image_sample_c_b_o_merged_v1v3
705 %0:sgpr_64 = COPY $sgpr0_sgpr1
706 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
707 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
708 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
709 %4:vgpr_32 = COPY %2.sub3
710 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128))
711 %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)
712 %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)
716 # GFX9-LABEL: name: image_sample_c_cd_merged_v1v3
717 # GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_C_CD_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), align 4, addrspace 4)
718 # GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0
719 # GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
721 name: image_sample_c_cd_merged_v1v3
724 %0:sgpr_64 = COPY $sgpr0_sgpr1
725 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
726 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
727 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
728 %4:vgpr_32 = COPY %2.sub3
729 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128))
730 %6:vgpr_32 = IMAGE_SAMPLE_C_CD_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4)
731 %7:vreg_96 = IMAGE_SAMPLE_C_CD_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4)
735 # GFX9-LABEL: name: image_sample_c_cd_cl_merged_v1v3
736 # 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)
737 # GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0
738 # GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
740 name: image_sample_c_cd_cl_merged_v1v3
743 %0:sgpr_64 = COPY $sgpr0_sgpr1
744 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
745 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
746 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
747 %4:vgpr_32 = COPY %2.sub3
748 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128))
749 %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)
750 %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)
754 # GFX9-LABEL: name: image_sample_c_cd_cl_o_merged_v1v3
755 # 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)
756 # GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0
757 # GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
759 name: image_sample_c_cd_cl_o_merged_v1v3
762 %0:sgpr_64 = COPY $sgpr0_sgpr1
763 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
764 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
765 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
766 %4:vgpr_32 = COPY %2.sub3
767 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128))
768 %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)
769 %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)
773 # GFX9-LABEL: name: image_sample_c_cd_o_merged_v1v3
774 # 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)
775 # GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0
776 # GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
778 name: image_sample_c_cd_o_merged_v1v3
781 %0:sgpr_64 = COPY $sgpr0_sgpr1
782 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
783 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
784 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
785 %4:vgpr_32 = COPY %2.sub3
786 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128))
787 %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)
788 %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)
792 # GFX9-LABEL: name: image_sample_c_cl_merged_v1v3
793 # 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)
794 # GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0
795 # GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
797 name: image_sample_c_cl_merged_v1v3
800 %0:sgpr_64 = COPY $sgpr0_sgpr1
801 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
802 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
803 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
804 %4:vgpr_32 = COPY %2.sub3
805 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128))
806 %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)
807 %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)
811 # GFX9-LABEL: name: image_sample_c_cl_o_merged_v1v3
812 # 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)
813 # GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0
814 # GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
816 name: image_sample_c_cl_o_merged_v1v3
819 %0:sgpr_64 = COPY $sgpr0_sgpr1
820 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
821 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
822 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
823 %4:vgpr_32 = COPY %2.sub3
824 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128))
825 %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)
826 %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)
830 # GFX9-LABEL: name: image_sample_c_d_merged_v1v3
831 # 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)
832 # GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0
833 # GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
835 name: image_sample_c_d_merged_v1v3
838 %0:sgpr_64 = COPY $sgpr0_sgpr1
839 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
840 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
841 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
842 %4:vgpr_32 = COPY %2.sub3
843 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128))
844 %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)
845 %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)
849 # GFX9-LABEL: name: image_sample_c_d_cl_merged_v1v3
850 # 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)
851 # GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0
852 # GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
854 name: image_sample_c_d_cl_merged_v1v3
857 %0:sgpr_64 = COPY $sgpr0_sgpr1
858 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
859 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
860 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
861 %4:vgpr_32 = COPY %2.sub3
862 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128))
863 %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)
864 %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)
868 # GFX9-LABEL: name: image_sample_c_d_cl_o_merged_v1v3
869 # 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)
870 # GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0
871 # GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
873 name: image_sample_c_d_cl_o_merged_v1v3
876 %0:sgpr_64 = COPY $sgpr0_sgpr1
877 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
878 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
879 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
880 %4:vgpr_32 = COPY %2.sub3
881 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128))
882 %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)
883 %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)
887 # GFX9-LABEL: name: image_sample_c_d_o_merged_v1v3
888 # 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)
889 # GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0
890 # GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
892 name: image_sample_c_d_o_merged_v1v3
895 %0:sgpr_64 = COPY $sgpr0_sgpr1
896 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
897 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
898 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
899 %4:vgpr_32 = COPY %2.sub3
900 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128))
901 %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)
902 %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)
906 # GFX9-LABEL: name: image_sample_c_l_merged_v1v3
907 # 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)
908 # GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0
909 # GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
911 name: image_sample_c_l_merged_v1v3
914 %0:sgpr_64 = COPY $sgpr0_sgpr1
915 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
916 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
917 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
918 %4:vgpr_32 = COPY %2.sub3
919 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128))
920 %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)
921 %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)
925 # GFX9-LABEL: name: image_sample_c_lz_merged_v1v3
926 # 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)
927 # GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0
928 # GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
930 name: image_sample_c_lz_merged_v1v3
933 %0:sgpr_64 = COPY $sgpr0_sgpr1
934 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
935 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
936 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
937 %4:vgpr_32 = COPY %2.sub3
938 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128))
939 %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)
940 %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)
944 # GFX9-LABEL: name: image_sample_c_lz_o_merged_v1v3
945 # 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)
946 # GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0
947 # GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
949 name: image_sample_c_lz_o_merged_v1v3
952 %0:sgpr_64 = COPY $sgpr0_sgpr1
953 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
954 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
955 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
956 %4:vgpr_32 = COPY %2.sub3
957 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128))
958 %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)
959 %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)
963 # GFX9-LABEL: name: image_sample_c_l_o_merged_v1v3
964 # 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)
965 # GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0
966 # GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
968 name: image_sample_c_l_o_merged_v1v3
971 %0:sgpr_64 = COPY $sgpr0_sgpr1
972 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
973 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
974 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
975 %4:vgpr_32 = COPY %2.sub3
976 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128))
977 %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)
978 %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)
982 # GFX9-LABEL: name: image_sample_c_o_merged_v1v3
983 # 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)
984 # GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0
985 # GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
987 name: image_sample_c_o_merged_v1v3
990 %0:sgpr_64 = COPY $sgpr0_sgpr1
991 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
992 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
993 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
994 %4:vgpr_32 = COPY %2.sub3
995 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128))
996 %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)
997 %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)
1001 # GFX9-LABEL: name: image_sample_d_merged_v1v3
1002 # 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)
1003 # GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0
1004 # GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
1006 name: image_sample_d_merged_v1v3
1009 %0:sgpr_64 = COPY $sgpr0_sgpr1
1010 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
1011 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
1012 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
1013 %4:vgpr_32 = COPY %2.sub3
1014 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128))
1015 %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)
1016 %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)
1020 # GFX9-LABEL: name: image_sample_d_cl_merged_v1v3
1021 # 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)
1022 # GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0
1023 # GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
1025 name: image_sample_d_cl_merged_v1v3
1028 %0:sgpr_64 = COPY $sgpr0_sgpr1
1029 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
1030 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
1031 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
1032 %4:vgpr_32 = COPY %2.sub3
1033 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128))
1034 %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)
1035 %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)
1039 # GFX9-LABEL: name: image_sample_d_cl_o_merged_v1v3
1040 # 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)
1041 # GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0
1042 # GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
1044 name: image_sample_d_cl_o_merged_v1v3
1047 %0:sgpr_64 = COPY $sgpr0_sgpr1
1048 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
1049 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
1050 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
1051 %4:vgpr_32 = COPY %2.sub3
1052 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128))
1053 %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)
1054 %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)
1058 # GFX9-LABEL: name: image_sample_d_o_merged_v1v3
1059 # 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)
1060 # GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0
1061 # GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
1063 name: image_sample_d_o_merged_v1v3
1066 %0:sgpr_64 = COPY $sgpr0_sgpr1
1067 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
1068 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
1069 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
1070 %4:vgpr_32 = COPY %2.sub3
1071 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128))
1072 %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)
1073 %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)
1077 # GFX9-LABEL: name: image_sample_lz_merged_v1v3
1078 # 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)
1079 # GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0
1080 # GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
1082 name: image_sample_lz_merged_v1v3
1085 %0:sgpr_64 = COPY $sgpr0_sgpr1
1086 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
1087 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
1088 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
1089 %4:vgpr_32 = COPY %2.sub3
1090 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128))
1091 %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)
1092 %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)
1096 # GFX9-LABEL: name: image_sample_lz_o_merged_v1v3
1097 # 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)
1098 # GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0
1099 # GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
1101 name: image_sample_lz_o_merged_v1v3
1104 %0:sgpr_64 = COPY $sgpr0_sgpr1
1105 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
1106 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
1107 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
1108 %4:vgpr_32 = COPY %2.sub3
1109 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128))
1110 %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)
1111 %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)
1115 # GFX9-LABEL: name: image_sample_l_o_merged_v1v3
1116 # 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)
1117 # GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0
1118 # GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
1120 name: image_sample_l_o_merged_v1v3
1123 %0:sgpr_64 = COPY $sgpr0_sgpr1
1124 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
1125 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
1126 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
1127 %4:vgpr_32 = COPY %2.sub3
1128 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128))
1129 %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)
1130 %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)
1134 # GFX9-LABEL: name: image_sample_o_merged_v1v3
1135 # 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)
1136 # GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0
1137 # GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
1139 name: image_sample_o_merged_v1v3
1142 %0:sgpr_64 = COPY $sgpr0_sgpr1
1143 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
1144 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
1145 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
1146 %4:vgpr_32 = COPY %2.sub3
1147 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128))
1148 %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)
1149 %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)