brintos

brintos / llvm-project-archived public Read only

0
0
Text · 946 B · 3db4466 Raw
36 lines · plain
1; RUN: llc < %s2 3 4@ok = internal constant [4 x i8] c"%d\0A\00"5@no = internal constant [4 x i8] c"no\0A\00"6 7 8 9define i1 @func2(i128 zeroext %v1, i128 zeroext %v2) nounwind {10entry:11  %t = call {i128, i1} @llvm.uadd.with.overflow.i128(i128 %v1, i128 %v2)12  %sum = extractvalue {i128, i1} %t, 013  %sum32 = trunc i128 %sum to i3214  %obit = extractvalue {i128, i1} %t, 115  br i1 %obit, label %carry, label %normal16 17normal:18  %t1 = tail call i32 (ptr, ...) @printf( ptr @ok, i32 %sum32 ) nounwind19  ret i1 true20 21carry:22  %t2 = tail call i32 (ptr, ...) @printf( ptr @no ) nounwind23  ret i1 false24}25 26declare i32 @printf(ptr, ...) nounwind27declare {i96, i1} @llvm.sadd.with.overflow.i96(i96, i96)28declare {i128, i1} @llvm.uadd.with.overflow.i128(i128, i128)29 30define i1 @func1(i96 signext %v1, i96 signext %v2) nounwind {31entry:32  %t = call {i96, i1} @llvm.sadd.with.overflow.i96(i96 %v1, i96 %v2)33  %obit = extractvalue {i96, i1} %t, 134  ret i1 %obit35}36