1 ; RUN: opt -passes=inline -S < %s | FileCheck %s
3 ; This will inline @f1 into @a, causing two new calls to @f2, which will get inlined for two calls to @f1.
4 ; The inline history should stop recursive inlining here, and make sure to mark the inlined calls as noinline so we don't repeat the inlining later on when @a gets inlined into @b.
6 define internal void @f1(ptr %p) {
11 define internal void @f2(ptr %p) {
18 ; CHECK-LABEL: define void @b() {
19 ; CHECK-NEXT: call void @f1(ptr @f2) #[[NOINLINE:[0-9]+]]
20 ; CHECK-NEXT: call void @f1(ptr @f2) #[[NOINLINE]]
21 ; CHECK-NEXT: ret void
27 define internal void @a() {
28 call void @f1(ptr @f2)
32 ; CHECK: [[NOINLINE]] = { noinline }