Home | History | Annotate | Download | only in Inline
      1 ; RUN: opt < %s -inline -S | FileCheck %s
      2 ; RUN: opt < %s -passes='cgscc(inline)' -S | FileCheck %s
      3 
      4 declare i1 @extern()
      5 
      6 define internal i32 @test() {
      7 ; CHECK-NOT: define .* @test()
      8 entry:
      9   %n = call i1 @extern()
     10   br i1 %n, label %r, label %u
     11 
     12 r:
     13   ret i32 0
     14 
     15 u:
     16   unreachable
     17 }
     18 
     19 define i32 @caller() {
     20 ; CHECK-LABEL: define i32 @caller()
     21 entry:
     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