Bump version to 19.1.0-rc3
[llvm-project.git] / llvm / test / CodeGen / AMDGPU / mai-hazards.mir
blob409b1d6f6e30b8e287f34ddb3923a0afd4f6db6f
1 # RUN: llc -mtriple=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 1
7 # GCN-NEXT: V_MFMA
8 name:            valu_write_vgpr_mfma_read
9 body:             |
10   bb.0:
11     $vgpr0 = V_MOV_B32_e32 1, implicit $exec
12     $vgpr1 = V_MOV_B32_e32 1, implicit $exec
13     $agpr0_agpr1_agpr2_agpr3 = V_MFMA_F32_4X4X1F32_e64 killed $vgpr1, killed $vgpr0, killed $agpr0_agpr1_agpr2_agpr3, 0, 0, 0, implicit $mode, implicit $exec
14 ...
15 ---
17 # GCN-LABEL: name: valu_write_vgpr_accvgpr_write_read
18 # GCN:      V_MOV_B32
19 # GCN-NEXT: S_NOP 1
20 # GCN-NEXT: V_ACCVGPR_WRITE_B32_e64
21 name:            valu_write_vgpr_accvgpr_write_read
22 body:             |
23   bb.0:
24     $vgpr0 = V_MOV_B32_e32 1, implicit $exec
25     $agpr0 = V_ACCVGPR_WRITE_B32_e64 killed $vgpr0, implicit $exec
26 ...
27 ---
28 # GCN-LABEL: name: asm_write_vgpr_accvgpr_write_read
29 # GCN:      INLINEASM
30 # GCN-NEXT: S_NOP 1
31 # GCN-NEXT: V_ACCVGPR_WRITE_B32_e64
32 name:            asm_write_vgpr_accvgpr_write_read
33 body:             |
34   bb.0:
36     INLINEASM &"; def $0", 1 /* sideeffect attdialect */, 1966090 /* regdef:VGPR_32 */, def $vgpr0
37     $agpr0 = V_ACCVGPR_WRITE_B32_e64 killed $vgpr0, implicit $exec
38 ...
40 ---
41 # GCN-LABEL: name: asm_write_vgpr_accvgpr_write_read_partialnop
42 # GCN:      INLINEASM
43 # GCN-NEXT: S_NOP 0
44 # GCN-NEXT: S_NOP 0
45 # GCN-NEXT: V_ACCVGPR_WRITE_B32_e64
46 name:            asm_write_vgpr_accvgpr_write_read_partialnop
47 body:             |
48   bb.0:
50     INLINEASM &"; def $0", 1 /* sideeffect attdialect */, 1966090 /* regdef:VGPR_32 */, def $vgpr0
51     S_NOP 0
52     $agpr0 = V_ACCVGPR_WRITE_B32_e64 killed $vgpr0, implicit $exec
53 ...
55 ---
56 # GCN-LABEL: name: asm_write_vgpr_accvgpr_write_read_otherreg
57 # GCN:      INLINEASM
58 # GCN-NEXT: V_ACCVGPR_WRITE_B32_e64
59 name:            asm_write_vgpr_accvgpr_write_read_otherreg
60 body:             |
61   bb.0:
62     liveins: $vgpr0
63     INLINEASM &"; def $0", 1 /* sideeffect attdialect */, 1966090 /* regdef:VGPR_32 */, def $vgpr1
64     $agpr0 = V_ACCVGPR_WRITE_B32_e64 killed $vgpr0, implicit $exec
65 ...
67 ---
68 # GCN-LABEL: name: bundle_write_vgpr_accvgpr_write_read
69 # GCN: BUNDLE
70 # GCN-NEXT: S_NOP 0
71 # GCN-NEXT: V_MOV_B32
72 # GCN-NEXT: }
73 # GCN-NEXT: S_NOP 1
74 # GCN-NEXT: V_ACCVGPR_WRITE_B32_e64
75 name:            bundle_write_vgpr_accvgpr_write_read
76 body:             |
77   bb.0:
78     $vgpr0 = BUNDLE {
79       S_NOP 0
80       $vgpr0 = V_MOV_B32_e32 0, implicit $exec
81     }
82     $agpr0 = V_ACCVGPR_WRITE_B32_e64 killed $vgpr0, implicit $exec
83 ...
85 ---
87 # GCN-LABEL: name: mfma_write_agpr_mfma_read_same_agpr
88 # GCN:      V_MFMA
89 # GCN-NEXT: V_MFMA
90 name:            mfma_write_agpr_mfma_read_same_agpr
91 body:             |
92   bb.0:
93     $agpr0_agpr1_agpr2_agpr3 = V_MFMA_F32_4X4X1F32_e64 killed $vgpr1, killed $vgpr0, killed $agpr0_agpr1_agpr2_agpr3, 0, 0, 0, implicit $mode, implicit $exec
94     $agpr0_agpr1_agpr2_agpr3 = V_MFMA_F32_4X4X1F32_e64 killed $vgpr1, killed $vgpr0, killed $agpr0_agpr1_agpr2_agpr3, 0, 0, 0, implicit $mode, implicit $exec
95 ...
96 ---
98 # GCN-LABEL: name: mfma_write_agpr_mfma_read_overlap
99 # GCN:      V_MFMA
100 # GCN-NEXT: S_NOP 1
101 # GCN-NEXT: V_MFMA
102 name:            mfma_write_agpr_mfma_read_overlap
103 body:             |
104   bb.0:
105     $agpr1_agpr2_agpr3_agpr4 = V_MFMA_F32_4X4X1F32_e64 killed $vgpr1, killed $vgpr0, killed $agpr0_agpr1_agpr2_agpr3, 0, 0, 0, implicit $mode, implicit $exec
106     $agpr0_agpr1_agpr2_agpr3 = V_MFMA_F32_4X4X1F32_e64 killed $vgpr1, killed $vgpr0, killed $agpr0_agpr1_agpr2_agpr3, 0, 0, 0, implicit $mode, implicit $exec
110 # GCN-LABEL: name: mfma_write_agpr_mfma_read_partial
111 # GCN:      V_MFMA
112 # GCN-NEXT: S_NOP 1
113 # GCN-NEXT: V_MFMA
114 name:            mfma_write_agpr_mfma_read_partial
115 body:             |
116   bb.0:
117     $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7_agpr8_agpr9_agpr10_agpr11_agpr12_agpr13_agpr14_agpr15 = V_MFMA_F32_16X16X1F32_e64 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 $mode, implicit $exec
118     $agpr0_agpr1_agpr2_agpr3 = V_MFMA_F32_4X4X1F32_e64 killed $vgpr1, killed $vgpr0, killed $agpr0_agpr1_agpr2_agpr3, 0, 0, 0, implicit $mode, implicit $exec
122 # GCN-LABEL: name: mfma_write_agpr_mfma_srca_read_overlap
123 # GCN:      V_MFMA
124 # GCN-NEXT: S_NOP 3
125 # GCN-NEXT: V_MFMA
126 name:            mfma_write_agpr_mfma_srca_read_overlap
127 body:             |
128   bb.0:
129     $agpr0_agpr1_agpr2_agpr3 = V_MFMA_F32_4X4X1F32_e64 killed $vgpr1, killed $vgpr0, killed $agpr0_agpr1_agpr2_agpr3, 0, 0, 0, implicit $mode, implicit $exec
130     $agpr0_agpr1_agpr2_agpr3 = V_MFMA_F32_4X4X1F32_e64 killed $agpr1, killed $vgpr0, killed $agpr0_agpr1_agpr2_agpr3, 0, 0, 0, implicit $mode, implicit $exec
134 # GCN-LABEL: name: mfma_write_agpr_mfma_srcb_read_overlap
135 # GCN:      V_MFMA
136 # GCN-NEXT: S_NOP 3
137 # GCN-NEXT: V_MFMA
138 name:            mfma_write_agpr_mfma_srcb_read_overlap
139 body:             |
140   bb.0:
141     $agpr0_agpr1_agpr2_agpr3 = V_MFMA_F32_4X4X1F32_e64 killed $vgpr1, killed $vgpr0, killed $agpr0_agpr1_agpr2_agpr3, 0, 0, 0, implicit $mode, implicit $exec
142     $agpr0_agpr1_agpr2_agpr3 = V_MFMA_F32_4X4X1F32_e64 killed $vgpr1, killed $agpr0, killed $agpr0_agpr1_agpr2_agpr3, 0, 0, 0, implicit $mode, implicit $exec
146 # GCN-LABEL: name: mfma_4x4_write_agpr_accvgpr_read
147 # GCN:      V_MFMA_F32_4X4X1F32
148 # GCN-NEXT: S_NOP 3
149 # GCN-NEXT: V_ACCVGPR_READ_B32_e64
150 name:            mfma_4x4_write_agpr_accvgpr_read
151 body:             |
152   bb.0:
153     $agpr0_agpr1_agpr2_agpr3 = V_MFMA_F32_4X4X1F32_e64 killed $vgpr1, killed $vgpr0, killed $agpr0_agpr1_agpr2_agpr3, 0, 0, 0, implicit $mode, implicit $exec
154     $vgpr0 = V_ACCVGPR_READ_B32_e64 killed $agpr0, implicit $exec
158 # GCN-LABEL: name: mfma_16x16_write_agpr_accvgpr_read
159 # GCN:      V_MFMA_F32_16X16X1F32
160 # GCN-NEXT: S_NOP 7
161 # GCN-NEXT: S_NOP 1
162 # GCN-NEXT: V_ACCVGPR_READ_B32_e64
163 name:            mfma_16x16_write_agpr_accvgpr_read
164 body:             |
165   bb.0:
166     $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7_agpr8_agpr9_agpr10_agpr11_agpr12_agpr13_agpr14_agpr15 = V_MFMA_F32_16X16X1F32_e64 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 $mode, implicit $exec
167     $vgpr0 = V_ACCVGPR_READ_B32_e64 killed $agpr0, implicit $exec
171 # GCN-LABEL: name: mfma_32x32_write_agpr_accvgpr_read
172 # GCN:      V_MFMA_F32_32X32X2F32
173 # GCN-NEXT: S_NOP 7
174 # GCN-NEXT: S_NOP 7
175 # GCN-NEXT: S_NOP 1
176 # GCN-NEXT: V_ACCVGPR_READ_B32_e64
177 name:            mfma_32x32_write_agpr_accvgpr_read
178 body:             |
179   bb.0:
180     $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7_agpr8_agpr9_agpr10_agpr11_agpr12_agpr13_agpr14_agpr15 = V_MFMA_F32_32X32X2F32_e64 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 $mode, implicit $exec
181     $vgpr0 = V_ACCVGPR_READ_B32_e64 killed $agpr0, implicit $exec
185 # GCN-LABEL: name: mfma_4x4_write_agpr_accvgpr_write
186 # GCN:      V_MFMA_F32_4X4X1F32
187 # GCN-NEXT: S_NOP 0
188 # GCN-NEXT: V_ACCVGPR_WRITE_B32_e64
189 name:            mfma_4x4_write_agpr_accvgpr_write
190 body:             |
191   bb.0:
192     $agpr0_agpr1_agpr2_agpr3 = V_MFMA_F32_4X4X1F32_e64 killed $vgpr1, killed $vgpr0, killed $agpr0_agpr1_agpr2_agpr3, 0, 0, 0, implicit $mode, implicit $exec
193     $agpr0 = V_ACCVGPR_WRITE_B32_e64 killed $vgpr0, implicit $exec
197 # GCN-LABEL: name: mfma_16x16_write_agpr_accvgpr_write
198 # GCN:      V_MFMA_F32_16X16X1F32
199 # GCN-NEXT: S_NOP 6
200 # GCN-NEXT: V_ACCVGPR_WRITE_B32_e64
201 name:            mfma_16x16_write_agpr_accvgpr_write
202 body:             |
203   bb.0:
204     $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7_agpr8_agpr9_agpr10_agpr11_agpr12_agpr13_agpr14_agpr15 = V_MFMA_F32_16X16X1F32_e64 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 $mode, implicit $exec
205     $agpr0 = V_ACCVGPR_WRITE_B32_e64 killed $vgpr0, implicit $exec
209 # GCN-LABEL: name: mfma_32x32_write_agpr_accvgpr_write
210 # GCN:      V_MFMA_F32_32X32X2F32
211 # GCN-NEXT: S_NOP 7
212 # GCN-NEXT: S_NOP 6
213 # GCN-NEXT: V_ACCVGPR_WRITE_B32_e64
214 name:            mfma_32x32_write_agpr_accvgpr_write
215 body:             |
216   bb.0:
217     $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7_agpr8_agpr9_agpr10_agpr11_agpr12_agpr13_agpr14_agpr15 = V_MFMA_F32_32X32X2F32_e64 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 $mode, implicit $exec
218     $agpr0 = V_ACCVGPR_WRITE_B32_e64 killed $vgpr0, implicit $exec
222 # GCN-LABEL: name: mfma_4x4_read_srcc_accvgpr_write
223 # GCN:      V_MFMA_F32_4X4X1F32
224 # GCN-NEXT: V_ACCVGPR_WRITE_B32_e64
225 name:            mfma_4x4_read_srcc_accvgpr_write
226 body:             |
227   bb.0:
228     $agpr4_agpr5_agpr6_agpr7 = V_MFMA_F32_4X4X1F32_e64 killed $vgpr1, killed $vgpr0, killed $agpr0_agpr1_agpr2_agpr3, 0, 0, 0, implicit $mode, implicit $exec
229     $agpr0 = V_ACCVGPR_WRITE_B32_e64 killed $vgpr2, implicit $exec
233 # GCN-LABEL: name: mfma_16x16_read_srcc_accvgpr_write
234 # GCN:      V_MFMA_F32_16X16X1F32
235 # GCN-NEXT: S_NOP 4
236 # GCN-NEXT: V_ACCVGPR_WRITE_B32_e64
237 name:            mfma_16x16_read_srcc_accvgpr_write
238 body:             |
239   bb.0:
240     $agpr16_agpr17_agpr18_agpr19_agpr20_agpr21_agpr22_agpr23_agpr24_agpr25_agpr26_agpr27_agpr28_agpr29_agpr30_agpr31 = V_MFMA_F32_16X16X1F32_e64 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 $mode, implicit $exec
241     $agpr0 = V_ACCVGPR_WRITE_B32_e64 killed $vgpr2, implicit $exec
245 # GCN-LABEL: name: mfma_32x32_read_srcc_accvgpr_write
246 # GCN:      V_MFMA_F32_32X32X2F32
247 # GCN-NEXT: S_NOP 7
248 # GCN-NEXT: S_NOP 4
249 # GCN-NEXT: V_ACCVGPR_WRITE_B32_e64
250 name:            mfma_32x32_read_srcc_accvgpr_write
251 body:             |
252   bb.0:
253     $agpr16_agpr17_agpr18_agpr19_agpr20_agpr21_agpr22_agpr23_agpr24_agpr25_agpr26_agpr27_agpr28_agpr29_agpr30_agpr31 = V_MFMA_F32_32X32X2F32_e64 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 $mode, implicit $exec
254     $agpr0 = V_ACCVGPR_WRITE_B32_e64 killed $vgpr2, implicit $exec
258 # GCN-LABEL: name: accvgpr_read_write_vgpr_valu_read
259 # GCN:      V_ACCVGPR_READ_B32_e64
260 # GCN-NEXT: V_ADD_F32
261 name:            accvgpr_read_write_vgpr_valu_read
262 body:             |
263   bb.0:
264     $vgpr0 = V_ACCVGPR_READ_B32_e64 killed $agpr4, implicit $exec
265     $vgpr1 = V_ADD_F32_e32 0, killed $vgpr0, implicit $mode, implicit $exec
269 # GCN-LABEL: name: accvgpr_read_write_vgpr_mfma_read
270 # GCN:      V_ACCVGPR_READ_B32_e64
271 # GCN-NEXT: S_NOP 1
272 # GCN-NEXT: V_MFMA
273 name:            accvgpr_read_write_vgpr_mfma_read
274 body:             |
275   bb.0:
276     $vgpr0 = V_ACCVGPR_READ_B32_e64 killed $agpr4, implicit $exec
277     $agpr0_agpr1_agpr2_agpr3 = V_MFMA_F32_4X4X1F32_e64 killed $vgpr0, killed $vgpr0, killed $agpr0_agpr1_agpr2_agpr3, 0, 0, 0, implicit $mode, implicit $exec
281 # GCN-LABEL: name: accvgpr_read_write_vgpr_accvgpr_write_read
282 # GCN:      V_ACCVGPR_READ_B32_e64
283 # GCN-NEXT: S_NOP 1
284 # GCN-NEXT: V_ACCVGPR_WRITE_B32_e64
285 name:            accvgpr_read_write_vgpr_accvgpr_write_read
286 body:             |
287   bb.0:
288     $vgpr0 = V_ACCVGPR_READ_B32_e64 killed $agpr1, implicit $exec
289     $agpr0 = V_ACCVGPR_WRITE_B32_e64 killed $vgpr0, implicit $exec
293 # GCN-LABEL: name: accvgpr_write_agpr_mfma_read_srcc
294 # GCN:      V_ACCVGPR_WRITE_B32_e64
295 # GCN-NEXT: S_NOP 0
296 # GCN-NEXT: V_MFMA
297 name:            accvgpr_write_agpr_mfma_read_srcc
298 body:             |
299   bb.0:
300     $agpr0 = V_ACCVGPR_WRITE_B32_e64 killed $vgpr0, implicit $exec
301     $agpr4_agpr5_agpr6_agpr7 = V_MFMA_F32_4X4X1F32_e64 killed $vgpr1, killed $vgpr2, killed $agpr0_agpr1_agpr2_agpr3, 0, 0, 0, implicit $mode, implicit $exec
305 # GCN-LABEL: name: accvgpr_write_agpr_mfma_read_srca
306 # GCN:      V_ACCVGPR_WRITE_B32_e64
307 # GCN-NEXT: S_NOP 2
308 # GCN-NEXT: V_MFMA
309 name:            accvgpr_write_agpr_mfma_read_srca
310 body:             |
311   bb.0:
312     $agpr8 = V_ACCVGPR_WRITE_B32_e64 killed $vgpr0, implicit $exec
313     $agpr4_agpr5_agpr6_agpr7 = V_MFMA_F32_4X4X1F32_e64 killed $agpr8, killed $vgpr1, killed $agpr0_agpr1_agpr2_agpr3, 0, 0, 0, implicit $mode, implicit $exec
317 # GCN-LABEL: name: accvgpr_write_agpr_mfma_read_srcb
318 # GCN:      V_ACCVGPR_WRITE_B32_e64
319 # GCN-NEXT: S_NOP 2
320 # GCN-NEXT: V_MFMA
321 name:            accvgpr_write_agpr_mfma_read_srcb
322 body:             |
323   bb.0:
324     $agpr8 = V_ACCVGPR_WRITE_B32_e64 killed $vgpr0, implicit $exec
325     $agpr4_agpr5_agpr6_agpr7 = V_MFMA_F32_4X4X1F32_e64 killed $vgpr1, killed $agpr8, killed $agpr0_agpr1_agpr2_agpr3, 0, 0, 0, implicit $mode, implicit $exec
329 # GCN-LABEL: name: accvgpr_write_agpr_accvgpr_read
330 # GCN:      V_ACCVGPR_WRITE_B32_e64
331 # GCN-NEXT: S_NOP 2
332 # GCN-NEXT: V_ACCVGPR_READ_B32_e64
333 name:            accvgpr_write_agpr_accvgpr_read
334 body:             |
335   bb.0:
336     $agpr0 = V_ACCVGPR_WRITE_B32_e64 killed $vgpr0, implicit $exec
337     $vgpr1 = V_ACCVGPR_READ_B32_e64 killed $agpr0, implicit $exec
341 # GCN-LABEL: name: vcmpx_write_exec_mfma
342 # GCN:      V_CMPX_EQ_I32_e32
343 # GCN-NEXT: S_NOP 3
344 # GCN-NEXT: V_MFMA
345 name:            vcmpx_write_exec_mfma
346 body:             |
347   bb.0:
348     implicit $exec, implicit $vcc = V_CMPX_EQ_I32_e32 $vgpr0, $vgpr1, implicit $exec
349     $agpr4_agpr5_agpr6_agpr7 = V_MFMA_F32_4X4X1F32_e64 killed $agpr8, killed $vgpr1, killed $agpr0_agpr1_agpr2_agpr3, 0, 0, 0, implicit $mode, implicit $exec
353 # GCN-LABEL: name: vcmpx_write_exec_accvgpr_write
354 # GCN:      V_CMPX_EQ_I32_e32
355 # GCN-NEXT: S_NOP 3
356 # GCN-NEXT: V_ACCVGPR_WRITE_B32_e64
357 name:            vcmpx_write_exec_accvgpr_write
358 body:             |
359   bb.0:
360     implicit $exec, implicit $vcc = V_CMPX_EQ_I32_e32 $vgpr0, $vgpr1, implicit $exec
361     $agpr0 = V_ACCVGPR_WRITE_B32_e64 killed $vgpr2, implicit $exec
365 # GCN-LABEL: name: accvgpr_read_write_vgpr_load
366 # GCN:      V_ACCVGPR_READ_B32_e64
367 # GCN-NEXT: S_NOP 1
368 # GCN-NEXT: FLAT_LOAD_DWORD
369 name:            accvgpr_read_write_vgpr_load
370 body:             |
371   bb.0:
372     $vgpr0 = V_ACCVGPR_READ_B32_e64 killed $agpr0, implicit $exec
373     $vgpr3 = FLAT_LOAD_DWORD $vgpr0_vgpr1, 0, 0, implicit $exec, implicit $flat_scr
377 # GCN-LABEL: name: accvgpr_read_write_vgpr_ds_permute
378 # GCN:      V_ACCVGPR_READ_B32_e64
379 # GCN-NEXT: S_NOP 1
380 # GCN-NEXT: DS_PERMUTE_B32
381 name:            accvgpr_read_write_vgpr_ds_permute
382 body:             |
383   bb.0:
384     $vgpr0 = V_ACCVGPR_READ_B32_e64 killed $agpr0, implicit $exec
385     $vgpr1 = DS_PERMUTE_B32 $vgpr0, $vgpr1, 0, implicit $exec
389 # GCN-LABEL: name: accvgpr_read_write_vgpr_flat_load
390 # GCN:      V_ACCVGPR_READ_B32_e64
391 # GCN-NEXT: S_NOP 1
392 # GCN-NEXT: FLAT_LOAD_DWORD
393 name:            accvgpr_read_write_vgpr_flat_load
394 body:             |
395   bb.0:
396     $vgpr0 = V_ACCVGPR_READ_B32_e64 killed $agpr0, implicit $exec
397     $vgpr4 = FLAT_LOAD_DWORD $vgpr0_vgpr1, 0, 0, implicit $exec, implicit $flat_scr
401 # GCN-LABEL: name: accvgpr_read_write_vgpr_buffer_store
402 # GCN:      V_ACCVGPR_READ_B32_e64
403 # GCN-NEXT: S_NOP 1
404 # GCN-NEXT: BUFFER_STORE_DWORD_OFFSET
405 name:            accvgpr_read_write_vgpr_buffer_store
406 body:             |
407   bb.0:
408     $vgpr0 = V_ACCVGPR_READ_B32_e64 killed $agpr0, implicit $exec
409     BUFFER_STORE_DWORD_OFFSET $vgpr0, $sgpr0_sgpr1_sgpr2_sgpr3, 0, 0, 0, 0, implicit $exec
413 # GCN-LABEL: name: accvgpr_read_write_vgpr_store
414 # GCN:      V_ACCVGPR_READ_B32_e64
415 # GCN-NEXT: S_NOP 1
416 # GCN-NEXT: DS_WRITE_B32
417 name:            accvgpr_read_write_vgpr_store
418 body:             |
419   bb.0:
420     $vgpr0 = V_ACCVGPR_READ_B32_e64 killed $agpr0, implicit $exec
421     DS_WRITE_B32 $vgpr0, $vgpr1, 0, 0, implicit $m0, implicit $exec
425 # GCN-LABEL: name: valu_write_vgpr_accvgpr_read_load_no_dependency
426 # GCN:      V_MOV_B32
427 # GCN-NEXT: V_ACCVGPR_READ_B32_e64
428 # GCN-NEXT: FLAT_LOAD_DWORD
429 name:            valu_write_vgpr_accvgpr_read_load_no_dependency
430 body:             |
431   bb.0:
432     $vgpr0 = V_MOV_B32_e32 1, implicit $exec
433     $vgpr1 = V_ACCVGPR_READ_B32_e64 killed $agpr0, implicit $exec
434     $vgpr4 = FLAT_LOAD_DWORD $vgpr2_vgpr3, 0, 0, implicit $exec, implicit $flat_scr
438 # GCN-LABEL: name: valu_write_vgpr_accvgpr_read_load_1_and_3_depend
439 # GCN:      V_MOV_B32
440 # GCN-NEXT: V_ACCVGPR_READ_B32_e64
441 # GCN-NEXT: S_NOP 0
442 # GCN-NEXT: FLAT_LOAD_DWORD
443 name:            valu_write_vgpr_accvgpr_read_load_1_and_3_depend
444 body:             |
445   bb.0:
446     $vgpr0 = V_MOV_B32_e32 1, implicit $exec
447     $vgpr2 = V_ACCVGPR_READ_B32_e64 killed $agpr0, implicit $exec
448     $vgpr4 = FLAT_LOAD_DWORD $vgpr0_vgpr1, 0, 0, implicit $exec, implicit $flat_scr
452 # GCN-LABEL: name: valu_write_vgpr_accvgpr_write_load_1_and_3_depend
453 # GCN:      V_MOV_B32
454 # GCN-NEXT: V_ACCVGPR_WRITE_B32_e64
455 # GCN-NEXT: S_NOP 0
456 # GCN-NEXT: FLAT_LOAD_DWORD
457 name:            valu_write_vgpr_accvgpr_write_load_1_and_3_depend
458 body:             |
459   bb.0:
460     $vgpr0 = V_MOV_B32_e32 1, implicit $exec
461     $agpr0 = V_ACCVGPR_WRITE_B32_e64 killed $vgpr2, implicit $exec
462     $vgpr4 = FLAT_LOAD_DWORD $vgpr0_vgpr1, 0, 0, implicit $exec, implicit $flat_scr
466 # GCN-LABEL: name: valu_write_vgpr_accvgpr_read_load_2_and_3_depend
467 # GCN:      V_MOV_B32
468 # GCN-NEXT: V_ACCVGPR_READ_B32_e64
469 # GCN-NEXT: S_NOP 1
470 # GCN-NEXT: FLAT_LOAD_DWORD
471 name:            valu_write_vgpr_accvgpr_read_load_2_and_3_depend
472 body:             |
473   bb.0:
474     $vgpr0 = V_MOV_B32_e32 1, implicit $exec
475     $vgpr2 = V_ACCVGPR_READ_B32_e64 killed $agpr0, implicit $exec
476     $vgpr4 = FLAT_LOAD_DWORD $vgpr2_vgpr3, 0, 0, implicit $exec, implicit $flat_scr