brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.5 KiB · e765142 Raw
38 lines · plain
1# RUN: not --crash llc -mtriple=amdgcn -run-pass=none -verify-machineinstrs -filetype=null %s 2>&1 | FileCheck %s2---3name:            basic4tracksRegLiveness: true5body:             |6  bb.0:7    successors: %bb.1, %bb.2;8    %0:sgpr_64 = CONVERGENCECTRL_ANCHOR9    ; CHECK: Entry intrinsic cannot be preceded by a convergent operation in the same basic block.10    ; CHECK: CONVERGENCECTRL_ENTRY11    %1:sgpr_64 = CONVERGENCECTRL_ENTRY12    ; CHECK: Loop intrinsic cannot be preceded by a convergent operation in the same basic block.13    ; CHECK: CONVERGENCECTRL_LOOP14    %2:sgpr_64 = CONVERGENCECTRL_LOOP %0:sgpr_6415    S_CBRANCH_EXECZ %bb.1, implicit $exec16    S_BRANCH %bb.217 18  bb.1:19    successors: %bb.2;20    ; CHECK: Entry intrinsic can occur only in the entry block.21    ; CHECK: CONVERGENCECTRL_ENTRY22    %5:sgpr_64 = CONVERGENCECTRL_ENTRY23 24  bb.2:25    ; CHECK: Convergence control tokens can only be used by convergent operations.26    ; CHECK: G_PHI27    %6:sgpr_64 = G_PHI %0:sgpr_64, %bb.0, %0:sgpr_64, %bb.128    %7:sgpr_64 = CONVERGENCECTRL_ANCHOR29    %8:sgpr_64 = IMPLICIT_DEF30    %4:sgpr_64 = SI_CALL %8:sgpr_64, 1, implicit %7:sgpr_6431    ; CHECK: An operation can use at most one convergence control token.32    ; CHECK: SI_CALL %{{[0-9]}}:sgpr_64, 233    %9:sgpr_64 = SI_CALL %8:sgpr_64, 2, implicit %7:sgpr_64, implicit %7:sgpr_6434    ; CHECK: Cannot mix controlled and uncontrolled convergence in the same function.35    ; CHECK: SI_CALL %{{[0-9]}}:sgpr_64, 336    %10:sgpr_64 = SI_CALL %8:sgpr_64, 337...38