[clang][modules] Don't prevent translation of FW_Private includes when explicitly...
[llvm-project.git] / llvm / test / CodeGen / AMDGPU / merge-image-sample.mir
blob445ec69570a9f98cf66a5ac90c3c8957d4c779ea
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
9 body:             |
10   bb.0.entry:
11     %0:sgpr_64 = COPY $sgpr0_sgpr1
12     %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
13     %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
14     %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
15     %4:vgpr_32 = COPY %2.sub3
16     %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128))
17     %6:vgpr_32 = IMAGE_SAMPLE_L_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4)
18     %7:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4)
19 ...
20 ---
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
28 body:             |
29   bb.0.entry:
30     %0:sgpr_64 = COPY $sgpr0_sgpr1
31     %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
32     %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
33     %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
34     %4:vgpr_32 = COPY %2.sub3
35     %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128))
36     %6:vgpr_32 = IMAGE_SAMPLE_L_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 8, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4)
37     %7:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 7, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4)
38 ...
39 ---
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
47 body:             |
48   bb.0.entry:
49     %0:sgpr_64 = COPY $sgpr0_sgpr1
50     %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
51     %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
52     %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
53     %4:vgpr_32 = COPY %2.sub3
54     %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128))
55     %6:vreg_64 = IMAGE_SAMPLE_L_V2_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 3, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s64), align 16, addrspace 4)
56     %7:vreg_64 = IMAGE_SAMPLE_L_V2_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 12, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s64), align 16, addrspace 4)
57 ...
58 ---
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
66 body:             |
67   bb.0.entry:
68     %0:sgpr_64 = COPY $sgpr0_sgpr1
69     %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
70     %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
71     %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
72     %4:vgpr_32 = COPY %2.sub3
73     %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128))
74     %6:vreg_64 = IMAGE_SAMPLE_L_V2_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 12, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s64), align 16, addrspace 4)
75     %7:vreg_64 = IMAGE_SAMPLE_L_V2_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 3, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s64), align 16, addrspace 4)
76 ...
77 ---
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
85 body:             |
86   bb.0.entry:
87     %0:sgpr_64 = COPY $sgpr0_sgpr1
88     %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
89     %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
90     %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
91     %4:vgpr_32 = COPY %2.sub3
92     %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128))
93     %6:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 7, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4)
94     %7:vgpr_32 = IMAGE_SAMPLE_L_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 8, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4)
95 ...
96 ---
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
104 body:             |
105   bb.0.entry:
106     %0:sgpr_64 = COPY $sgpr0_sgpr1
107     %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
108     %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
109     %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
110     %4:vgpr_32 = COPY %2.sub3
111     %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 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
121 body:             |
122   bb.0.entry:
123     %0:sgpr_64 = COPY $sgpr0_sgpr1
124     %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
125     %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
126     %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
127     %4:vgpr_32 = COPY %2.sub3
128     %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 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
143 body:             |
144   bb.0.entry:
145     %0:sgpr_64 = COPY $sgpr0_sgpr1
146     %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
147     %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
148     %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
149     %4:vreg_128 = COPY %2
150     %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 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
162 body:             |
163   bb.0.entry:
164     %0:sgpr_64 = COPY $sgpr0_sgpr1
165     %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
166     %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
167     %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
168     %4:vgpr_32 = COPY %2.sub3
169     %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 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
180 body:             |
181   bb.0.entry:
182     %0:sgpr_64 = COPY $sgpr0_sgpr1
183     %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
184     %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
185     %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
186     %4:vgpr_32 = COPY %2.sub3
187     %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 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
198 body:             |
199   bb.0.entry:
200     %0:sgpr_64 = COPY $sgpr0_sgpr1
201     %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
202     %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
203     %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
204     %4:vgpr_32 = COPY %2.sub3
205     %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2: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
216 body:             |
217   bb.0.entry:
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
235 body:             |
236   bb.0.entry:
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
254 body:             |
255   bb.0.entry:
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
273 body:             |
274   bb.0.entry:
275     %0:sgpr_64 = COPY $sgpr0_sgpr1
276     %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
277     %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
278     %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
279     %4:vgpr_32 = COPY %2.sub3
280     %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2, 0, 0, 0, 0, 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
291 body:             |
292   bb.0.entry:
293     %0:sgpr_64 = COPY $sgpr0_sgpr1
294     %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
295     %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
296     %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
297     %4:vgpr_32 = COPY %2.sub3
298     %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2, 0, 0, 0, 0, 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
309 body:             |
310   bb.0.entry:
311     %0:sgpr_64 = COPY $sgpr0_sgpr1
312     %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
313     %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
314     %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
315     %4:vgpr_32 = COPY %2.sub3
316     %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2, 0, 0, 0, 0, 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
327 body:             |
328   bb.0.entry:
329     %0:sgpr_64 = COPY $sgpr0_sgpr1
330     %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
331     %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
332     %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
333     %4:vgpr_32 = COPY %2.sub3
334     %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2, 0, 0, 0, 0, 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
345 body:             |
346   bb.0.entry:
347     %0:sgpr_64 = COPY $sgpr0_sgpr1
348     %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
349     %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
350     %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
351     %4:vgpr_32 = COPY %2.sub3
352     %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2, 0, 0, 0, 0, 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
363 body:             |
364   bb.0.entry:
365     %0:sgpr_64 = COPY $sgpr0_sgpr1
366     %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
367     %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
368     %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
369     %4:vgpr_32 = COPY %2.sub3
370     %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2, 0, 0, 0, 0, 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
381 body:             |
382   bb.0.entry:
383     %0:sgpr_64 = COPY $sgpr0_sgpr1
384     %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0
385     %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
386     %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0
387     %4:vgpr_32 = COPY %2.sub3
388     %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2, 0, 0, 0, 0, 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
399 body:             |
400   bb.0.entry:
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
418 body:             |
419   bb.0.entry:
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
437 body:             |
438   bb.0.entry:
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
456 body:             |
457   bb.0.entry:
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
475 body:             |
476   bb.0.entry:
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
494 body:             |
495   bb.0.entry:
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
513 body:             |
514   bb.0.entry:
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
532 body:             |
533   bb.0.entry:
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
551 body:             |
552   bb.0.entry:
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
570 body:             |
571   bb.0.entry:
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
589 body:             |
590   bb.0.entry:
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
608 body:             |
609   bb.0.entry:
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
627 body:             |
628   bb.0.entry:
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
646 body:             |
647   bb.0.entry:
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
665 body:             |
666   bb.0.entry:
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
684 body:             |
685   bb.0.entry:
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
703 body:             |
704   bb.0.entry:
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
722 body:             |
723   bb.0.entry:
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
741 body:             |
742   bb.0.entry:
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
760 body:             |
761   bb.0.entry:
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
779 body:             |
780   bb.0.entry:
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
798 body:             |
799   bb.0.entry:
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
817 body:             |
818   bb.0.entry:
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
836 body:             |
837   bb.0.entry:
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
855 body:             |
856   bb.0.entry:
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
874 body:             |
875   bb.0.entry:
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
893 body:             |
894   bb.0.entry:
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
912 body:             |
913   bb.0.entry:
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
931 body:             |
932   bb.0.entry:
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
950 body:             |
951   bb.0.entry:
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
969 body:             |
970   bb.0.entry:
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
988 body:             |
989   bb.0.entry:
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
1007 body:             |
1008   bb.0.entry:
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
1026 body:             |
1027   bb.0.entry:
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
1045 body:             |
1046   bb.0.entry:
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
1064 body:             |
1065   bb.0.entry:
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
1083 body:             |
1084   bb.0.entry:
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
1102 body:             |
1103   bb.0.entry:
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
1121 body:             |
1122   bb.0.entry:
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
1140 body:             |
1141   bb.0.entry:
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)