brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.8 KiB · 6e4a287 Raw
50 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py2; RUN: opt < %s -passes='module(coro-early),cgscc(coro-split),function(simplifycfg,early-cse)' -S | FileCheck %s3target datalayout = "E-p:64:64"4 5%swift.type = type { i64 }6%swift.opaque = type opaque7%T4red215EmptyCollectionV = type opaque8%TSi = type <{ i64 }>9 10define hidden swiftcc { ptr, ptr } @no_suspends(ptr %buffer, i64 %arg) #1 {11; CHECK-LABEL: @no_suspends(12; CHECK-NEXT:  AllocaSpillBB:13; CHECK-NEXT:    [[ID:%.*]] = call token @llvm.coro.id.retcon.once(i32 32, i32 8, ptr [[BUFFER:%.*]], ptr @prototype, ptr @malloc, ptr @free)14; CHECK-NEXT:    call void @print(i64 [[ARG:%.*]])15; CHECK-NEXT:    call void @llvm.trap()16; CHECK-NEXT:    unreachable17;18  %id = call token @llvm.coro.id.retcon.once(i32 32, i32 8, ptr %buffer, ptr @prototype, ptr @malloc, ptr @free)19  %begin = call ptr @llvm.coro.begin(token %id, ptr null)20  call void @print(i64 %arg)21  call void @llvm.trap()22  unreachable23 24bb1:25  call void @print(i64 %arg)26  call void @llvm.coro.end(ptr %begin, i1 false, token none)27  unreachable28}29 30declare swiftcc void @prototype(ptr noalias dereferenceable(32), i1)31declare void @print(i64)32 33declare noalias ptr @malloc(i64) #534declare void @free(ptr nocapture) #535 36declare token @llvm.coro.id.retcon.once(i32, i32, ptr, ptr, ptr, ptr) #537declare ptr @llvm.coro.begin(token, ptr writeonly) #538declare token @llvm.coro.alloca.alloc.i64(i64, i32) #539declare ptr @llvm.coro.alloca.get(token) #540declare void @llvm.lifetime.start.p0(ptr nocapture) #641declare i1 @llvm.coro.suspend.retcon.i1(...) #542declare void @llvm.lifetime.end.p0(ptr nocapture) #643declare void @llvm.coro.alloca.free(token) #544declare void @llvm.coro.end(ptr, i1, token) #545 46declare void @llvm.trap()47 48attributes #1 = { noreturn nounwind }49attributes #5 = { nounwind }50