Lines Matching refs:GCN

2 …control-flow,si-lower-control-flow -verify-machineinstrs %s -o - | FileCheck -check-prefixes=GCN %s
10 ; GCN-LABEL: name: si-lower-control-flow
11 ; GCN: [[COPY:%[0-9]+]]:sgpr_64 = COPY $sgpr4_sgpr5
12 ; GCN-NEXT: [[S_LOAD_DWORD_IMM:%[0-9]+]]:sreg_32_xm0_xexec = S_LOAD_DWORD_IMM [[COPY]], 16, 0
13 …; GCN-NEXT: [[S_AND_B32_:%[0-9]+]]:sreg_32_xm0 = S_AND_B32 [[S_LOAD_DWORD_IMM]], 255, implicit-def…
14 ; GCN-NEXT: dead %3:sreg_32_xm0 = S_AND_B32 65535, [[S_AND_B32_]], implicit-def $scc
15 ; GCN-NEXT: S_ENDPGM 0
27 ; GCN-LABEL: name: preserve_undef_flag_si_if_src
28 ; GCN: bb.0:
29 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
30 ; GCN-NEXT: {{ $}}
31 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $exec, implicit-def $exec
32 …; GCN-NEXT: [[S_AND_B64_:%[0-9]+]]:sreg_64 = S_AND_B64 [[COPY]], undef %1:sreg_64, implicit-def …
33 ; GCN-NEXT: dead %0:sreg_64 = S_XOR_B64 [[S_AND_B64_]], [[COPY]], implicit-def dead $scc
34 ; GCN-NEXT: $exec = S_MOV_B64_term [[S_AND_B64_]]
35 ; GCN-NEXT: S_CBRANCH_EXECZ %bb.2, implicit $exec
36 ; GCN-NEXT: S_BRANCH %bb.1
37 ; GCN-NEXT: {{ $}}
38 ; GCN-NEXT: bb.1:
39 ; GCN-NEXT: successors: %bb.2(0x80000000)
40 ; GCN-NEXT: {{ $}}
41 ; GCN-NEXT: {{ $}}
42 ; GCN-NEXT: bb.2:
43 ; GCN-NEXT: S_ENDPGM 0
63 ; GCN-LABEL: name: end_cf_split_block_end
64 ; GCN: bb.0:
65 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
66 ; GCN-NEXT: liveins: $vgpr0, $vgpr1, $sgpr30_sgpr31
67 ; GCN-NEXT: {{ $}}
68 ; GCN-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
69 ; GCN-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
70 …; GCN-NEXT: [[V_CMP_EQ_U32_e64_:%[0-9]+]]:sreg_64_xexec = V_CMP_EQ_U32_e64 [[COPY]], [[COPY1]], …
71 ; GCN-NEXT: [[COPY2:%[0-9]+]]:sreg_64 = COPY $exec, implicit-def $exec
72 …; GCN-NEXT: [[S_AND_B64_:%[0-9]+]]:sreg_64 = S_AND_B64 [[COPY2]], [[V_CMP_EQ_U32_e64_]], implici…
73 …; GCN-NEXT: [[S_XOR_B64_:%[0-9]+]]:sreg_64_xexec = S_XOR_B64 [[S_AND_B64_]], [[COPY2]], implicit…
74 ; GCN-NEXT: $exec = S_MOV_B64_term [[S_AND_B64_]]
75 …; GCN-NEXT: [[S_MOV_B64_term:%[0-9]+]]:sreg_64_xexec = S_MOV_B64_term [[S_XOR_B64_]], implicit $…
76 ; GCN-NEXT: S_CBRANCH_EXECZ %bb.1, implicit $exec
77 ; GCN-NEXT: S_BRANCH %bb.2
78 ; GCN-NEXT: {{ $}}
79 ; GCN-NEXT: bb.1:
80 ; GCN-NEXT: successors: %bb.2(0x80000000)
81 ; GCN-NEXT: {{ $}}
82 ; GCN-NEXT: [[COPY3:%[0-9]+]]:sreg_64_xexec = COPY [[S_MOV_B64_term]]
83 ; GCN-NEXT: $exec = S_OR_B64_term $exec, [[COPY3]], implicit-def $scc
84 ; GCN-NEXT: {{ $}}
85 ; GCN-NEXT: bb.2:
86 ; GCN-NEXT: S_ENDPGM 0
112 ; GCN-LABEL: name: end_cf_split_block_physreg_livein
113 ; GCN: bb.0:
114 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
115 ; GCN-NEXT: liveins: $vgpr0, $vgpr1, $sgpr30_sgpr31, $sgpr4_sgpr5
116 ; GCN-NEXT: {{ $}}
117 ; GCN-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
118 ; GCN-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
119 …; GCN-NEXT: [[V_CMP_EQ_U32_e64_:%[0-9]+]]:sreg_64_xexec = V_CMP_EQ_U32_e64 [[COPY]], [[COPY1]], …
120 ; GCN-NEXT: [[COPY2:%[0-9]+]]:sreg_64 = COPY $exec, implicit-def $exec
121 …; GCN-NEXT: [[S_AND_B64_:%[0-9]+]]:sreg_64 = S_AND_B64 [[COPY2]], [[V_CMP_EQ_U32_e64_]], implici…
122 …; GCN-NEXT: [[S_XOR_B64_:%[0-9]+]]:sreg_64_xexec = S_XOR_B64 [[S_AND_B64_]], [[COPY2]], implicit…
123 ; GCN-NEXT: $exec = S_MOV_B64_term [[S_AND_B64_]]
124 …; GCN-NEXT: [[S_MOV_B64_term:%[0-9]+]]:sreg_64_xexec = S_MOV_B64_term [[S_XOR_B64_]], implicit $…
125 ; GCN-NEXT: S_CBRANCH_EXECZ %bb.1, implicit $exec
126 ; GCN-NEXT: S_BRANCH %bb.2
127 ; GCN-NEXT: {{ $}}
128 ; GCN-NEXT: bb.1:
129 ; GCN-NEXT: successors: %bb.3(0x80000000)
130 ; GCN-NEXT: liveins: $vgpr0, $sgpr4_sgpr5
131 ; GCN-NEXT: {{ $}}
132 ; GCN-NEXT: [[COPY3:%[0-9]+]]:sreg_64_xexec = COPY [[S_MOV_B64_term]]
133 ; GCN-NEXT: S_NOP 0
134 ; GCN-NEXT: $exec = S_OR_B64_term $exec, [[COPY3]], implicit-def $scc
135 ; GCN-NEXT: {{ $}}
136 ; GCN-NEXT: bb.3:
137 ; GCN-NEXT: successors: %bb.2(0x80000000)
138 ; GCN-NEXT: liveins: $vgpr0, $sgpr4_sgpr5
139 ; GCN-NEXT: {{ $}}
140 ; GCN-NEXT: S_SLEEP 3
141 ; GCN-NEXT: S_NOP 0, implicit $vgpr0, implicit $sgpr4_sgpr5
142 ; GCN-NEXT: {{ $}}
143 ; GCN-NEXT: bb.2:
144 ; GCN-NEXT: S_ENDPGM 0
174 ; GCN-LABEL: name: end_cf_split_block_physreg_livein_liveout
175 ; GCN: bb.0:
176 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
177 …; GCN-NEXT: liveins: $vgpr0, $vgpr1, $sgpr30_sgpr31, $sgpr4_sgpr5, $sgpr8_sgpr9_sgpr10_sgpr11:0x…
178 ; GCN-NEXT: {{ $}}
179 ; GCN-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
180 ; GCN-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
181 …; GCN-NEXT: [[V_CMP_EQ_U32_e64_:%[0-9]+]]:sreg_64_xexec = V_CMP_EQ_U32_e64 [[COPY]], [[COPY1]], …
182 ; GCN-NEXT: [[COPY2:%[0-9]+]]:sreg_64 = COPY $exec, implicit-def $exec
183 …; GCN-NEXT: [[S_AND_B64_:%[0-9]+]]:sreg_64 = S_AND_B64 [[COPY2]], [[V_CMP_EQ_U32_e64_]], implici…
184 …; GCN-NEXT: [[S_XOR_B64_:%[0-9]+]]:sreg_64_xexec = S_XOR_B64 [[S_AND_B64_]], [[COPY2]], implicit…
185 ; GCN-NEXT: $exec = S_MOV_B64_term [[S_AND_B64_]]
186 …; GCN-NEXT: [[S_MOV_B64_term:%[0-9]+]]:sreg_64_xexec = S_MOV_B64_term [[S_XOR_B64_]], implicit $…
187 ; GCN-NEXT: S_CBRANCH_EXECZ %bb.1, implicit $exec
188 ; GCN-NEXT: S_BRANCH %bb.2
189 ; GCN-NEXT: {{ $}}
190 ; GCN-NEXT: bb.1:
191 ; GCN-NEXT: successors: %bb.3(0x80000000)
192 ; GCN-NEXT: liveins: $vgpr0, $sgpr4_sgpr5, $sgpr8_sgpr9_sgpr10_sgpr11:0x0000000000000003
193 ; GCN-NEXT: {{ $}}
194 ; GCN-NEXT: [[COPY3:%[0-9]+]]:sreg_64_xexec = COPY [[S_MOV_B64_term]]
195 ; GCN-NEXT: $exec = S_OR_B64_term $exec, [[COPY3]], implicit-def $scc
196 ; GCN-NEXT: {{ $}}
197 ; GCN-NEXT: bb.3:
198 ; GCN-NEXT: successors: %bb.2(0x80000000)
199 ; GCN-NEXT: liveins: $vgpr0, $sgpr4_sgpr5, $sgpr8_sgpr9
200 ; GCN-NEXT: {{ $}}
201 ; GCN-NEXT: S_SLEEP 3
202 ; GCN-NEXT: S_NOP 0
203 ; GCN-NEXT: {{ $}}
204 ; GCN-NEXT: bb.2:
205 ; GCN-NEXT: liveins: $vgpr0, $sgpr4_sgpr5, $sgpr8_sgpr9_sgpr10_sgpr11:0x0000000000000003
206 ; GCN-NEXT: {{ $}}
207 …; GCN-NEXT: S_ENDPGM 0, implicit $vgpr0, implicit $sgpr4_sgpr5, implicit $sgpr8_sgpr9_sgpr10_sgp…
237 ; GCN-LABEL: name: end_cf_split_block_physreg_liveout
238 ; GCN: bb.0:
239 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
240 ; GCN-NEXT: liveins: $vgpr0, $vgpr1, $sgpr30_sgpr31
241 ; GCN-NEXT: {{ $}}
242 ; GCN-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
243 ; GCN-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
244 …; GCN-NEXT: [[V_CMP_EQ_U32_e64_:%[0-9]+]]:sreg_64_xexec = V_CMP_EQ_U32_e64 [[COPY]], [[COPY1]], …
245 ; GCN-NEXT: [[COPY2:%[0-9]+]]:sreg_64 = COPY $exec, implicit-def $exec
246 …; GCN-NEXT: [[S_AND_B64_:%[0-9]+]]:sreg_64 = S_AND_B64 [[COPY2]], [[V_CMP_EQ_U32_e64_]], implici…
247 …; GCN-NEXT: [[S_XOR_B64_:%[0-9]+]]:sreg_64_xexec = S_XOR_B64 [[S_AND_B64_]], [[COPY2]], implicit…
248 ; GCN-NEXT: $exec = S_MOV_B64_term [[S_AND_B64_]]
249 …; GCN-NEXT: [[S_MOV_B64_term:%[0-9]+]]:sreg_64_xexec = S_MOV_B64_term [[S_XOR_B64_]], implicit $…
250 ; GCN-NEXT: S_CBRANCH_EXECZ %bb.1, implicit $exec
251 ; GCN-NEXT: S_BRANCH %bb.2
252 ; GCN-NEXT: {{ $}}
253 ; GCN-NEXT: bb.1:
254 ; GCN-NEXT: successors: %bb.3(0x80000000)
255 ; GCN-NEXT: {{ $}}
256 ; GCN-NEXT: [[COPY3:%[0-9]+]]:sreg_64_xexec = COPY [[S_MOV_B64_term]]
257 ; GCN-NEXT: $exec = S_OR_B64_term $exec, [[COPY3]], implicit-def $scc
258 ; GCN-NEXT: {{ $}}
259 ; GCN-NEXT: bb.3:
260 ; GCN-NEXT: successors: %bb.2(0x80000000)
261 ; GCN-NEXT: {{ $}}
262 ; GCN-NEXT: $vgpr3 = V_MOV_B32_e32 0, implicit $exec
263 ; GCN-NEXT: $sgpr4_sgpr5 = S_MOV_B64 32
264 ; GCN-NEXT: {{ $}}
265 ; GCN-NEXT: bb.2:
266 ; GCN-NEXT: liveins: $vgpr3, $sgpr4_sgpr5
267 ; GCN-NEXT: {{ $}}
268 ; GCN-NEXT: S_ENDPGM 0, implicit $vgpr3, implicit $sgpr4_sgpr5
297 ; GCN-LABEL: name: end_cf_split_block_physreg_live_across_split
298 ; GCN: bb.0:
299 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
300 ; GCN-NEXT: liveins: $vgpr0, $vgpr1, $sgpr30_sgpr31, $sgpr4_sgpr5
301 ; GCN-NEXT: {{ $}}
302 ; GCN-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
303 ; GCN-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
304 …; GCN-NEXT: [[V_CMP_EQ_U32_e64_:%[0-9]+]]:sreg_64_xexec = V_CMP_EQ_U32_e64 [[COPY]], [[COPY1]], …
305 ; GCN-NEXT: [[COPY2:%[0-9]+]]:sreg_64 = COPY $exec, implicit-def $exec
306 …; GCN-NEXT: [[S_AND_B64_:%[0-9]+]]:sreg_64 = S_AND_B64 [[COPY2]], [[V_CMP_EQ_U32_e64_]], implici…
307 …; GCN-NEXT: [[S_XOR_B64_:%[0-9]+]]:sreg_64_xexec = S_XOR_B64 [[S_AND_B64_]], [[COPY2]], implicit…
308 ; GCN-NEXT: $exec = S_MOV_B64_term [[S_AND_B64_]]
309 …; GCN-NEXT: [[S_MOV_B64_term:%[0-9]+]]:sreg_64_xexec = S_MOV_B64_term [[S_XOR_B64_]], implicit $…
310 ; GCN-NEXT: S_CBRANCH_EXECZ %bb.1, implicit $exec
311 ; GCN-NEXT: S_BRANCH %bb.2
312 ; GCN-NEXT: {{ $}}
313 ; GCN-NEXT: bb.1:
314 ; GCN-NEXT: successors: %bb.3(0x80000000)
315 ; GCN-NEXT: liveins: $vgpr0, $sgpr4_sgpr5
316 ; GCN-NEXT: {{ $}}
317 ; GCN-NEXT: [[COPY3:%[0-9]+]]:sreg_64_xexec = COPY [[S_MOV_B64_term]]
318 ; GCN-NEXT: $sgpr4_sgpr5 = S_MOV_B64 32
319 ; GCN-NEXT: $exec = S_OR_B64_term $exec, [[COPY3]], implicit-def $scc
320 ; GCN-NEXT: {{ $}}
321 ; GCN-NEXT: bb.3:
322 ; GCN-NEXT: successors: %bb.2(0x80000000)
323 ; GCN-NEXT: liveins: $vgpr0, $sgpr4_sgpr5
324 ; GCN-NEXT: {{ $}}
325 ; GCN-NEXT: S_SLEEP 3, implicit $sgpr4_sgpr5
326 ; GCN-NEXT: S_NOP 0
327 ; GCN-NEXT: {{ $}}
328 ; GCN-NEXT: bb.2:
329 ; GCN-NEXT: liveins: $vgpr0, $sgpr4_sgpr5
330 ; GCN-NEXT: {{ $}}
331 ; GCN-NEXT: S_ENDPGM 0, implicit $vgpr0, implicit $sgpr4_sgpr5
362 ; GCN-LABEL: name: end_cf_split_block_process_next_inst
363 ; GCN: bb.0:
364 ; GCN-NEXT: successors: %bb.1(0x80000000)
365 ; GCN-NEXT: liveins: $vgpr0, $vgpr1, $vgpr2
366 ; GCN-NEXT: {{ $}}
367 ; GCN-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
368 ; GCN-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
369 ; GCN-NEXT: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr2
370 …; GCN-NEXT: [[V_CMP_EQ_U32_e64_:%[0-9]+]]:sreg_64_xexec = V_CMP_EQ_U32_e64 [[COPY]], [[COPY1]], …
371 …; GCN-NEXT: [[V_CMP_EQ_U32_e64_1:%[0-9]+]]:sreg_64_xexec = V_CMP_EQ_U32_e64 [[COPY]], [[COPY2]],…
372 ; GCN-NEXT: dead %5:sreg_64_xexec = S_MOV_B64 0
373 ; GCN-NEXT: {{ $}}
374 ; GCN-NEXT: bb.1:
375 ; GCN-NEXT: successors: %bb.3(0x80000000)
376 ; GCN-NEXT: {{ $}}
377 ; GCN-NEXT: [[COPY3:%[0-9]+]]:sreg_64_xexec = COPY [[V_CMP_EQ_U32_e64_]]
378 ; GCN-NEXT: $exec = S_OR_B64_term $exec, [[COPY3]], implicit-def $scc
379 ; GCN-NEXT: {{ $}}
380 ; GCN-NEXT: bb.3:
381 ; GCN-NEXT: successors: %bb.2(0x80000000)
382 ; GCN-NEXT: {{ $}}
383 ; GCN-NEXT: [[COPY4:%[0-9]+]]:sreg_64 = COPY $exec, implicit-def $exec
384 …; GCN-NEXT: [[S_AND_B64_:%[0-9]+]]:sreg_64 = S_AND_B64 [[COPY4]], [[V_CMP_EQ_U32_e64_1]], implic…
385 …; GCN-NEXT: [[S_XOR_B64_:%[0-9]+]]:sreg_64_xexec = S_XOR_B64 [[S_AND_B64_]], [[COPY4]], implicit…
386 ; GCN-NEXT: $exec = S_MOV_B64_term [[S_AND_B64_]]
387 ; GCN-NEXT: dead %8:sreg_64_xexec = S_MOV_B64_term [[S_XOR_B64_]], implicit $exec
388 ; GCN-NEXT: S_CBRANCH_EXECZ %bb.2, implicit $exec
389 ; GCN-NEXT: {{ $}}
390 ; GCN-NEXT: bb.2:
391 ; GCN-NEXT: S_ENDPGM 0