PR #75982 had been created before these tests were added, therefore some test were not updated.
53 lines
1.4 KiB
YAML
53 lines
1.4 KiB
YAML
# RUN: not --crash llc -mtriple=amdgcn -run-pass=none -verify-machineinstrs -o /dev/null %s 2>&1 | FileCheck %s
|
|
---
|
|
name: cycles
|
|
body: |
|
|
bb.0:
|
|
%0:sgpr_64 = CONVERGENCECTRL_ANCHOR
|
|
%1:sgpr_64 = IMPLICIT_DEF
|
|
S_CBRANCH_EXECZ %bb.9, implicit $exec
|
|
S_BRANCH %bb.1
|
|
|
|
bb.1:
|
|
S_CBRANCH_EXECZ %bb.8, implicit $exec
|
|
S_BRANCH %bb.5
|
|
|
|
bb.2:
|
|
S_CBRANCH_EXECZ %bb.3, implicit $exec
|
|
S_BRANCH %bb.4
|
|
|
|
bb.3:
|
|
; CHECK: Cycle heart must dominate all blocks in the cycle.
|
|
; Irreducible cycle: entries(bb.4 bb.3)
|
|
%3:sgpr_64 = CONVERGENCECTRL_LOOP %0:sgpr_64
|
|
S_BRANCH %bb.4
|
|
|
|
bb.4:
|
|
S_BRANCH %bb.3
|
|
|
|
bb.5:
|
|
S_CBRANCH_EXECZ %bb.6, implicit $exec
|
|
S_BRANCH %bb.2
|
|
|
|
bb.6:
|
|
S_BRANCH %bb.7
|
|
|
|
bb.7:
|
|
; CHECK: Cycle heart must dominate all blocks in the cycle.
|
|
; Reducible cycle: entries(bb.6) bb.7
|
|
%4:sgpr_64 = CONVERGENCECTRL_LOOP %0:sgpr_64
|
|
S_BRANCH %bb.6
|
|
|
|
bb.8:
|
|
; CHECK: Two static convergence token uses in a cycle that does not contain either token's definition.
|
|
%5:sgpr_64 = CONVERGENCECTRL_LOOP %0:sgpr_64
|
|
%6:sgpr_64 = CONVERGENCECTRL_LOOP %0:sgpr_64
|
|
S_BRANCH %bb.8
|
|
|
|
bb.9:
|
|
; CHECK: Convergence token used by an instruction other than llvm.experimental.convergence.loop in a cycle that does not contain the token's definition.
|
|
%7:sgpr_64 = G_SI_CALL %1:sgpr_64, 3, implicit %0:sgpr_64
|
|
S_BRANCH %bb.9
|
|
|
|
...
|