data $___cnst0 = { b "fib(%d) = %d\n", b 0 }
function w $fib(w %___tmpvar0) {
@start
%n =l alloc4 4
storew %___tmpvar0, %n

%___tmpvar3 =w loadw %n
%___tmpvar2 =w cslew %___tmpvar3, 1
jnz %___tmpvar2, @___tmplbl1, @___tmplbl2
@___tmplbl1
%___tmpvar4 =w loadw %n
%___tmpvar1 =w copy %___tmpvar4
jmp @___tmplbl0
@___tmplbl2
jmp @___tmplbl3
@___tmplbl3
%___tmpvar8 =w loadw %n
%___tmpvar7 =w sub %___tmpvar8, 1
%___tmpvar6 =w call $fib(w %___tmpvar7)
%___tmpvar11 =w loadw %n
%___tmpvar10 =w sub %___tmpvar11, 2
%___tmpvar9 =w call $fib(w %___tmpvar10)
%___tmpvar5 =w add %___tmpvar6, %___tmpvar9
%___tmpvar1 =w copy %___tmpvar5
jmp @___tmplbl0
@___tmplbl0
ret %___tmpvar1
}
function  $_main() {
@start

%i =l alloc4 4
storew 0, %i
@___tmplbl0
%___tmpvar4 =w loadw %i
%___tmpvar3 =w csltw %___tmpvar4, 40
jnz %___tmpvar3, @___tmplbl1, @___tmplbl2
@___tmplbl1

%___tmpvar0 =w loadw %i
%___tmpvar2 =w loadw %i
%___tmpvar1 =w call $fib(w %___tmpvar2)
call $printf(l $___cnst0, ..., w %___tmpvar0, w %___tmpvar1)
%___tmpvar6 =w loadw %i
%___tmpvar5 =w add %___tmpvar6, 1
storew %___tmpvar5, %i
jmp @___tmplbl0
@___tmplbl2
ret
}


export function w $main() {
@start
  call $_main()
  ret 0
}