1target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128" 2target triple = "x86_64-pc-linux-gnu" 3 4declare i32 @f1(i32) 5declare i32 @f2(i32) 6 7define i32 @branches(i32) { 8 %cond = icmp slt i32 %0, 3 9 br i1 %cond, label %then, label %else 10 11then: 12 %ret.1 = call i32 @f1(i32 %0) 13 br label %last.block 14 15else: 16 %ret.2 = call i32 @f2(i32 %0) 17 br label %last.block 18 19last.block: 20 %ret = phi i32 [%ret.1, %then], [%ret.2, %else] 21 ret i32 %ret 22} 23 24define internal i32 @top() { 25 %1 = call i32 @branches(i32 2) 26 %2 = call i32 @f1(i32 %1) 27 ret i32 %2 28}