[InstCombine] Signed saturation patterns
[llvm-complete.git] / test / CodeGen / AMDGPU / mai-hazards.mir
blob9f49f9fd5852649619d9aafb5c3d1abfc71946ae
1 # RUN: llc -march=amdgcn -mcpu=gfx908 -verify-machineinstrs -run-pass post-RA-hazard-rec %s -o - | FileCheck -check-prefix=GCN %s
3 # GCN-LABEL: name: valu_write_vgpr_mfma_read
4 # GCN:      V_MOV_B32
5 # GCN:      V_MOV_B32
6 # GCN-NEXT: S_NOP 0
7 # GCN-NEXT: S_NOP 0
8 # GCN-NEXT: V_MFMA
9 name:            valu_write_vgpr_mfma_read
10 body:             |
11   bb.0:
12     $vgpr0 = V_MOV_B32_e32 1, implicit $exec
13     $vgpr1 = V_MOV_B32_e32 1, implicit $exec
14     $agpr0_agpr1_agpr2_agpr3 = V_MFMA_F32_4X4X1F32 killed $vgpr1, killed $vgpr0, killed $agpr0_agpr1_agpr2_agpr3, 0, 0, 0, implicit $exec
15 ...
16 ---
18 # GCN-LABEL: name: valu_write_vgpr_accvgpr_write_read
19 # GCN:      V_MOV_B32
20 # GCN-NEXT: S_NOP 0
21 # GCN-NEXT: S_NOP 0
22 # GCN-NEXT: V_ACCVGPR_WRITE_B32
23 name:            valu_write_vgpr_accvgpr_write_read
24 body:             |
25   bb.0:
26     $vgpr0 = V_MOV_B32_e32 1, implicit $exec
27     $agpr0 = V_ACCVGPR_WRITE_B32 killed $vgpr0, implicit $exec
28 ...
29 ---
31 # GCN-LABEL: name: mfma_write_agpr_mfma_read_same_agpr
32 # GCN:      V_MFMA
33 # GCN-NEXT: V_MFMA
34 name:            mfma_write_agpr_mfma_read_same_agpr
35 body:             |
36   bb.0:
37     $agpr0_agpr1_agpr2_agpr3 = V_MFMA_F32_4X4X1F32 killed $vgpr1, killed $vgpr0, killed $agpr0_agpr1_agpr2_agpr3, 0, 0, 0, implicit $exec
38     $agpr0_agpr1_agpr2_agpr3 = V_MFMA_F32_4X4X1F32 killed $vgpr1, killed $vgpr0, killed $agpr0_agpr1_agpr2_agpr3, 0, 0, 0, implicit $exec
39 ...
40 ---
42 # GCN-LABEL: name: mfma_write_agpr_mfma_read_overlap
43 # GCN:      V_MFMA
44 # GCN-NEXT: S_NOP 0
45 # GCN-NEXT: S_NOP 0
46 # GCN-NEXT: V_MFMA
47 name:            mfma_write_agpr_mfma_read_overlap
48 body:             |
49   bb.0:
50     $agpr1_agpr2_agpr3_agpr4 = V_MFMA_F32_4X4X1F32 killed $vgpr1, killed $vgpr0, killed $agpr0_agpr1_agpr2_agpr3, 0, 0, 0, implicit $exec
51     $agpr0_agpr1_agpr2_agpr3 = V_MFMA_F32_4X4X1F32 killed $vgpr1, killed $vgpr0, killed $agpr0_agpr1_agpr2_agpr3, 0, 0, 0, implicit $exec
52 ...
53 ---
55 # GCN-LABEL: name: mfma_write_agpr_mfma_read_partial
56 # GCN:      V_MFMA
57 # GCN-NEXT: S_NOP 0
58 # GCN-NEXT: S_NOP 0
59 # GCN-NEXT: V_MFMA
60 name:            mfma_write_agpr_mfma_read_partial
61 body:             |
62   bb.0:
63     $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7_agpr8_agpr9_agpr10_agpr11_agpr12_agpr13_agpr14_agpr15 = V_MFMA_F32_16X16X1F32 killed $vgpr1, killed $vgpr0, killed $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7_agpr8_agpr9_agpr10_agpr11_agpr12_agpr13_agpr14_agpr15, 0, 0, 0, implicit $exec
64     $agpr0_agpr1_agpr2_agpr3 = V_MFMA_F32_4X4X1F32 killed $vgpr1, killed $vgpr0, killed $agpr0_agpr1_agpr2_agpr3, 0, 0, 0, implicit $exec
65 ...
66 ---
68 # GCN-LABEL: name: mfma_write_agpr_mfma_srca_read_overlap
69 # GCN:      V_MFMA
70 # GCN-NEXT: S_NOP 0
71 # GCN-NEXT: S_NOP 0
72 # GCN-NEXT: S_NOP 0
73 # GCN-NEXT: S_NOP 0
74 # GCN-NEXT: V_MFMA
75 name:            mfma_write_agpr_mfma_srca_read_overlap
76 body:             |
77   bb.0:
78     $agpr0_agpr1_agpr2_agpr3 = V_MFMA_F32_4X4X1F32 killed $vgpr1, killed $vgpr0, killed $agpr0_agpr1_agpr2_agpr3, 0, 0, 0, implicit $exec
79     $agpr0_agpr1_agpr2_agpr3 = V_MFMA_F32_4X4X1F32 killed $agpr1, killed $vgpr0, killed $agpr0_agpr1_agpr2_agpr3, 0, 0, 0, implicit $exec
80 ...
81 ---
83 # GCN-LABEL: name: mfma_write_agpr_mfma_srcb_read_overlap
84 # GCN:      V_MFMA
85 # GCN-NEXT: S_NOP 0
86 # GCN-NEXT: S_NOP 0
87 # GCN-NEXT: S_NOP 0
88 # GCN-NEXT: S_NOP 0
89 # GCN-NEXT: V_MFMA
90 name:            mfma_write_agpr_mfma_srcb_read_overlap
91 body:             |
92   bb.0:
93     $agpr0_agpr1_agpr2_agpr3 = V_MFMA_F32_4X4X1F32 killed $vgpr1, killed $vgpr0, killed $agpr0_agpr1_agpr2_agpr3, 0, 0, 0, implicit $exec
94     $agpr0_agpr1_agpr2_agpr3 = V_MFMA_F32_4X4X1F32 killed $vgpr1, killed $agpr0, killed $agpr0_agpr1_agpr2_agpr3, 0, 0, 0, implicit $exec
95 ...
96 ---
98 # GCN-LABEL: name: mfma_4x4_write_agpr_accvgpr_read
99 # GCN:      V_MFMA_F32_4X4X1F32
100 # GCN-NEXT: S_NOP 0
101 # GCN-NEXT: S_NOP 0
102 # GCN-NEXT: S_NOP 0
103 # GCN-NEXT: S_NOP 0
104 # GCN-NEXT: V_ACCVGPR_READ_B32
105 name:            mfma_4x4_write_agpr_accvgpr_read
106 body:             |
107   bb.0:
108     $agpr0_agpr1_agpr2_agpr3 = V_MFMA_F32_4X4X1F32 killed $vgpr1, killed $vgpr0, killed $agpr0_agpr1_agpr2_agpr3, 0, 0, 0, implicit $exec
109     $vgpr0 = V_ACCVGPR_READ_B32 killed $agpr0, implicit $exec
113 # GCN-LABEL: name: mfma_16x16_write_agpr_accvgpr_read
114 # GCN:      V_MFMA_F32_16X16X1F32
115 # GCN-NEXT: S_NOP 0
116 # GCN-NEXT: S_NOP 0
117 # GCN-NEXT: S_NOP 0
118 # GCN-NEXT: S_NOP 0
119 # GCN-NEXT: S_NOP 0
120 # GCN-NEXT: S_NOP 0
121 # GCN-NEXT: S_NOP 0
122 # GCN-NEXT: S_NOP 0
123 # GCN-NEXT: S_NOP 0
124 # GCN-NEXT: S_NOP 0
125 # GCN-NEXT: V_ACCVGPR_READ_B32
126 name:            mfma_16x16_write_agpr_accvgpr_read
127 body:             |
128   bb.0:
129     $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7_agpr8_agpr9_agpr10_agpr11_agpr12_agpr13_agpr14_agpr15 = V_MFMA_F32_16X16X1F32 killed $vgpr1, killed $vgpr0, killed $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7_agpr8_agpr9_agpr10_agpr11_agpr12_agpr13_agpr14_agpr15, 0, 0, 0, implicit $exec
130     $vgpr0 = V_ACCVGPR_READ_B32 killed $agpr0, implicit $exec
134 # GCN-LABEL: name: mfma_32x32_write_agpr_accvgpr_read
135 # GCN:      V_MFMA_F32_32X32X2F32
136 # GCN-NEXT: S_NOP 0
137 # GCN-NEXT: S_NOP 0
138 # GCN-NEXT: S_NOP 0
139 # GCN-NEXT: S_NOP 0
140 # GCN-NEXT: S_NOP 0
141 # GCN-NEXT: S_NOP 0
142 # GCN-NEXT: S_NOP 0
143 # GCN-NEXT: S_NOP 0
144 # GCN-NEXT: S_NOP 0
145 # GCN-NEXT: S_NOP 0
146 # GCN-NEXT: S_NOP 0
147 # GCN-NEXT: S_NOP 0
148 # GCN-NEXT: S_NOP 0
149 # GCN-NEXT: S_NOP 0
150 # GCN-NEXT: S_NOP 0
151 # GCN-NEXT: S_NOP 0
152 # GCN-NEXT: S_NOP 0
153 # GCN-NEXT: S_NOP 0
154 # GCN-NEXT: V_ACCVGPR_READ_B32
155 name:            mfma_32x32_write_agpr_accvgpr_read
156 body:             |
157   bb.0:
158     $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7_agpr8_agpr9_agpr10_agpr11_agpr12_agpr13_agpr14_agpr15 = V_MFMA_F32_32X32X2F32 killed $vgpr1, killed $vgpr0, killed $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7_agpr8_agpr9_agpr10_agpr11_agpr12_agpr13_agpr14_agpr15, 0, 0, 0, implicit $exec
159     $vgpr0 = V_ACCVGPR_READ_B32 killed $agpr0, implicit $exec
163 # GCN-LABEL: name: mfma_4x4_write_agpr_accvgpr_write
164 # GCN:      V_MFMA_F32_4X4X1F32
165 # GCN-NEXT: S_NOP 0
166 # GCN-NEXT: V_ACCVGPR_WRITE_B32
167 name:            mfma_4x4_write_agpr_accvgpr_write
168 body:             |
169   bb.0:
170     $agpr0_agpr1_agpr2_agpr3 = V_MFMA_F32_4X4X1F32 killed $vgpr1, killed $vgpr0, killed $agpr0_agpr1_agpr2_agpr3, 0, 0, 0, implicit $exec
171     $agpr0 = V_ACCVGPR_WRITE_B32 killed $vgpr0, implicit $exec
175 # GCN-LABEL: name: mfma_16x16_write_agpr_accvgpr_write
176 # GCN:      V_MFMA_F32_16X16X1F32
177 # GCN-NEXT: S_NOP 0
178 # GCN-NEXT: S_NOP 0
179 # GCN-NEXT: S_NOP 0
180 # GCN-NEXT: S_NOP 0
181 # GCN-NEXT: S_NOP 0
182 # GCN-NEXT: S_NOP 0
183 # GCN-NEXT: S_NOP 0
184 # GCN-NEXT: V_ACCVGPR_WRITE_B32
185 name:            mfma_16x16_write_agpr_accvgpr_write
186 body:             |
187   bb.0:
188     $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7_agpr8_agpr9_agpr10_agpr11_agpr12_agpr13_agpr14_agpr15 = V_MFMA_F32_16X16X1F32 killed $vgpr1, killed $vgpr0, killed $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7_agpr8_agpr9_agpr10_agpr11_agpr12_agpr13_agpr14_agpr15, 0, 0, 0, implicit $exec
189     $agpr0 = V_ACCVGPR_WRITE_B32 killed $vgpr0, implicit $exec
193 # GCN-LABEL: name: mfma_32x32_write_agpr_accvgpr_write
194 # GCN:      V_MFMA_F32_32X32X2F32
195 # GCN-NEXT: S_NOP 0
196 # GCN-NEXT: S_NOP 0
197 # GCN-NEXT: S_NOP 0
198 # GCN-NEXT: S_NOP 0
199 # GCN-NEXT: S_NOP 0
200 # GCN-NEXT: S_NOP 0
201 # GCN-NEXT: S_NOP 0
202 # GCN-NEXT: S_NOP 0
203 # GCN-NEXT: S_NOP 0
204 # GCN-NEXT: S_NOP 0
205 # GCN-NEXT: S_NOP 0
206 # GCN-NEXT: S_NOP 0
207 # GCN-NEXT: S_NOP 0
208 # GCN-NEXT: S_NOP 0
209 # GCN-NEXT: S_NOP 0
210 # GCN-NEXT: V_ACCVGPR_WRITE_B32
211 name:            mfma_32x32_write_agpr_accvgpr_write
212 body:             |
213   bb.0:
214     $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7_agpr8_agpr9_agpr10_agpr11_agpr12_agpr13_agpr14_agpr15 = V_MFMA_F32_32X32X2F32 killed $vgpr1, killed $vgpr0, killed $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7_agpr8_agpr9_agpr10_agpr11_agpr12_agpr13_agpr14_agpr15, 0, 0, 0, implicit $exec
215     $agpr0 = V_ACCVGPR_WRITE_B32 killed $vgpr0, implicit $exec
219 # GCN-LABEL: name: mfma_4x4_read_srcc_accvgpr_write
220 # GCN:      V_MFMA_F32_4X4X1F32
221 # GCN-NEXT: V_ACCVGPR_WRITE_B32
222 name:            mfma_4x4_read_srcc_accvgpr_write
223 body:             |
224   bb.0:
225     $agpr4_agpr5_agpr6_agpr7 = V_MFMA_F32_4X4X1F32 killed $vgpr1, killed $vgpr0, killed $agpr0_agpr1_agpr2_agpr3, 0, 0, 0, implicit $exec
226     $agpr0 = V_ACCVGPR_WRITE_B32 killed $vgpr2, implicit $exec
230 # GCN-LABEL: name: mfma_16x16_read_srcc_accvgpr_write
231 # GCN:      V_MFMA_F32_16X16X1F32
232 # GCN-NEXT: S_NOP 0
233 # GCN-NEXT: S_NOP 0
234 # GCN-NEXT: S_NOP 0
235 # GCN-NEXT: S_NOP 0
236 # GCN-NEXT: S_NOP 0
237 # GCN-NEXT: V_ACCVGPR_WRITE_B32
238 name:            mfma_16x16_read_srcc_accvgpr_write
239 body:             |
240   bb.0:
241     $agpr16_agpr17_agpr18_agpr19_agpr20_agpr21_agpr22_agpr23_agpr24_agpr25_agpr26_agpr27_agpr28_agpr29_agpr30_agpr31 = V_MFMA_F32_16X16X1F32 killed $vgpr1, killed $vgpr0, killed $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7_agpr8_agpr9_agpr10_agpr11_agpr12_agpr13_agpr14_agpr15, 0, 0, 0, implicit $exec
242     $agpr0 = V_ACCVGPR_WRITE_B32 killed $vgpr2, implicit $exec
246 # GCN-LABEL: name: mfma_32x32_read_srcc_accvgpr_write
247 # GCN:      V_MFMA_F32_32X32X2F32
248 # GCN-NEXT: S_NOP 0
249 # GCN-NEXT: S_NOP 0
250 # GCN-NEXT: S_NOP 0
251 # GCN-NEXT: S_NOP 0
252 # GCN-NEXT: S_NOP 0
253 # GCN-NEXT: S_NOP 0
254 # GCN-NEXT: S_NOP 0
255 # GCN-NEXT: S_NOP 0
256 # GCN-NEXT: S_NOP 0
257 # GCN-NEXT: S_NOP 0
258 # GCN-NEXT: S_NOP 0
259 # GCN-NEXT: S_NOP 0
260 # GCN-NEXT: S_NOP 0
261 # GCN-NEXT: V_ACCVGPR_WRITE_B32
262 name:            mfma_32x32_read_srcc_accvgpr_write
263 body:             |
264   bb.0:
265     $agpr16_agpr17_agpr18_agpr19_agpr20_agpr21_agpr22_agpr23_agpr24_agpr25_agpr26_agpr27_agpr28_agpr29_agpr30_agpr31 = V_MFMA_F32_32X32X2F32 killed $vgpr1, killed $vgpr0, killed $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7_agpr8_agpr9_agpr10_agpr11_agpr12_agpr13_agpr14_agpr15, 0, 0, 0, implicit $exec
266     $agpr0 = V_ACCVGPR_WRITE_B32 killed $vgpr2, implicit $exec
270 # GCN-LABEL: name: accvgpr_read_write_vgpr_valu_read
271 # GCN:      V_ACCVGPR_READ_B32
272 # GCN-NEXT: V_ADD_F32
273 name:            accvgpr_read_write_vgpr_valu_read
274 body:             |
275   bb.0:
276     $vgpr0 = V_ACCVGPR_READ_B32 killed $agpr4, implicit $exec
277     $vgpr1 = V_ADD_F32_e32 0, killed $vgpr0, implicit $exec
281 # GCN-LABEL: name: accvgpr_read_write_vgpr_mfma_read
282 # GCN:      V_ACCVGPR_READ_B32
283 # GCN-NEXT: S_NOP 0
284 # GCN-NEXT: S_NOP 0
285 # GCN-NEXT: V_MFMA
286 name:            accvgpr_read_write_vgpr_mfma_read
287 body:             |
288   bb.0:
289     $vgpr0 = V_ACCVGPR_READ_B32 killed $agpr4, implicit $exec
290     $agpr0_agpr1_agpr2_agpr3 = V_MFMA_F32_4X4X1F32 killed $vgpr0, killed $vgpr0, killed $agpr0_agpr1_agpr2_agpr3, 0, 0, 0, implicit $exec
294 # GCN-LABEL: name: accvgpr_read_write_vgpr_accvgpr_write_read
295 # GCN:      V_ACCVGPR_READ_B32
296 # GCN-NEXT: S_NOP 0
297 # GCN-NEXT: S_NOP 0
298 # GCN-NEXT: V_ACCVGPR_WRITE_B32
299 name:            accvgpr_read_write_vgpr_accvgpr_write_read
300 body:             |
301   bb.0:
302     $vgpr0 = V_ACCVGPR_READ_B32 killed $agpr1, implicit $exec
303     $agpr0 = V_ACCVGPR_WRITE_B32 killed $vgpr0, implicit $exec
307 # GCN-LABEL: name: accvgpr_write_agpr_mfma_read_srcc
308 # GCN:      V_ACCVGPR_WRITE_B32
309 # GCN-NEXT: S_NOP 0
310 # GCN-NEXT: V_MFMA
311 name:            accvgpr_write_agpr_mfma_read_srcc
312 body:             |
313   bb.0:
314     $agpr0 = V_ACCVGPR_WRITE_B32 killed $vgpr0, implicit $exec
315     $agpr4_agpr5_agpr6_agpr7 = V_MFMA_F32_4X4X1F32 killed $vgpr1, killed $vgpr2, killed $agpr0_agpr1_agpr2_agpr3, 0, 0, 0, implicit $exec
319 # GCN-LABEL: name: accvgpr_write_agpr_mfma_read_srca
320 # GCN:      V_ACCVGPR_WRITE_B32
321 # GCN-NEXT: S_NOP 0
322 # GCN-NEXT: S_NOP 0
323 # GCN-NEXT: S_NOP 0
324 # GCN-NEXT: V_MFMA
325 name:            accvgpr_write_agpr_mfma_read_srca
326 body:             |
327   bb.0:
328     $agpr8 = V_ACCVGPR_WRITE_B32 killed $vgpr0, implicit $exec
329     $agpr4_agpr5_agpr6_agpr7 = V_MFMA_F32_4X4X1F32 killed $agpr8, killed $vgpr1, killed $agpr0_agpr1_agpr2_agpr3, 0, 0, 0, implicit $exec
333 # GCN-LABEL: name: accvgpr_write_agpr_mfma_read_srcb
334 # GCN:      V_ACCVGPR_WRITE_B32
335 # GCN-NEXT: S_NOP 0
336 # GCN-NEXT: S_NOP 0
337 # GCN-NEXT: S_NOP 0
338 # GCN-NEXT: V_MFMA
339 name:            accvgpr_write_agpr_mfma_read_srcb
340 body:             |
341   bb.0:
342     $agpr8 = V_ACCVGPR_WRITE_B32 killed $vgpr0, implicit $exec
343     $agpr4_agpr5_agpr6_agpr7 = V_MFMA_F32_4X4X1F32 killed $vgpr1, killed $agpr8, killed $agpr0_agpr1_agpr2_agpr3, 0, 0, 0, implicit $exec
347 # GCN-LABEL: name: accvgpr_write_agpr_accvgpr_read
348 # GCN:      V_ACCVGPR_WRITE_B32
349 # GCN-NEXT: S_NOP 0
350 # GCN-NEXT: S_NOP 0
351 # GCN-NEXT: S_NOP 0
352 # GCN-NEXT: V_ACCVGPR_READ_B32
353 name:            accvgpr_write_agpr_accvgpr_read
354 body:             |
355   bb.0:
356     $agpr0 = V_ACCVGPR_WRITE_B32 killed $vgpr0, implicit $exec
357     $vgpr1 = V_ACCVGPR_READ_B32 killed $agpr0, implicit $exec
361 # GCN-LABEL: name: vcmpx_write_exec_mfma
362 # GCN:      V_CMPX_EQ_I32_e32
363 # GCN-NEXT: S_NOP 0
364 # GCN-NEXT: S_NOP 0
365 # GCN-NEXT: S_NOP 0
366 # GCN-NEXT: S_NOP 0
367 # GCN-NEXT: V_MFMA
368 name:            vcmpx_write_exec_mfma
369 body:             |
370   bb.0:
371     implicit $exec, implicit $vcc = V_CMPX_EQ_I32_e32 $vgpr0, $vgpr1, implicit $exec
372     $agpr4_agpr5_agpr6_agpr7 = V_MFMA_F32_4X4X1F32 killed $agpr8, killed $vgpr1, killed $agpr0_agpr1_agpr2_agpr3, 0, 0, 0, implicit $exec
376 # GCN-LABEL: name: vcmpx_write_exec_accvgpr_write
377 # GCN:      V_CMPX_EQ_I32_e32
378 # GCN-NEXT: S_NOP 0
379 # GCN-NEXT: S_NOP 0
380 # GCN-NEXT: S_NOP 0
381 # GCN-NEXT: S_NOP 0
382 # GCN-NEXT: V_ACCVGPR_WRITE_B32
383 name:            vcmpx_write_exec_accvgpr_write
384 body:             |
385   bb.0:
386     implicit $exec, implicit $vcc = V_CMPX_EQ_I32_e32 $vgpr0, $vgpr1, implicit $exec
387     $agpr0 = V_ACCVGPR_WRITE_B32 killed $vgpr2, implicit $exec
391 # GCN-LABEL: name: accvgpr_read_write_vgpr_load
392 # GCN:      V_ACCVGPR_READ_B32
393 # GCN-NEXT: S_NOP 0
394 # GCN-NEXT: S_NOP 0
395 # GCN-NEXT: FLAT_LOAD_DWORD
396 name:            accvgpr_read_write_vgpr_load
397 body:             |
398   bb.0:
399     $vgpr0 = V_ACCVGPR_READ_B32 killed $agpr0, implicit $exec
400     $vgpr3 = FLAT_LOAD_DWORD $vgpr0_vgpr1, 0, 0, 0, 0, implicit $exec, implicit $flat_scr
404 # GCN-LABEL: name: accvgpr_read_write_vgpr_store
405 # GCN:      V_ACCVGPR_READ_B32
406 # GCN-NEXT: S_NOP 0
407 # GCN-NEXT: S_NOP 0
408 # GCN-NEXT: DS_WRITE_B32
409 name:            accvgpr_read_write_vgpr_store
410 body:             |
411   bb.0:
412     $vgpr0 = V_ACCVGPR_READ_B32 killed $agpr0, implicit $exec
413     DS_WRITE_B32 $vgpr0, $vgpr1, 0, 0, implicit $m0, implicit $exec
417 # GCN-LABEL: name: valu_write_vgpr_accvgpr_read_load_no_dependency
418 # GCN:      V_MOV_B32
419 # GCN-NEXT: V_ACCVGPR_READ_B32
420 # GCN-NEXT: FLAT_LOAD_DWORD
421 name:            valu_write_vgpr_accvgpr_read_load_no_dependency
422 body:             |
423   bb.0:
424     $vgpr0 = V_MOV_B32_e32 1, implicit $exec
425     $vgpr1 = V_ACCVGPR_READ_B32 killed $agpr0, implicit $exec
426     $vgpr4 = FLAT_LOAD_DWORD $vgpr2_vgpr3, 0, 0, 0, 0, implicit $exec, implicit $flat_scr
430 # GCN-LABEL: name: valu_write_vgpr_accvgpr_read_load_1_and_3_depend
431 # GCN:      V_MOV_B32
432 # GCN-NEXT: V_ACCVGPR_READ_B32
433 # GCN-NEXT: S_NOP 0
434 # GCN-NEXT: FLAT_LOAD_DWORD
435 name:            valu_write_vgpr_accvgpr_read_load_1_and_3_depend
436 body:             |
437   bb.0:
438     $vgpr0 = V_MOV_B32_e32 1, implicit $exec
439     $vgpr2 = V_ACCVGPR_READ_B32 killed $agpr0, implicit $exec
440     $vgpr4 = FLAT_LOAD_DWORD $vgpr0_vgpr1, 0, 0, 0, 0, implicit $exec, implicit $flat_scr
444 # GCN-LABEL: name: valu_write_vgpr_accvgpr_read_load_2_and_3_depend
445 # GCN:      V_MOV_B32
446 # GCN-NEXT: V_ACCVGPR_READ_B32
447 # GCN-NEXT: S_NOP 0
448 # GCN-NEXT: S_NOP 0
449 # GCN-NEXT: FLAT_LOAD_DWORD
450 name:            valu_write_vgpr_accvgpr_read_load_2_and_3_depend
451 body:             |
452   bb.0:
453     $vgpr0 = V_MOV_B32_e32 1, implicit $exec
454     $vgpr2 = V_ACCVGPR_READ_B32 killed $agpr0, implicit $exec
455     $vgpr4 = FLAT_LOAD_DWORD $vgpr2_vgpr3, 0, 0, 0, 0, implicit $exec, implicit $flat_scr