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, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load 16, align 4, addrspace 4)
5 # GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0
6 # GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
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, 0
13 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
14 %3:sreg_256 = S_LOAD_DWORDX8_IMM %1, 208, 0, 0
15 %4:vgpr_32 = COPY %2.sub3
16 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)
17 %6:vgpr_32 = IMAGE_SAMPLE_L_V1_V4 %5:vreg_128, %3:sreg_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
18 %7:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %5:vreg_128, %3:sreg_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
21 # GFX9-LABEL: name: image_sample_l_merged_v1v3_reversed
22 # GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_L_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load 16, align 4, addrspace 4)
23 # GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub3
24 # GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub0_sub1_sub2
26 name: image_sample_l_merged_v1v3_reversed
29 %0:sgpr_64 = COPY $sgpr0_sgpr1
30 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0, 0
31 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
32 %3:sreg_256 = S_LOAD_DWORDX8_IMM %1, 208, 0, 0
33 %4:vgpr_32 = COPY %2.sub3
34 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)
35 %6:vgpr_32 = IMAGE_SAMPLE_L_V1_V4 %5:vreg_128, %3:sreg_256, %2:sgpr_128, 8, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
36 %7:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %5:vreg_128, %3:sreg_256, %2:sgpr_128, 7, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
40 # GFX9-LABEL: name: image_sample_l_merged_v2v2
41 # GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_L_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load 16, addrspace 4)
42 # GFX9: %{{[0-9]+}}:vreg_64 = COPY %8.sub0_sub1
43 # GFX9: %{{[0-9]+}}:vreg_64 = COPY killed %8.sub2_sub3
45 name: image_sample_l_merged_v2v2
48 %0:sgpr_64 = COPY $sgpr0_sgpr1
49 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0, 0
50 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
51 %3:sreg_256 = S_LOAD_DWORDX8_IMM %1, 208, 0, 0
52 %4:vgpr_32 = COPY %2.sub3
53 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)
54 %6:vreg_64 = IMAGE_SAMPLE_L_V2_V4 %5:vreg_128, %3:sreg_256, %2:sgpr_128, 3, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 8, align 16, addrspace 4)
55 %7:vreg_64 = IMAGE_SAMPLE_L_V2_V4 %5:vreg_128, %3:sreg_256, %2:sgpr_128, 12, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 8, align 16, addrspace 4)
59 # GFX9-LABEL: name: image_sample_l_merged_v2v2_reversed
60 # GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_L_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load 16, addrspace 4)
61 # GFX9: %{{[0-9]+}}:vreg_64 = COPY %8.sub2_sub3
62 # GFX9: %{{[0-9]+}}:vreg_64 = COPY killed %8.sub0_sub1
64 name: image_sample_l_merged_v2v2_reversed
67 %0:sgpr_64 = COPY $sgpr0_sgpr1
68 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0, 0
69 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
70 %3:sreg_256 = S_LOAD_DWORDX8_IMM %1, 208, 0, 0
71 %4:vgpr_32 = COPY %2.sub3
72 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)
73 %6:vreg_64 = IMAGE_SAMPLE_L_V2_V4 %5:vreg_128, %3:sreg_256, %2:sgpr_128, 12, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 8, align 16, addrspace 4)
74 %7:vreg_64 = IMAGE_SAMPLE_L_V2_V4 %5:vreg_128, %3:sreg_256, %2:sgpr_128, 3, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 8, align 16, addrspace 4)
78 # GFX9-LABEL: name: image_sample_l_merged_v3v1
79 # GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_L_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load 16, addrspace 4)
80 # GFX9: %{{[0-9]+}}:vreg_96 = COPY %8.sub0_sub1_sub2
81 # GFX9: %{{[0-9]+}}:vgpr_32 = COPY killed %8.sub3
83 name: image_sample_l_merged_v3v1
86 %0:sgpr_64 = COPY $sgpr0_sgpr1
87 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0, 0
88 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
89 %3:sreg_256 = S_LOAD_DWORDX8_IMM %1, 208, 0, 0
90 %4:vgpr_32 = COPY %2.sub3
91 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)
92 %6:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %5:vreg_128, %3:sreg_256, %2:sgpr_128, 7, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
93 %7:vgpr_32 = IMAGE_SAMPLE_L_V1_V4 %5:vreg_128, %3:sreg_256, %2:sgpr_128, 8, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
97 # GFX9-LABEL: name: image_sample_l_merged_v3v1_reversed
98 # GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_L_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load 16, addrspace 4)
99 # GFX9: %{{[0-9]+}}:vreg_96 = COPY %8.sub1_sub2_sub3
100 # GFX9: %{{[0-9]+}}:vgpr_32 = COPY killed %8.sub0
102 name: image_sample_l_merged_v3v1_reversed
105 %0:sgpr_64 = COPY $sgpr0_sgpr1
106 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0, 0
107 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
108 %3:sreg_256 = S_LOAD_DWORDX8_IMM %1, 208, 0, 0
109 %4:vgpr_32 = COPY %2.sub3
110 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)
111 %6:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %5:vreg_128, %3:sreg_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
112 %7:vgpr_32 = IMAGE_SAMPLE_L_V1_V4 %5:vreg_128, %3:sreg_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
116 # GFX9-LABEL: name: image_sample_l_divided_merged
117 # GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_L_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load 16, align 4, addrspace 4)
119 name: image_sample_l_divided_merged
122 %0:sgpr_64 = COPY $sgpr0_sgpr1
123 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0, 0
124 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
125 %3:sreg_256 = S_LOAD_DWORDX8_IMM %1, 208, 0, 0
126 %4:vgpr_32 = COPY %2.sub3
127 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)
128 %6:vgpr_32 = IMAGE_SAMPLE_L_V1_V4 %5:vreg_128, %3:sreg_256, %2:sgpr_128, 8, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
129 %7:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)
130 %8:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)
131 %9:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %7:vreg_128, %3:sreg_256, %2:sgpr_128, 7, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
132 %10:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)
133 %11:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %5:vreg_128, %3:sreg_256, %2:sgpr_128, 7, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
137 # GFX9-LABEL: name: image_sample_l_divided_not_merged
138 # GFX9: %{{[0-9]+}}:vgpr_32 = IMAGE_SAMPLE_L_V1_V4 %5, %3, %2, 8, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
139 # GFX9: %{{[0-9]+}}:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %5, %3, %2, 7, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
141 name: image_sample_l_divided_not_merged
144 %0:sgpr_64 = COPY $sgpr0_sgpr1
145 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0, 0
146 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
147 %3:sreg_256 = S_LOAD_DWORDX8_IMM %1, 208, 0, 0
148 %4:vreg_128 = COPY %2
149 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)
150 %6:vgpr_32 = IMAGE_SAMPLE_L_V1_V4 %5:vreg_128, %3:sreg_256, %2:sgpr_128, 8, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
151 IMAGE_STORE_V4_V4 %4:vreg_128, %5:vreg_128, %3:sreg_256, 15, -1, 0, 0, 0, 0, 0, 0, 0, implicit $exec
152 %7:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %5:vreg_128, %3:sreg_256, %2:sgpr_128, 7, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
156 # GFX9-LABEL: name: image_sample_l_dmask_overlapped_not_merged
157 # GFX9: %{{[0-9]+}}:vgpr_32 = IMAGE_SAMPLE_L_V1_V4 %5, %3, %2, 4, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
158 # GFX9: %{{[0-9]+}}:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %5, %3, %2, 7, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
160 name: image_sample_l_dmask_overlapped_not_merged
163 %0:sgpr_64 = COPY $sgpr0_sgpr1
164 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0, 0
165 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
166 %3:sreg_256 = S_LOAD_DWORDX8_IMM %1, 208, 0, 0
167 %4:vgpr_32 = COPY %2.sub3
168 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)
169 %6:vgpr_32 = IMAGE_SAMPLE_L_V1_V4 %5:vreg_128, %3:sreg_256, %2:sgpr_128, 4, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
170 %7:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %5:vreg_128, %3:sreg_256, %2:sgpr_128, 7, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
174 # GFX9-LABEL: name: image_sample_l_dmask_not_disjoint_not_merged
175 # GFX9: %{{[0-9]+}}:vgpr_32 = IMAGE_SAMPLE_L_V1_V4 %5, %3, %2, 4, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
176 # GFX9: %{{[0-9]+}}:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %5, %3, %2, 11, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
178 name: image_sample_l_dmask_not_disjoint_not_merged
181 %0:sgpr_64 = COPY $sgpr0_sgpr1
182 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0, 0
183 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
184 %3:sreg_256 = S_LOAD_DWORDX8_IMM %1, 208, 0, 0
185 %4:vgpr_32 = COPY %2.sub3
186 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)
187 %6:vgpr_32 = IMAGE_SAMPLE_L_V1_V4 %5:vreg_128, %3:sreg_256, %2:sgpr_128, 4, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
188 %7:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %5:vreg_128, %3:sreg_256, %2:sgpr_128, 11, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
192 # GFX9-LABEL: name: image_sample_l_not_merged_0
193 # GFX9: %{{[0-9]+}}:vgpr_32 = IMAGE_SAMPLE_L_V1_V4 %5, %3, %2, 8, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
194 # GFX9: %{{[0-9]+}}:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %6, %3, %2, 7, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
196 name: image_sample_l_not_merged_0
199 %0:sgpr_64 = COPY $sgpr0_sgpr1
200 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0, 0
201 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
202 %3:sreg_256 = S_LOAD_DWORDX8_IMM %1, 208, 0, 0
203 %4:vgpr_32 = COPY %2.sub3
204 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)
205 %6:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2, 1, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)
206 %7:vgpr_32 = IMAGE_SAMPLE_L_V1_V4 %5, %3, %2, 8, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
207 %8:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %6, %3, %2, 7, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
211 # GFX9-LABEL: name: image_sample_l_not_merged_1
212 # GFX9: %{{[0-9]+}}:vgpr_32 = IMAGE_SAMPLE_L_V1_V4 %6, %3, %2, 8, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
213 # GFX9: %{{[0-9]+}}:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %6, %4, %2, 7, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
215 name: image_sample_l_not_merged_1
218 %0:sgpr_64 = COPY $sgpr0_sgpr1
219 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0, 0
220 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
221 %3:sreg_256 = S_LOAD_DWORDX8_IMM %1, 208, 0, 0
222 %4:sreg_256 = S_LOAD_DWORDX8_IMM %1, 208, 0, 0
223 %5:vgpr_32 = COPY %2.sub3
224 %6:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)
225 %7:vgpr_32 = IMAGE_SAMPLE_L_V1_V4 %6, %3, %2, 8, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
226 %8:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %6, %4, %2, 7, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
230 # GFX9-LABEL: name: image_sample_l_not_merged_2
231 # GFX9: %{{[0-9]+}}:vgpr_32 = IMAGE_SAMPLE_L_V1_V4 %6, %4, %2, 8, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
232 # GFX9: %{{[0-9]+}}:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %6, %4, %3, 7, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
234 name: image_sample_l_not_merged_2
237 %0:sgpr_64 = COPY $sgpr0_sgpr1
238 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0, 0
239 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
240 %3:sgpr_128 = COPY $sgpr92_sgpr93_sgpr94_sgpr95
241 %4:sreg_256 = S_LOAD_DWORDX8_IMM %1, 208, 0, 0
242 %5:vgpr_32 = COPY %2.sub3
243 %6:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)
244 %7:vgpr_32 = IMAGE_SAMPLE_L_V1_V4 %6, %4, %2, 8, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
245 %8:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %6, %4, %3, 7, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
249 # GFX9-LABEL: name: image_sample_l_not_merged_3
250 # GFX9: %{{[0-9]+}}:vgpr_32 = IMAGE_SAMPLE_L_V1_V4 %5, %3, %2, 8, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
251 # GFX9: %{{[0-9]+}}:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %5, %3, %2, 7, 1, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
253 name: image_sample_l_not_merged_3
256 %0:sgpr_64 = COPY $sgpr0_sgpr1
257 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0, 0
258 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
259 %3:sreg_256 = S_LOAD_DWORDX8_IMM %1, 208, 0, 0
260 %4:vgpr_32 = COPY %2.sub3
261 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)
262 %6:vgpr_32 = IMAGE_SAMPLE_L_V1_V4 %5, %3, %2, 8, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
263 %7:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %5, %3, %2, 7, 1, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
267 # GFX9-LABEL: name: image_sample_l_not_merged_4
268 # GFX9: %{{[0-9]+}}:vgpr_32 = IMAGE_SAMPLE_L_V1_V4 %5, %3, %2, 8, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
269 # GFX9: %{{[0-9]+}}:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %5, %3, %2, 7, 0, 1, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
271 name: image_sample_l_not_merged_4
274 %0:sgpr_64 = COPY $sgpr0_sgpr1
275 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0, 0
276 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
277 %3:sreg_256 = S_LOAD_DWORDX8_IMM %1, 208, 0, 0
278 %4:vgpr_32 = COPY %2.sub3
279 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)
280 %6:vgpr_32 = IMAGE_SAMPLE_L_V1_V4 %5, %3, %2, 8, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
281 %7:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %5, %3, %2, 7, 0, 1, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
285 # GFX9-LABEL: name: image_sample_l_not_merged_5
286 # GFX9: %{{[0-9]+}}:vgpr_32 = IMAGE_SAMPLE_L_V1_V4 %5, %3, %2, 8, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
287 # GFX9: %{{[0-9]+}}:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %5, %3, %2, 7, 0, 0, 1, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
289 name: image_sample_l_not_merged_5
292 %0:sgpr_64 = COPY $sgpr0_sgpr1
293 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0, 0
294 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
295 %3:sreg_256 = S_LOAD_DWORDX8_IMM %1, 208, 0, 0
296 %4:vgpr_32 = COPY %2.sub3
297 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)
298 %6:vgpr_32 = IMAGE_SAMPLE_L_V1_V4 %5, %3, %2, 8, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
299 %7:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %5, %3, %2, 7, 0, 0, 1, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
303 # GFX9-LABEL: name: image_sample_l_not_merged_6
304 # GFX9: %{{[0-9]+}}:vgpr_32 = IMAGE_SAMPLE_L_V1_V4 %5, %3, %2, 8, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
305 # GFX9: %{{[0-9]+}}:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %5, %3, %2, 7, 0, 0, 0, 1, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
307 name: image_sample_l_not_merged_6
310 %0:sgpr_64 = COPY $sgpr0_sgpr1
311 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0, 0
312 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
313 %3:sreg_256 = S_LOAD_DWORDX8_IMM %1, 208, 0, 0
314 %4:vgpr_32 = COPY %2.sub3
315 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)
316 %6:vgpr_32 = IMAGE_SAMPLE_L_V1_V4 %5, %3, %2, 8, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
317 %7:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %5, %3, %2, 7, 0, 0, 0, 1, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
321 # GFX9-LABEL: name: image_sample_l_not_merged_7
322 # GFX9: %{{[0-9]+}}:vreg_64 = IMAGE_SAMPLE_L_V2_V4 %5, %3, %2, 8, 0, 0, 0, 0, 1, 0, -1, 0, implicit $exec :: (dereferenceable load 8, addrspace 4)
323 # GFX9: %{{[0-9]+}}:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %5, %3, %2, 7, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
325 name: image_sample_l_not_merged_7
328 %0:sgpr_64 = COPY $sgpr0_sgpr1
329 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0, 0
330 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
331 %3:sreg_256 = S_LOAD_DWORDX8_IMM %1, 208, 0, 0
332 %4:vgpr_32 = COPY %2.sub3
333 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)
334 %6:vreg_64 = IMAGE_SAMPLE_L_V2_V4 %5, %3, %2, 8, 0, 0, 0, 0, 1, 0, -1, 0, implicit $exec :: (dereferenceable load 8, addrspace 4)
335 %7:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %5, %3, %2, 7, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
339 # GFX9-LABEL: name: image_sample_l_not_merged_8
340 # GFX9: %{{[0-9]+}}:vreg_64 = IMAGE_SAMPLE_L_V2_V4 %5, %3, %2, 8, 0, 0, 0, 0, 0, 1, -1, 0, implicit $exec :: (dereferenceable load 8, addrspace 4)
341 # GFX9: %{{[0-9]+}}:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %5, %3, %2, 7, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
343 name: image_sample_l_not_merged_8
346 %0:sgpr_64 = COPY $sgpr0_sgpr1
347 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0, 0
348 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
349 %3:sreg_256 = S_LOAD_DWORDX8_IMM %1, 208, 0, 0
350 %4:vgpr_32 = COPY %2.sub3
351 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)
352 %6:vreg_64 = IMAGE_SAMPLE_L_V2_V4 %5, %3, %2, 8, 0, 0, 0, 0, 0, 1, -1, 0, implicit $exec :: (dereferenceable load 8, addrspace 4)
353 %7:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %5, %3, %2, 7, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
357 # GFX9-LABEL: name: image_sample_l_not_merged_9
358 # GFX9: %{{[0-9]+}}:vgpr_32 = IMAGE_SAMPLE_L_V1_V4 %5, %3, %2, 8, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
359 # GFX9: %{{[0-9]+}}:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %5, %3, %2, 7, 0, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
361 name: image_sample_l_not_merged_9
364 %0:sgpr_64 = COPY $sgpr0_sgpr1
365 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0, 0
366 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
367 %3:sreg_256 = S_LOAD_DWORDX8_IMM %1, 208, 0, 0
368 %4:vgpr_32 = COPY %2.sub3
369 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)
370 %6:vgpr_32 = IMAGE_SAMPLE_L_V1_V4 %5, %3, %2, 8, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
371 %7:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %5, %3, %2, 7, 0, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
375 # GFX9-LABEL: name: image_sample_l_not_merged_10
376 # GFX9: %{{[0-9]+}}:vgpr_32 = IMAGE_SAMPLE_L_V1_V4 %5, %3, %2, 8, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
377 # GFX9: %{{[0-9]+}}:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %5, %3, %2, 7, 0, 0, 0, 0, 0, 0, -1, 1, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
379 name: image_sample_l_not_merged_10
382 %0:sgpr_64 = COPY $sgpr0_sgpr1
383 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0, 0
384 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
385 %3:sreg_256 = S_LOAD_DWORDX8_IMM %1, 208, 0, 0
386 %4:vgpr_32 = COPY %2.sub3
387 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)
388 %6:vgpr_32 = IMAGE_SAMPLE_L_V1_V4 %5, %3, %2, 8, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
389 %7:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %5, %3, %2, 7, 0, 0, 0, 0, 0, 0, -1, 1, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
396 # GFX9-LABEL: name: image_sample_merged_v1v3
397 # GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load 16, align 4, addrspace 4)
398 # GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0
399 # GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
401 name: image_sample_merged_v1v3
404 %0:sgpr_64 = COPY $sgpr0_sgpr1
405 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0, 0
406 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
407 %3:sreg_256 = S_LOAD_DWORDX8_IMM %1, 208, 0, 0
408 %4:vgpr_32 = COPY %2.sub3
409 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)
410 %6:vgpr_32 = IMAGE_SAMPLE_V1_V4 %5:vreg_128, %3:sreg_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
411 %7:vreg_96 = IMAGE_SAMPLE_V3_V4 %5:vreg_128, %3:sreg_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
416 # GFX9-LABEL: name: image_sample_b_merged_v1v3
417 # GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_B_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load 16, align 4, addrspace 4)
418 # GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0
419 # GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
421 name: image_sample_b_merged_v1v3
424 %0:sgpr_64 = COPY $sgpr0_sgpr1
425 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0, 0
426 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
427 %3:sreg_256 = S_LOAD_DWORDX8_IMM %1, 208, 0, 0
428 %4:vgpr_32 = COPY %2.sub3
429 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)
430 %6:vgpr_32 = IMAGE_SAMPLE_B_V1_V4 %5:vreg_128, %3:sreg_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
431 %7:vreg_96 = IMAGE_SAMPLE_B_V3_V4 %5:vreg_128, %3:sreg_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
436 # GFX9-LABEL: name: image_sample_b_cl_merged_v1v3
437 # GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_B_CL_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load 16, align 4, addrspace 4)
438 # GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0
439 # GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
441 name: image_sample_b_cl_merged_v1v3
444 %0:sgpr_64 = COPY $sgpr0_sgpr1
445 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0, 0
446 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
447 %3:sreg_256 = S_LOAD_DWORDX8_IMM %1, 208, 0, 0
448 %4:vgpr_32 = COPY %2.sub3
449 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)
450 %6:vgpr_32 = IMAGE_SAMPLE_B_CL_V1_V4 %5:vreg_128, %3:sreg_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
451 %7:vreg_96 = IMAGE_SAMPLE_B_CL_V3_V4 %5:vreg_128, %3:sreg_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
456 # GFX9-LABEL: name: image_sample_b_cl_o_merged_v1v3
457 # GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_B_CL_O_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load 16, align 4, addrspace 4)
458 # GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0
459 # GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
461 name: image_sample_b_cl_o_merged_v1v3
464 %0:sgpr_64 = COPY $sgpr0_sgpr1
465 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0, 0
466 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
467 %3:sreg_256 = S_LOAD_DWORDX8_IMM %1, 208, 0, 0
468 %4:vgpr_32 = COPY %2.sub3
469 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)
470 %6:vgpr_32 = IMAGE_SAMPLE_B_CL_O_V1_V4 %5:vreg_128, %3:sreg_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
471 %7:vreg_96 = IMAGE_SAMPLE_B_CL_O_V3_V4 %5:vreg_128, %3:sreg_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
476 # GFX9-LABEL: name: image_sample_b_o_merged_v1v3
477 # GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_B_O_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load 16, align 4, addrspace 4)
478 # GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0
479 # GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
481 name: image_sample_b_o_merged_v1v3
484 %0:sgpr_64 = COPY $sgpr0_sgpr1
485 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0, 0
486 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
487 %3:sreg_256 = S_LOAD_DWORDX8_IMM %1, 208, 0, 0
488 %4:vgpr_32 = COPY %2.sub3
489 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)
490 %6:vgpr_32 = IMAGE_SAMPLE_B_O_V1_V4 %5:vreg_128, %3:sreg_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
491 %7:vreg_96 = IMAGE_SAMPLE_B_O_V3_V4 %5:vreg_128, %3:sreg_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
496 # GFX9-LABEL: name: image_sample_c_merged_v1v3
497 # GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_C_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load 16, align 4, addrspace 4)
498 # GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0
499 # GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
501 name: image_sample_c_merged_v1v3
504 %0:sgpr_64 = COPY $sgpr0_sgpr1
505 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0, 0
506 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
507 %3:sreg_256 = S_LOAD_DWORDX8_IMM %1, 208, 0, 0
508 %4:vgpr_32 = COPY %2.sub3
509 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)
510 %6:vgpr_32 = IMAGE_SAMPLE_C_V1_V4 %5:vreg_128, %3:sreg_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
511 %7:vreg_96 = IMAGE_SAMPLE_C_V3_V4 %5:vreg_128, %3:sreg_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
516 # GFX9-LABEL: name: image_sample_cd_merged_v1v3
517 # GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_CD_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load 16, align 4, addrspace 4)
518 # GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0
519 # GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
521 name: image_sample_cd_merged_v1v3
524 %0:sgpr_64 = COPY $sgpr0_sgpr1
525 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0, 0
526 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
527 %3:sreg_256 = S_LOAD_DWORDX8_IMM %1, 208, 0, 0
528 %4:vgpr_32 = COPY %2.sub3
529 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)
530 %6:vgpr_32 = IMAGE_SAMPLE_CD_V1_V4 %5:vreg_128, %3:sreg_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
531 %7:vreg_96 = IMAGE_SAMPLE_CD_V3_V4 %5:vreg_128, %3:sreg_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
536 # GFX9-LABEL: name: image_sample_cd_cl_merged_v1v3
537 # GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_CD_CL_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load 16, align 4, addrspace 4)
538 # GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0
539 # GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
541 name: image_sample_cd_cl_merged_v1v3
544 %0:sgpr_64 = COPY $sgpr0_sgpr1
545 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0, 0
546 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
547 %3:sreg_256 = S_LOAD_DWORDX8_IMM %1, 208, 0, 0
548 %4:vgpr_32 = COPY %2.sub3
549 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)
550 %6:vgpr_32 = IMAGE_SAMPLE_CD_CL_V1_V4 %5:vreg_128, %3:sreg_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
551 %7:vreg_96 = IMAGE_SAMPLE_CD_CL_V3_V4 %5:vreg_128, %3:sreg_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
556 # GFX9-LABEL: name: image_sample_cd_cl_o_merged_v1v3
557 # GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_CD_CL_O_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load 16, align 4, addrspace 4)
558 # GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0
559 # GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
561 name: image_sample_cd_cl_o_merged_v1v3
564 %0:sgpr_64 = COPY $sgpr0_sgpr1
565 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0, 0
566 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
567 %3:sreg_256 = S_LOAD_DWORDX8_IMM %1, 208, 0, 0
568 %4:vgpr_32 = COPY %2.sub3
569 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)
570 %6:vgpr_32 = IMAGE_SAMPLE_CD_CL_O_V1_V4 %5:vreg_128, %3:sreg_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
571 %7:vreg_96 = IMAGE_SAMPLE_CD_CL_O_V3_V4 %5:vreg_128, %3:sreg_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
576 # GFX9-LABEL: name: image_sample_cd_o_merged_v1v3
577 # GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_CD_O_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load 16, align 4, addrspace 4)
578 # GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0
579 # GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
581 name: image_sample_cd_o_merged_v1v3
584 %0:sgpr_64 = COPY $sgpr0_sgpr1
585 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0, 0
586 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
587 %3:sreg_256 = S_LOAD_DWORDX8_IMM %1, 208, 0, 0
588 %4:vgpr_32 = COPY %2.sub3
589 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)
590 %6:vgpr_32 = IMAGE_SAMPLE_CD_O_V1_V4 %5:vreg_128, %3:sreg_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
591 %7:vreg_96 = IMAGE_SAMPLE_CD_O_V3_V4 %5:vreg_128, %3:sreg_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
596 # GFX9-LABEL: name: image_sample_cl_merged_v1v3
597 # GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_CL_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load 16, align 4, addrspace 4)
598 # GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0
599 # GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
601 name: image_sample_cl_merged_v1v3
604 %0:sgpr_64 = COPY $sgpr0_sgpr1
605 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0, 0
606 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
607 %3:sreg_256 = S_LOAD_DWORDX8_IMM %1, 208, 0, 0
608 %4:vgpr_32 = COPY %2.sub3
609 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)
610 %6:vgpr_32 = IMAGE_SAMPLE_CL_V1_V4 %5:vreg_128, %3:sreg_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
611 %7:vreg_96 = IMAGE_SAMPLE_CL_V3_V4 %5:vreg_128, %3:sreg_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
616 # GFX9-LABEL: name: image_sample_cl_o_merged_v1v3
617 # GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_CL_O_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load 16, align 4, addrspace 4)
618 # GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0
619 # GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
621 name: image_sample_cl_o_merged_v1v3
624 %0:sgpr_64 = COPY $sgpr0_sgpr1
625 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0, 0
626 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
627 %3:sreg_256 = S_LOAD_DWORDX8_IMM %1, 208, 0, 0
628 %4:vgpr_32 = COPY %2.sub3
629 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)
630 %6:vgpr_32 = IMAGE_SAMPLE_CL_O_V1_V4 %5:vreg_128, %3:sreg_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
631 %7:vreg_96 = IMAGE_SAMPLE_CL_O_V3_V4 %5:vreg_128, %3:sreg_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
636 # GFX9-LABEL: name: image_sample_c_b_merged_v1v3
637 # GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_C_B_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load 16, align 4, addrspace 4)
638 # GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0
639 # GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
641 name: image_sample_c_b_merged_v1v3
644 %0:sgpr_64 = COPY $sgpr0_sgpr1
645 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0, 0
646 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
647 %3:sreg_256 = S_LOAD_DWORDX8_IMM %1, 208, 0, 0
648 %4:vgpr_32 = COPY %2.sub3
649 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)
650 %6:vgpr_32 = IMAGE_SAMPLE_C_B_V1_V4 %5:vreg_128, %3:sreg_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
651 %7:vreg_96 = IMAGE_SAMPLE_C_B_V3_V4 %5:vreg_128, %3:sreg_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
656 # GFX9-LABEL: name: image_sample_c_b_cl_merged_v1v3
657 # GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_C_B_CL_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load 16, align 4, addrspace 4)
658 # GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0
659 # GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
661 name: image_sample_c_b_cl_merged_v1v3
664 %0:sgpr_64 = COPY $sgpr0_sgpr1
665 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0, 0
666 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
667 %3:sreg_256 = S_LOAD_DWORDX8_IMM %1, 208, 0, 0
668 %4:vgpr_32 = COPY %2.sub3
669 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)
670 %6:vgpr_32 = IMAGE_SAMPLE_C_B_CL_V1_V4 %5:vreg_128, %3:sreg_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
671 %7:vreg_96 = IMAGE_SAMPLE_C_B_CL_V3_V4 %5:vreg_128, %3:sreg_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
676 # GFX9-LABEL: name: image_sample_c_b_cl_o_merged_v1v3
677 # GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_C_B_CL_O_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load 16, align 4, addrspace 4)
678 # GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0
679 # GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
681 name: image_sample_c_b_cl_o_merged_v1v3
684 %0:sgpr_64 = COPY $sgpr0_sgpr1
685 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0, 0
686 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
687 %3:sreg_256 = S_LOAD_DWORDX8_IMM %1, 208, 0, 0
688 %4:vgpr_32 = COPY %2.sub3
689 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)
690 %6:vgpr_32 = IMAGE_SAMPLE_C_B_CL_O_V1_V4 %5:vreg_128, %3:sreg_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
691 %7:vreg_96 = IMAGE_SAMPLE_C_B_CL_O_V3_V4 %5:vreg_128, %3:sreg_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
696 # GFX9-LABEL: name: image_sample_c_b_o_merged_v1v3
697 # GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_C_B_O_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load 16, align 4, addrspace 4)
698 # GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0
699 # GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
701 name: image_sample_c_b_o_merged_v1v3
704 %0:sgpr_64 = COPY $sgpr0_sgpr1
705 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0, 0
706 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
707 %3:sreg_256 = S_LOAD_DWORDX8_IMM %1, 208, 0, 0
708 %4:vgpr_32 = COPY %2.sub3
709 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)
710 %6:vgpr_32 = IMAGE_SAMPLE_C_B_O_V1_V4 %5:vreg_128, %3:sreg_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
711 %7:vreg_96 = IMAGE_SAMPLE_C_B_O_V3_V4 %5:vreg_128, %3:sreg_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, 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, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load 16, align 4, addrspace 4)
718 # GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0
719 # GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
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, 0
726 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
727 %3:sreg_256 = S_LOAD_DWORDX8_IMM %1, 208, 0, 0
728 %4:vgpr_32 = COPY %2.sub3
729 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)
730 %6:vgpr_32 = IMAGE_SAMPLE_C_CD_V1_V4 %5:vreg_128, %3:sreg_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
731 %7:vreg_96 = IMAGE_SAMPLE_C_CD_V3_V4 %5:vreg_128, %3:sreg_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
736 # GFX9-LABEL: name: image_sample_c_cd_cl_merged_v1v3
737 # GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_C_CD_CL_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load 16, align 4, addrspace 4)
738 # GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0
739 # GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
741 name: image_sample_c_cd_cl_merged_v1v3
744 %0:sgpr_64 = COPY $sgpr0_sgpr1
745 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0, 0
746 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
747 %3:sreg_256 = S_LOAD_DWORDX8_IMM %1, 208, 0, 0
748 %4:vgpr_32 = COPY %2.sub3
749 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)
750 %6:vgpr_32 = IMAGE_SAMPLE_C_CD_CL_V1_V4 %5:vreg_128, %3:sreg_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
751 %7:vreg_96 = IMAGE_SAMPLE_C_CD_CL_V3_V4 %5:vreg_128, %3:sreg_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
756 # GFX9-LABEL: name: image_sample_c_cd_cl_o_merged_v1v3
757 # GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_C_CD_CL_O_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load 16, align 4, addrspace 4)
758 # GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0
759 # GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
761 name: image_sample_c_cd_cl_o_merged_v1v3
764 %0:sgpr_64 = COPY $sgpr0_sgpr1
765 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0, 0
766 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
767 %3:sreg_256 = S_LOAD_DWORDX8_IMM %1, 208, 0, 0
768 %4:vgpr_32 = COPY %2.sub3
769 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)
770 %6:vgpr_32 = IMAGE_SAMPLE_C_CD_CL_O_V1_V4 %5:vreg_128, %3:sreg_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
771 %7:vreg_96 = IMAGE_SAMPLE_C_CD_CL_O_V3_V4 %5:vreg_128, %3:sreg_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
776 # GFX9-LABEL: name: image_sample_c_cd_o_merged_v1v3
777 # GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_C_CD_O_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load 16, align 4, addrspace 4)
778 # GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0
779 # GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
781 name: image_sample_c_cd_o_merged_v1v3
784 %0:sgpr_64 = COPY $sgpr0_sgpr1
785 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0, 0
786 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
787 %3:sreg_256 = S_LOAD_DWORDX8_IMM %1, 208, 0, 0
788 %4:vgpr_32 = COPY %2.sub3
789 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)
790 %6:vgpr_32 = IMAGE_SAMPLE_C_CD_O_V1_V4 %5:vreg_128, %3:sreg_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
791 %7:vreg_96 = IMAGE_SAMPLE_C_CD_O_V3_V4 %5:vreg_128, %3:sreg_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
796 # GFX9-LABEL: name: image_sample_c_cl_merged_v1v3
797 # GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_C_CL_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load 16, align 4, addrspace 4)
798 # GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0
799 # GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
801 name: image_sample_c_cl_merged_v1v3
804 %0:sgpr_64 = COPY $sgpr0_sgpr1
805 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0, 0
806 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
807 %3:sreg_256 = S_LOAD_DWORDX8_IMM %1, 208, 0, 0
808 %4:vgpr_32 = COPY %2.sub3
809 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)
810 %6:vgpr_32 = IMAGE_SAMPLE_C_CL_V1_V4 %5:vreg_128, %3:sreg_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
811 %7:vreg_96 = IMAGE_SAMPLE_C_CL_V3_V4 %5:vreg_128, %3:sreg_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
816 # GFX9-LABEL: name: image_sample_c_cl_o_merged_v1v3
817 # GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_C_CL_O_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load 16, align 4, addrspace 4)
818 # GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0
819 # GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
821 name: image_sample_c_cl_o_merged_v1v3
824 %0:sgpr_64 = COPY $sgpr0_sgpr1
825 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0, 0
826 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
827 %3:sreg_256 = S_LOAD_DWORDX8_IMM %1, 208, 0, 0
828 %4:vgpr_32 = COPY %2.sub3
829 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)
830 %6:vgpr_32 = IMAGE_SAMPLE_C_CL_O_V1_V4 %5:vreg_128, %3:sreg_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
831 %7:vreg_96 = IMAGE_SAMPLE_C_CL_O_V3_V4 %5:vreg_128, %3:sreg_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
836 # GFX9-LABEL: name: image_sample_c_d_merged_v1v3
837 # GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_C_D_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load 16, align 4, addrspace 4)
838 # GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0
839 # GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
841 name: image_sample_c_d_merged_v1v3
844 %0:sgpr_64 = COPY $sgpr0_sgpr1
845 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0, 0
846 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
847 %3:sreg_256 = S_LOAD_DWORDX8_IMM %1, 208, 0, 0
848 %4:vgpr_32 = COPY %2.sub3
849 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)
850 %6:vgpr_32 = IMAGE_SAMPLE_C_D_V1_V4 %5:vreg_128, %3:sreg_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
851 %7:vreg_96 = IMAGE_SAMPLE_C_D_V3_V4 %5:vreg_128, %3:sreg_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
856 # GFX9-LABEL: name: image_sample_c_d_cl_merged_v1v3
857 # GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_C_D_CL_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load 16, align 4, addrspace 4)
858 # GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0
859 # GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
861 name: image_sample_c_d_cl_merged_v1v3
864 %0:sgpr_64 = COPY $sgpr0_sgpr1
865 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0, 0
866 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
867 %3:sreg_256 = S_LOAD_DWORDX8_IMM %1, 208, 0, 0
868 %4:vgpr_32 = COPY %2.sub3
869 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)
870 %6:vgpr_32 = IMAGE_SAMPLE_C_D_CL_V1_V4 %5:vreg_128, %3:sreg_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
871 %7:vreg_96 = IMAGE_SAMPLE_C_D_CL_V3_V4 %5:vreg_128, %3:sreg_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
876 # GFX9-LABEL: name: image_sample_c_d_cl_o_merged_v1v3
877 # GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_C_D_CL_O_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load 16, align 4, addrspace 4)
878 # GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0
879 # GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
881 name: image_sample_c_d_cl_o_merged_v1v3
884 %0:sgpr_64 = COPY $sgpr0_sgpr1
885 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0, 0
886 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
887 %3:sreg_256 = S_LOAD_DWORDX8_IMM %1, 208, 0, 0
888 %4:vgpr_32 = COPY %2.sub3
889 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)
890 %6:vgpr_32 = IMAGE_SAMPLE_C_D_CL_O_V1_V4 %5:vreg_128, %3:sreg_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
891 %7:vreg_96 = IMAGE_SAMPLE_C_D_CL_O_V3_V4 %5:vreg_128, %3:sreg_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
896 # GFX9-LABEL: name: image_sample_c_d_o_merged_v1v3
897 # GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_C_D_O_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load 16, align 4, addrspace 4)
898 # GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0
899 # GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
901 name: image_sample_c_d_o_merged_v1v3
904 %0:sgpr_64 = COPY $sgpr0_sgpr1
905 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0, 0
906 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
907 %3:sreg_256 = S_LOAD_DWORDX8_IMM %1, 208, 0, 0
908 %4:vgpr_32 = COPY %2.sub3
909 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)
910 %6:vgpr_32 = IMAGE_SAMPLE_C_D_O_V1_V4 %5:vreg_128, %3:sreg_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
911 %7:vreg_96 = IMAGE_SAMPLE_C_D_O_V3_V4 %5:vreg_128, %3:sreg_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
916 # GFX9-LABEL: name: image_sample_c_l_merged_v1v3
917 # GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_C_L_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load 16, align 4, addrspace 4)
918 # GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0
919 # GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
921 name: image_sample_c_l_merged_v1v3
924 %0:sgpr_64 = COPY $sgpr0_sgpr1
925 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0, 0
926 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
927 %3:sreg_256 = S_LOAD_DWORDX8_IMM %1, 208, 0, 0
928 %4:vgpr_32 = COPY %2.sub3
929 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)
930 %6:vgpr_32 = IMAGE_SAMPLE_C_L_V1_V4 %5:vreg_128, %3:sreg_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
931 %7:vreg_96 = IMAGE_SAMPLE_C_L_V3_V4 %5:vreg_128, %3:sreg_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
936 # GFX9-LABEL: name: image_sample_c_lz_merged_v1v3
937 # GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_C_LZ_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load 16, align 4, addrspace 4)
938 # GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0
939 # GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
941 name: image_sample_c_lz_merged_v1v3
944 %0:sgpr_64 = COPY $sgpr0_sgpr1
945 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0, 0
946 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
947 %3:sreg_256 = S_LOAD_DWORDX8_IMM %1, 208, 0, 0
948 %4:vgpr_32 = COPY %2.sub3
949 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)
950 %6:vgpr_32 = IMAGE_SAMPLE_C_LZ_V1_V4 %5:vreg_128, %3:sreg_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
951 %7:vreg_96 = IMAGE_SAMPLE_C_LZ_V3_V4 %5:vreg_128, %3:sreg_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
956 # GFX9-LABEL: name: image_sample_c_lz_o_merged_v1v3
957 # GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_C_LZ_O_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load 16, align 4, addrspace 4)
958 # GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0
959 # GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
961 name: image_sample_c_lz_o_merged_v1v3
964 %0:sgpr_64 = COPY $sgpr0_sgpr1
965 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0, 0
966 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
967 %3:sreg_256 = S_LOAD_DWORDX8_IMM %1, 208, 0, 0
968 %4:vgpr_32 = COPY %2.sub3
969 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)
970 %6:vgpr_32 = IMAGE_SAMPLE_C_LZ_O_V1_V4 %5:vreg_128, %3:sreg_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
971 %7:vreg_96 = IMAGE_SAMPLE_C_LZ_O_V3_V4 %5:vreg_128, %3:sreg_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
976 # GFX9-LABEL: name: image_sample_c_l_o_merged_v1v3
977 # GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_C_L_O_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load 16, align 4, addrspace 4)
978 # GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0
979 # GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
981 name: image_sample_c_l_o_merged_v1v3
984 %0:sgpr_64 = COPY $sgpr0_sgpr1
985 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0, 0
986 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
987 %3:sreg_256 = S_LOAD_DWORDX8_IMM %1, 208, 0, 0
988 %4:vgpr_32 = COPY %2.sub3
989 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)
990 %6:vgpr_32 = IMAGE_SAMPLE_C_L_O_V1_V4 %5:vreg_128, %3:sreg_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
991 %7:vreg_96 = IMAGE_SAMPLE_C_L_O_V3_V4 %5:vreg_128, %3:sreg_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
996 # GFX9-LABEL: name: image_sample_c_o_merged_v1v3
997 # GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_C_O_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load 16, align 4, addrspace 4)
998 # GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0
999 # GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
1001 name: image_sample_c_o_merged_v1v3
1004 %0:sgpr_64 = COPY $sgpr0_sgpr1
1005 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0, 0
1006 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
1007 %3:sreg_256 = S_LOAD_DWORDX8_IMM %1, 208, 0, 0
1008 %4:vgpr_32 = COPY %2.sub3
1009 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)
1010 %6:vgpr_32 = IMAGE_SAMPLE_C_O_V1_V4 %5:vreg_128, %3:sreg_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
1011 %7:vreg_96 = IMAGE_SAMPLE_C_O_V3_V4 %5:vreg_128, %3:sreg_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
1016 # GFX9-LABEL: name: image_sample_d_merged_v1v3
1017 # GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_D_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load 16, align 4, addrspace 4)
1018 # GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0
1019 # GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
1021 name: image_sample_d_merged_v1v3
1024 %0:sgpr_64 = COPY $sgpr0_sgpr1
1025 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0, 0
1026 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
1027 %3:sreg_256 = S_LOAD_DWORDX8_IMM %1, 208, 0, 0
1028 %4:vgpr_32 = COPY %2.sub3
1029 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)
1030 %6:vgpr_32 = IMAGE_SAMPLE_D_V1_V4 %5:vreg_128, %3:sreg_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
1031 %7:vreg_96 = IMAGE_SAMPLE_D_V3_V4 %5:vreg_128, %3:sreg_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
1036 # GFX9-LABEL: name: image_sample_d_cl_merged_v1v3
1037 # GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_D_CL_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load 16, align 4, addrspace 4)
1038 # GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0
1039 # GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
1041 name: image_sample_d_cl_merged_v1v3
1044 %0:sgpr_64 = COPY $sgpr0_sgpr1
1045 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0, 0
1046 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
1047 %3:sreg_256 = S_LOAD_DWORDX8_IMM %1, 208, 0, 0
1048 %4:vgpr_32 = COPY %2.sub3
1049 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)
1050 %6:vgpr_32 = IMAGE_SAMPLE_D_CL_V1_V4 %5:vreg_128, %3:sreg_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
1051 %7:vreg_96 = IMAGE_SAMPLE_D_CL_V3_V4 %5:vreg_128, %3:sreg_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
1056 # GFX9-LABEL: name: image_sample_d_cl_o_merged_v1v3
1057 # GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_D_CL_O_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load 16, align 4, addrspace 4)
1058 # GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0
1059 # GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
1061 name: image_sample_d_cl_o_merged_v1v3
1064 %0:sgpr_64 = COPY $sgpr0_sgpr1
1065 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0, 0
1066 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
1067 %3:sreg_256 = S_LOAD_DWORDX8_IMM %1, 208, 0, 0
1068 %4:vgpr_32 = COPY %2.sub3
1069 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)
1070 %6:vgpr_32 = IMAGE_SAMPLE_D_CL_O_V1_V4 %5:vreg_128, %3:sreg_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
1071 %7:vreg_96 = IMAGE_SAMPLE_D_CL_O_V3_V4 %5:vreg_128, %3:sreg_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
1076 # GFX9-LABEL: name: image_sample_d_o_merged_v1v3
1077 # GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_D_O_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load 16, align 4, addrspace 4)
1078 # GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0
1079 # GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
1081 name: image_sample_d_o_merged_v1v3
1084 %0:sgpr_64 = COPY $sgpr0_sgpr1
1085 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0, 0
1086 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
1087 %3:sreg_256 = S_LOAD_DWORDX8_IMM %1, 208, 0, 0
1088 %4:vgpr_32 = COPY %2.sub3
1089 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)
1090 %6:vgpr_32 = IMAGE_SAMPLE_D_O_V1_V4 %5:vreg_128, %3:sreg_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
1091 %7:vreg_96 = IMAGE_SAMPLE_D_O_V3_V4 %5:vreg_128, %3:sreg_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
1096 # GFX9-LABEL: name: image_sample_lz_merged_v1v3
1097 # GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_LZ_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load 16, align 4, addrspace 4)
1098 # GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0
1099 # GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
1101 name: image_sample_lz_merged_v1v3
1104 %0:sgpr_64 = COPY $sgpr0_sgpr1
1105 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0, 0
1106 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
1107 %3:sreg_256 = S_LOAD_DWORDX8_IMM %1, 208, 0, 0
1108 %4:vgpr_32 = COPY %2.sub3
1109 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)
1110 %6:vgpr_32 = IMAGE_SAMPLE_LZ_V1_V4 %5:vreg_128, %3:sreg_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
1111 %7:vreg_96 = IMAGE_SAMPLE_LZ_V3_V4 %5:vreg_128, %3:sreg_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
1116 # GFX9-LABEL: name: image_sample_lz_o_merged_v1v3
1117 # GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_LZ_O_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load 16, align 4, addrspace 4)
1118 # GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0
1119 # GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
1121 name: image_sample_lz_o_merged_v1v3
1124 %0:sgpr_64 = COPY $sgpr0_sgpr1
1125 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0, 0
1126 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
1127 %3:sreg_256 = S_LOAD_DWORDX8_IMM %1, 208, 0, 0
1128 %4:vgpr_32 = COPY %2.sub3
1129 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)
1130 %6:vgpr_32 = IMAGE_SAMPLE_LZ_O_V1_V4 %5:vreg_128, %3:sreg_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
1131 %7:vreg_96 = IMAGE_SAMPLE_LZ_O_V3_V4 %5:vreg_128, %3:sreg_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
1136 # GFX9-LABEL: name: image_sample_l_o_merged_v1v3
1137 # GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_L_O_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load 16, align 4, addrspace 4)
1138 # GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0
1139 # GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
1141 name: image_sample_l_o_merged_v1v3
1144 %0:sgpr_64 = COPY $sgpr0_sgpr1
1145 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0, 0
1146 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
1147 %3:sreg_256 = S_LOAD_DWORDX8_IMM %1, 208, 0, 0
1148 %4:vgpr_32 = COPY %2.sub3
1149 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)
1150 %6:vgpr_32 = IMAGE_SAMPLE_L_O_V1_V4 %5:vreg_128, %3:sreg_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
1151 %7:vreg_96 = IMAGE_SAMPLE_L_O_V3_V4 %5:vreg_128, %3:sreg_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)
1156 # GFX9-LABEL: name: image_sample_o_merged_v1v3
1157 # GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_O_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load 16, align 4, addrspace 4)
1158 # GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0
1159 # GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3
1161 name: image_sample_o_merged_v1v3
1164 %0:sgpr_64 = COPY $sgpr0_sgpr1
1165 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0, 0
1166 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
1167 %3:sreg_256 = S_LOAD_DWORDX8_IMM %1, 208, 0, 0
1168 %4:vgpr_32 = COPY %2.sub3
1169 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load 16)
1170 %6:vgpr_32 = IMAGE_SAMPLE_O_V1_V4 %5:vreg_128, %3:sreg_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 4, addrspace 4)
1171 %7:vreg_96 = IMAGE_SAMPLE_O_V3_V4 %5:vreg_128, %3:sreg_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load 12, align 16, addrspace 4)