53 lines · plain
1# RUN: not --crash llc -mtriple=amdgcn -run-pass=none -verify-machineinstrs -filetype=null %s 2>&1 | FileCheck %s2---3name: cycles4body: |5 bb.0:6 %0:sgpr_64 = CONVERGENCECTRL_ANCHOR7 %1:sgpr_64 = IMPLICIT_DEF8 S_CBRANCH_EXECZ %bb.9, implicit $exec9 S_BRANCH %bb.110 11 bb.1:12 S_CBRANCH_EXECZ %bb.8, implicit $exec13 S_BRANCH %bb.514 15 bb.2:16 S_CBRANCH_EXECZ %bb.3, implicit $exec17 S_BRANCH %bb.418 19 bb.3:20 ; CHECK: Cycle heart must dominate all blocks in the cycle.21 ; Irreducible cycle: entries(bb.4 bb.3)22 %3:sgpr_64 = CONVERGENCECTRL_LOOP %0:sgpr_6423 S_BRANCH %bb.424 25 bb.4:26 S_BRANCH %bb.327 28 bb.5:29 S_CBRANCH_EXECZ %bb.6, implicit $exec30 S_BRANCH %bb.231 32 bb.6:33 S_BRANCH %bb.734 35 bb.7:36 ; CHECK: Cycle heart must dominate all blocks in the cycle.37 ; Reducible cycle: entries(bb.6) bb.738 %4:sgpr_64 = CONVERGENCECTRL_LOOP %0:sgpr_6439 S_BRANCH %bb.640 41 bb.8:42 ; CHECK: Two static convergence token uses in a cycle that does not contain either token's definition.43 %5:sgpr_64 = CONVERGENCECTRL_LOOP %0:sgpr_6444 %6:sgpr_64 = CONVERGENCECTRL_LOOP %0:sgpr_6445 S_BRANCH %bb.846 47 bb.9:48 ; CHECK: Convergence token used by an instruction other than llvm.experimental.convergence.loop in a cycle that does not contain the token's definition.49 %7:sgpr_64 = G_SI_CALL %1:sgpr_64, 3, implicit %0:sgpr_6450 S_BRANCH %bb.951 52...53