• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1; RUN: opt < %s -inline -S | FileCheck %s
2; RUN: opt < %s -passes='cgscc(inline)' -S | FileCheck %s
3
4declare i1 @extern()
5
6define internal i32 @test() {
7; CHECK-NOT: define .* @test()
8entry:
9  %n = call i1 @extern()
10  br i1 %n, label %r, label %u
11
12r:
13  ret i32 0
14
15u:
16  unreachable
17}
18
19define i32 @caller() {
20; CHECK-LABEL: define i32 @caller()
21entry:
22  %X = call i32 @test() nounwind
23; CHECK-NOT: call i32 @test()
24; CHECK: call i1 @extern() #0
25; CHECK: br i1 %{{.*}}, label %[[R:.*]], label %[[U:.*]]
26
27; CHECK: [[U]]:
28; CHECK:   unreachable
29
30; CHECK: [[R]]:
31  ret i32 %X
32; CHECK:   ret i32 0
33}
34
35; CHECK: attributes #0 = { nounwind }
36