1 declare {i32, i1} @llvm.sadd.with.overflow.i32(i32 %a, i32 %b)
3 define i32 @add(i32, i32) {
5 %l0 = icmp ne i32 %l, 0
6 br i1 %l0, label %undef, label %go1
9 %r0 = icmp ne i32 %r, 0
10 br i1 %r0, label %undef, label %go2
14 %res = call {i32, i1} @llvm.sadd.with.overflow.i32(i32 %3, i32 %4)
15 %5 = extractvalue {i32, i1} %res, 0
16 %ov = extractvalue {i32, i1} %res, 1
17 br i1 %ov, label %undef, label %go3
26 define i32 @add3(i32, i32, i32) {
27 %4 = call i32 @add(i32 %0, i32 %1)
28 %5 = call i32 @add(i32 %4, i32 %2)