Updated hw6 to a newer version
Signed-off-by: jmug <u.g.a.mariano@gmail.com>
This commit is contained in:
parent
9224001a22
commit
0c04936ccf
356 changed files with 8408 additions and 4725 deletions
27
hw6/llprograms/sp22_hw3/collatz.ll
Normal file
27
hw6/llprograms/sp22_hw3/collatz.ll
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
define i64 @collatz(i64 %n) {
|
||||
%cmp = icmp sgt i64 %n, 1
|
||||
br i1 %cmp, label %then, label %ret0
|
||||
then:
|
||||
%4 = shl i64 %n, 63
|
||||
%5 = ashr i64 %4, 63
|
||||
%6 = icmp eq i64 %5, 0
|
||||
br i1 %6, label %even, label %odd
|
||||
ret0:
|
||||
ret i64 0
|
||||
even:
|
||||
%7 = ashr i64 %n, 1
|
||||
%8 = call i64 @collatz(i64 %7)
|
||||
%9 = add i64 %8, 1
|
||||
ret i64 %9
|
||||
odd:
|
||||
%7 = mul i64 3, %n
|
||||
%8 = add i64 1, %7
|
||||
%9 = call i64 @collatz(i64 %8)
|
||||
%10 = add i64 1, %9
|
||||
ret i64 %10
|
||||
}
|
||||
|
||||
define i64 @main(i64 %argc, i8** %arcv) {
|
||||
%1 = call i64 @collatz(i64 7426)
|
||||
ret i64 %1
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue