48 lines · plain
1; RUN: opt -S -passes=mergefunc < %s | FileCheck %s2 3; CHECK-LABEL: define i32 @func14; CHECK: call i32 @func25; CHECK: ret6 7; CHECK-LABEL: define i32 @func28; CHECK: call i32 @unknown9; CHECK: ret10 11; CHECK-LABEL: define i32 @func412; CHECK: call i32 @func213; CHECK: ret14 15; CHECK-LABEL: define weak i32 @func3_weak16; CHECK: call i32 @func117; CHECK: ret18 19define i32 @func1(i32 %x, i32 %y) {20 %sum = add i32 %x, %y21 %sum2 = add i32 %sum, %y22 %sum3 = call i32 @func4(i32 %sum, i32 %sum2)23 ret i32 %sum324}25 26define i32 @func4(i32 %x, i32 %y) {27 %sum = add i32 %x, %y28 %sum2 = add i32 %sum, %y29 %sum3 = call i32 @unknown(i32 %sum, i32 %sum2)30 ret i32 %sum331}32 33define weak i32 @func3_weak(i32 %x, i32 %y) {34 %sum = add i32 %x, %y35 %sum2 = add i32 %sum, %y36 %sum3 = call i32 @func2(i32 %sum, i32 %sum2)37 ret i32 %sum338}39 40define i32 @func2(i32 %x, i32 %y) {41 %sum = add i32 %x, %y42 %sum2 = add i32 %sum, %y43 %sum3 = call i32 @unknown(i32 %sum, i32 %sum2)44 ret i32 %sum345}46 47declare i32 @unknown(i32 %x, i32 %y)48