; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 5 ; RUN: opt -S -passes=normalize < %s | FileCheck %s ; Function Attrs: convergent nounwind readnone define i32 @nested(i32 %src) #0 { ; CHECK-LABEL: define i32 @nested( ; CHECK-SAME: i32 [[A0:%.*]]) #[[ATTR0:[0-9]+]] { ; CHECK-NEXT: [[BB15160:.*:]] ; CHECK-NEXT: [[T1:%.*]] = call token @llvm.experimental.convergence.entry() ; CHECK-NEXT: %"vl77672llvm.experimental.convergence.anchor()" = call token @llvm.experimental.convergence.anchor() ; CHECK-NEXT: %"op68297(vl77672)" = call i32 @llvm.amdgcn.readfirstlane.i32(i32 [[A0]]) [ "convergencectrl"(token %"vl77672llvm.experimental.convergence.anchor()") ] ; CHECK-NEXT: ret i32 %"op68297(vl77672)" ; %t1 = call token @llvm.experimental.convergence.entry() %t2 = call token @llvm.experimental.convergence.anchor() %r2 = call i32 @llvm.amdgcn.readfirstlane(i32 %src) [ "convergencectrl"(token %t2) ] ret i32 %r2 } ; Function Attrs: convergent nounwind readnone declare i32 @llvm.amdgcn.readfirstlane(i32) #0 declare token @llvm.experimental.convergence.entry() declare token @llvm.experimental.convergence.anchor() attributes #0 = { convergent nounwind readnone }