CS153/hw6/llprograms/factrect.ll

18 lines
314 B
LLVM
Raw Permalink Normal View History

define i64 @factorial(i64 %n) {
%cmp = icmp eq i64 %n, 0
br i1 %cmp, label %ret1, label %recurse
ret1:
ret i64 1
recurse:
%1 = sub i64 %n, 1
%2 = call i64 @factorial(i64 %1)
%3 = mul i64 %n, %2
ret i64 %3
}
define i64 @main(i64 %argc, i8** %arcv) {
%1 = call i64 @factorial(i64 5)
ret i64 %1
}