1(module 2 (func $fib (export "fib") (param $n i32) (result i32) 3 (if (result i32) 4 (i32.eq 5 (i32.const 0) 6 (local.get $n) 7 ) 8 (then 9 (i32.const 1) 10 ) 11 (else 12 (if (result i32) 13 (i32.eq 14 (i32.const 1) 15 (local.get $n) 16 ) 17 (then 18 (i32.const 1) 19 ) 20 (else 21 (i32.add 22 ;; fib(n - 1) 23 (call $fib 24 (i32.add 25 (local.get $n) 26 (i32.const -1) 27 ) 28 ) 29 ;; fib(n - 2) 30 (call $fib 31 (i32.add 32 (local.get $n) 33 (i32.const -2) 34 ) 35 ) 36 ) 37 ) 38 ) 39 ) 40 ) 41 ) 42) 43 44(assert_return (invoke "fib" (i32.const 0)) (i32.const 1)) 45(assert_return (invoke "fib" (i32.const 1)) (i32.const 1)) 46(assert_return (invoke "fib" (i32.const 2)) (i32.const 2)) 47(assert_return (invoke "fib" (i32.const 3)) (i32.const 3)) 48(assert_return (invoke "fib" (i32.const 4)) (i32.const 5)) 49(assert_return (invoke "fib" (i32.const 5)) (i32.const 8)) 50(assert_return (invoke "fib" (i32.const 6)) (i32.const 13)) 51(assert_return (invoke "fib" (i32.const 7)) (i32.const 21)) 52(assert_return (invoke "fib" (i32.const 8)) (i32.const 34)) 53(assert_return (invoke "fib" (i32.const 9)) (i32.const 55)) 54(assert_return (invoke "fib" (i32.const 10)) (i32.const 89)) 55 56;; Generated by Rust. 57(module 58 (func $fib (export "fib") (param $p0 i32) (result i32) 59 (local $l1 i32) 60 (local.set $l1 61 (i32.const 1)) 62 (block $B0 63 (br_if $B0 64 (i32.lt_u 65 (local.get $p0) 66 (i32.const 2))) 67 (local.set $l1 68 (i32.const 1)) 69 (loop $L1 70 (local.set $l1 71 (i32.add 72 (call $fib 73 (i32.add 74 (local.get $p0) 75 (i32.const -1))) 76 (local.get $l1))) 77 (br_if $L1 78 (i32.gt_u 79 (local.tee $p0 80 (i32.add 81 (local.get $p0) 82 (i32.const -2))) 83 (i32.const 1))))) 84 (local.get $l1)) 85) 86 87(assert_return (invoke "fib" (i32.const 0)) (i32.const 1)) 88(assert_return (invoke "fib" (i32.const 1)) (i32.const 1)) 89(assert_return (invoke "fib" (i32.const 2)) (i32.const 2)) 90(assert_return (invoke "fib" (i32.const 3)) (i32.const 3)) 91(assert_return (invoke "fib" (i32.const 4)) (i32.const 5)) 92(assert_return (invoke "fib" (i32.const 5)) (i32.const 8)) 93(assert_return (invoke "fib" (i32.const 6)) (i32.const 13)) 94(assert_return (invoke "fib" (i32.const 7)) (i32.const 21)) 95(assert_return (invoke "fib" (i32.const 8)) (i32.const 34)) 96(assert_return (invoke "fib" (i32.const 9)) (i32.const 55)) 97(assert_return (invoke "fib" (i32.const 10)) (i32.const 89)) 98