xref: /llvm-project/llvm/test/Transforms/Inline/deoptimize-intrinsic-attrs.ll (revision e5369823bc0655806469724335d0ca5a4c17d8c7)
1; RUN: opt -S -passes=always-inline < %s | FileCheck %s
2
3declare cc42 i32 @llvm.experimental.deoptimize.i32(...)
4
5define i32 @callee_with_coldcc() alwaysinline {
6  %v0 = call cc42 i32(...) @llvm.experimental.deoptimize.i32(i32 1) #0 [ "deopt"() ]
7  ret i32 %v0
8}
9
10define void @caller_with_coldcc() {
11; CHECK-LABEL: @caller_with_coldcc(
12; CHECK-NEXT:  call cc42 void (...) @llvm.experimental.deoptimize.isVoid(i32 1) #1 [ "deopt"() ]
13; CHECK-NEXT:  ret void
14
15  %val = call i32 @callee_with_coldcc()
16  ret void
17}
18
19attributes #0 = { "deopt-lowering"="live-in" }
20
21; CHECK: declare cc42 void @llvm.experimental.deoptimize.isVoid(...)
22; CHECK: attributes #1 = { "deopt-lowering"="live-in" }
23