Add all the assignment code.

Signed-off-by: jmug <u.g.a.mariano@gmail.com>
This commit is contained in:
Mariano Uvalle 2025-01-24 18:59:28 -08:00
parent 58c6b1f81c
commit cfe502c598
1277 changed files with 48709 additions and 1 deletions

View file

@ -0,0 +1,56 @@
define i64 @factorial(i64 %n) {
%1 = alloca i64
%acc = alloca i64
store i64 %n, i64* %1
store i64 1, i64* %acc
br label %start
start:
%2 = load i64, i64* %1
%3 = icmp sgt i64 %2, 0
br i1 %3, label %then, label %end
then:
%4 = load i64, i64* %acc
%5 = load i64, i64* %1
%6 = mul i64 %4, %5
store i64 %6, i64* %acc
%7 = load i64, i64* %1
%8 = sub i64 %7, 1
store i64 %8, i64* %1
br label %start
end:
%9 = load i64, i64* %acc
ret i64 %9
}
define i64 @factorial2(i64 %n) {
%1 = alloca i64
%acc = alloca i64
store i64 %n, i64* %1
store i64 1, i64* %acc
br label %start
start:
%2 = load i64, i64* %1
%3 = icmp sgt i64 %2, 0
br i1 %3, label %then, label %end
then:
%4 = load i64, i64* %acc
%5 = load i64, i64* %1
%6 = mul i64 %4, %5
store i64 %6, i64* %acc
%7 = load i64, i64* %1
%8 = sub i64 %7, 1
store i64 %8, i64* %1
br label %start
end:
%9 = load i64, i64* %acc
ret i64 %9
}
define i64 @main(i64 %argc, i8** %arcv) {
%1 = alloca i64
store i64 0, i64* %1
%2 = call i64 @factorial(i64 5)
%3 = call i64 @factorial2(i64 5)
%4 = add i64 %2, %3
ret i64 %4
}