brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.2 KiB · a973722 Raw
43 lines · plain
1; RUN: llvm-dis < %s.bc | FileCheck %s2 3define void @loop_nesting(i1 %arg) convergent {4A:5  ; CHECK-LABEL: A:6  ; CHECK: [[A:%.*]] = call token @llvm.experimental.convergence.entry()7  ;8  %a = call token @llvm.experimental.convergence.entry()9  br label %B10 11B:12  ; CHECK-LABEL: B:13  ; CHECK: [[B:%.*]] = call token @llvm.experimental.convergence.anchor()14  ;15  %b = call token @llvm.experimental.convergence.anchor()16  br i1 %arg, label %C, label %D17 18C:19  ; CHECK-LABEL: C:20  ; CHECK: [[C:%.*]] = call token @llvm.experimental.convergence.loop() [ "convergencectrl"(token [[B]]) ]21  ; CHEC K: call void @f() [ "convergencectrl"(token [[C]]) ]22  ;23  %c = call token @llvm.experimental.convergence.loop() [ "convergencectrl"(token %b) ]24  call void @f() [ "convergencectrl"(token %c) ]25  br label %B26 27D:28  ; CHECK-LABEL: D:29  ; CHECK:  call void @f() [ "convergencectrl"(token [[B]]) ]30  ;31  call void @f() [ "convergencectrl"(token %b) ]32  br i1 %arg, label %B, label %E33 34E:35  ret void36}37 38declare void @f() convergent39 40declare token @llvm.experimental.convergence.entry()41declare token @llvm.experimental.convergence.anchor()42declare token @llvm.experimental.convergence.loop()43