// Rust test file autogenerated with cargo build (src/build_spectests.rs).
// Please do NOT modify it by hand, as it will be reseted on next build.
// Test based on spectests/loop_.wast
#![allow(
    warnings,
    dead_code
)]
use std::panic;
use wabt::wat2wasm;

use crate::webassembly::{instantiate, compile, ImportObject, ResultObject, Instance, Export};
use super::_common::{
    spectest_importobject,
    NaNCheck,
};


// Line 3
fn create_module_1() -> ResultObject {
    let module_str = "(module
      (type (;0;) (func (param i32 i32) (result i32)))
      (type (;1;) (func))
      (type (;2;) (func (result i32)))
      (type (;3;) (func (param i32) (result i32)))
      (type (;4;) (func (param i64) (result i64)))
      (type (;5;) (func (param f32 f32) (result f32)))
      (func (;0;) (type 1))
      (func (;1;) (type 1)
        loop  ;; label = @1
        end
        loop  ;; label = @1
        end)
      (func (;2;) (type 2) (result i32)
        loop  ;; label = @1
          nop
        end
        loop (result i32)  ;; label = @1
          i32.const 7
        end)
      (func (;3;) (type 2) (result i32)
        loop  ;; label = @1
          call 0
          call 0
          call 0
          call 0
        end
        loop (result i32)  ;; label = @1
          call 0
          call 0
          call 0
          i32.const 8
        end)
      (func (;4;) (type 2) (result i32)
        loop (result i32)  ;; label = @1
          loop  ;; label = @2
            call 0
            block  ;; label = @3
            end
            nop
          end
          loop (result i32)  ;; label = @2
            call 0
            i32.const 9
          end
        end)
      (func (;5;) (type 2) (result i32)
        loop (result i32)  ;; label = @1
          block (result i32)  ;; label = @2
            loop (result i32)  ;; label = @3
              block (result i32)  ;; label = @4
                loop (result i32)  ;; label = @5
                  block (result i32)  ;; label = @6
                    loop (result i32)  ;; label = @7
                      block (result i32)  ;; label = @8
                        loop (result i32)  ;; label = @9
                          block (result i32)  ;; label = @10
                            loop (result i32)  ;; label = @11
                              block (result i32)  ;; label = @12
                                loop (result i32)  ;; label = @13
                                  block (result i32)  ;; label = @14
                                    loop (result i32)  ;; label = @15
                                      block (result i32)  ;; label = @16
                                        loop (result i32)  ;; label = @17
                                          block (result i32)  ;; label = @18
                                            loop (result i32)  ;; label = @19
                                              block (result i32)  ;; label = @20
                                                loop (result i32)  ;; label = @21
                                                  block (result i32)  ;; label = @22
                                                    loop (result i32)  ;; label = @23
                                                      block (result i32)  ;; label = @24
                                                        loop (result i32)  ;; label = @25
                                                          block (result i32)  ;; label = @26
                                                            loop (result i32)  ;; label = @27
                                                              block (result i32)  ;; label = @28
                                                                loop (result i32)  ;; label = @29
                                                                  block (result i32)  ;; label = @30
                                                                    loop (result i32)  ;; label = @31
                                                                      block (result i32)  ;; label = @32
                                                                        loop (result i32)  ;; label = @33
                                                                          block (result i32)  ;; label = @34
                                                                            loop (result i32)  ;; label = @35
                                                                              block (result i32)  ;; label = @36
                                                                                loop (result i32)  ;; label = @37
                                                                                  block (result i32)  ;; label = @38
                                                                                    loop (result i32)  ;; label = @39
                                                                                      block (result i32)  ;; label = @40
                                                                                        call 0
                                                                                        i32.const 150
                                                                                      end
                                                                                    end
                                                                                  end
                                                                                end
                                                                              end
                                                                            end
                                                                          end
                                                                        end
                                                                      end
                                                                    end
                                                                  end
                                                                end
                                                              end
                                                            end
                                                          end
                                                        end
                                                      end
                                                    end
                                                  end
                                                end
                                              end
                                            end
                                          end
                                        end
                                      end
                                    end
                                  end
                                end
                              end
                            end
                          end
                        end
                      end
                    end
                  end
                end
              end
            end
          end
        end)
      (func (;6;) (type 2) (result i32)
        loop (result i32)  ;; label = @1
          i32.const 1
        end
        i32.const 2
        i32.const 3
        select)
      (func (;7;) (type 2) (result i32)
        i32.const 2
        loop (result i32)  ;; label = @1
          i32.const 1
        end
        i32.const 3
        select)
      (func (;8;) (type 2) (result i32)
        i32.const 2
        i32.const 3
        loop (result i32)  ;; label = @1
          i32.const 1
        end
        select)
      (func (;9;) (type 1)
        loop (result i32)  ;; label = @1
          i32.const 1
        end
        if  ;; label = @1
          call 0
        end)
      (func (;10;) (type 2) (result i32)
        i32.const 1
        if (result i32)  ;; label = @1
          loop (result i32)  ;; label = @2
            i32.const 1
          end
        else
          i32.const 2
        end)
      (func (;11;) (type 2) (result i32)
        i32.const 1
        if (result i32)  ;; label = @1
          i32.const 2
        else
          loop (result i32)  ;; label = @2
            i32.const 1
          end
        end)
      (func (;12;) (type 2) (result i32)
        block (result i32)  ;; label = @1
          loop (result i32)  ;; label = @2
            i32.const 1
          end
          i32.const 2
          br_if 0 (;@1;)
        end)
      (func (;13;) (type 2) (result i32)
        block (result i32)  ;; label = @1
          i32.const 2
          loop (result i32)  ;; label = @2
            i32.const 1
          end
          br_if 0 (;@1;)
        end)
      (func (;14;) (type 2) (result i32)
        block (result i32)  ;; label = @1
          loop (result i32)  ;; label = @2
            i32.const 1
          end
          i32.const 2
          br_table 0 (;@1;) 0 (;@1;)
        end)
      (func (;15;) (type 2) (result i32)
        block (result i32)  ;; label = @1
          i32.const 2
          loop (result i32)  ;; label = @2
            i32.const 1
          end
          br_table 0 (;@1;) 0 (;@1;)
        end)
      (func (;16;) (type 0) (param i32 i32) (result i32)
        get_local 0)
      (func (;17;) (type 2) (result i32)
        block (result i32)  ;; label = @1
          loop (result i32)  ;; label = @2
            i32.const 1
          end
          i32.const 2
          i32.const 0
          call_indirect (type 0)
        end)
      (func (;18;) (type 2) (result i32)
        block (result i32)  ;; label = @1
          i32.const 2
          loop (result i32)  ;; label = @2
            i32.const 1
          end
          i32.const 0
          call_indirect (type 0)
        end)
      (func (;19;) (type 2) (result i32)
        block (result i32)  ;; label = @1
          i32.const 1
          i32.const 2
          loop (result i32)  ;; label = @2
            i32.const 0
          end
          call_indirect (type 0)
        end)
      (func (;20;) (type 1)
        loop (result i32)  ;; label = @1
          i32.const 1
        end
        i32.const 1
        i32.store)
      (func (;21;) (type 1)
        i32.const 10
        loop (result i32)  ;; label = @1
          i32.const 1
        end
        i32.store)
      (func (;22;) (type 2) (result i32)
        loop (result i32)  ;; label = @1
          i32.const 1
        end
        memory.grow)
      (func (;23;) (type 3) (param i32) (result i32)
        get_local 0)
      (func (;24;) (type 2) (result i32)
        loop (result i32)  ;; label = @1
          i32.const 1
        end
        call 23)
      (func (;25;) (type 2) (result i32)
        loop (result i32)  ;; label = @1
          i32.const 1
        end
        return)
      (func (;26;) (type 1)
        loop (result i32)  ;; label = @1
          i32.const 1
        end
        drop)
      (func (;27;) (type 2) (result i32)
        block (result i32)  ;; label = @1
          loop (result i32)  ;; label = @2
            i32.const 1
          end
          br 0 (;@1;)
        end)
      (func (;28;) (type 2) (result i32)
        (local i32)
        loop (result i32)  ;; label = @1
          i32.const 1
        end
        set_local 0
        get_local 0)
      (func (;29;) (type 2) (result i32)
        (local i32)
        loop (result i32)  ;; label = @1
          i32.const 1
        end
        tee_local 0)
      (func (;30;) (type 2) (result i32)
        loop (result i32)  ;; label = @1
          i32.const 1
        end
        set_global 0
        get_global 0)
      (func (;31;) (type 2) (result i32)
        loop (result i32)  ;; label = @1
          i32.const 1
        end
        i32.load)
      (func (;32;) (type 2) (result i32)
        loop (result i32)  ;; label = @1
          call 0
          i32.const 13
        end
        i32.ctz)
      (func (;33;) (type 2) (result i32)
        loop (result i32)  ;; label = @1
          call 0
          i32.const 3
        end
        loop (result i32)  ;; label = @1
          call 0
          i32.const 4
        end
        i32.mul)
      (func (;34;) (type 2) (result i32)
        loop (result i32)  ;; label = @1
          call 0
          i32.const 13
        end
        i32.eqz)
      (func (;35;) (type 2) (result i32)
        loop (result f32)  ;; label = @1
          call 0
          f32.const 0x1.8p+1 (;=3;)
        end
        loop (result f32)  ;; label = @1
          call 0
          f32.const 0x1.8p+1 (;=3;)
        end
        f32.gt)
      (func (;36;) (type 2) (result i32)
        block  ;; label = @1
          loop  ;; label = @2
            br 1 (;@1;)
            br 0 (;@2;)
            unreachable
          end
        end
        block  ;; label = @1
          loop  ;; label = @2
            i32.const 1
            br_if 1 (;@1;)
            unreachable
          end
        end
        block  ;; label = @1
          loop  ;; label = @2
            i32.const 0
            br_table 1 (;@1;)
            unreachable
          end
        end
        block  ;; label = @1
          loop  ;; label = @2
            i32.const 1
            br_table 1 (;@1;) 1 (;@1;) 1 (;@1;)
            unreachable
          end
        end
        i32.const 19)
      (func (;37;) (type 2) (result i32)
        block (result i32)  ;; label = @1
          loop (result i32)  ;; label = @2
            i32.const 18
            br 1 (;@1;)
            br 0 (;@2;)
            i32.const 19
          end
        end)
      (func (;38;) (type 2) (result i32)
        block (result i32)  ;; label = @1
          loop (result i32)  ;; label = @2
            i32.const 18
            br 1 (;@1;)
            i32.const 19
            br 1 (;@1;)
            i32.const 20
            i32.const 0
            br_if 1 (;@1;)
            drop
            i32.const 20
            i32.const 1
            br_if 1 (;@1;)
            drop
            i32.const 21
            br 1 (;@1;)
            i32.const 22
            i32.const 0
            br_table 1 (;@1;)
            i32.const 23
            i32.const 1
            br_table 1 (;@1;) 1 (;@1;) 1 (;@1;)
            i32.const 21
          end
        end)
      (func (;39;) (type 2) (result i32)
        (local i32)
        i32.const 0
        set_local 0
        get_local 0
        block (result i32)  ;; label = @1
          loop (result i32)  ;; label = @2
            block (result i32)  ;; label = @3
              i32.const 1
              br 2 (;@1;)
            end
          end
        end
        i32.add
        set_local 0
        get_local 0
        block (result i32)  ;; label = @1
          loop (result i32)  ;; label = @2
            loop (result i32)  ;; label = @3
              i32.const 2
              br 2 (;@1;)
            end
          end
        end
        i32.add
        set_local 0
        get_local 0
        block (result i32)  ;; label = @1
          loop (result i32)  ;; label = @2
            block (result i32)  ;; label = @3
              loop (result i32)  ;; label = @4
                i32.const 4
                br 1 (;@3;)
              end
            end
          end
        end
        i32.add
        set_local 0
        get_local 0
        block (result i32)  ;; label = @1
          loop (result i32)  ;; label = @2
            i32.const 8
            br 1 (;@1;)
            i32.ctz
          end
        end
        i32.add
        set_local 0
        get_local 0
        block (result i32)  ;; label = @1
          loop (result i32)  ;; label = @2
            loop (result i32)  ;; label = @3
              i32.const 16
              br 2 (;@1;)
            end
            i32.ctz
          end
        end
        i32.add
        set_local 0
        get_local 0)
      (func (;40;) (type 2) (result i32)
        (local i32)
        i32.const 0
        set_local 0
        get_local 0
        loop (result i32)  ;; label = @1
          loop (result i32)  ;; label = @2
            br 1 (;@1;)
          end
        end
        i32.add
        set_local 0
        get_local 0
        loop (result i32)  ;; label = @1
          br 0 (;@1;)
          i32.ctz
        end
        i32.add
        set_local 0
        get_local 0
        loop (result i32)  ;; label = @1
          loop (result i32)  ;; label = @2
            br 1 (;@1;)
          end
          i32.ctz
        end
        i32.add
        set_local 0
        get_local 0)
      (func (;41;) (type 2) (result i32)
        (local i32)
        block  ;; label = @1
          loop  ;; label = @2
            i32.const 1
            set_local 0
            get_local 0
            i32.const 3
            i32.mul
            set_local 0
            get_local 0
            i32.const 5
            i32.sub
            set_local 0
            get_local 0
            i32.const 7
            i32.mul
            set_local 0
            br 1 (;@1;)
            get_local 0
            i32.const 100
            i32.mul
            set_local 0
          end
        end
        get_local 0
        i32.const -14
        i32.eq)
      (func (;42;) (type 4) (param i64) (result i64)
        (local i64)
        i64.const 1
        set_local 1
        block  ;; label = @1
          loop  ;; label = @2
            get_local 0
            i64.eqz
            br_if 1 (;@1;)
            get_local 0
            get_local 1
            i64.mul
            set_local 1
            get_local 0
            i64.const 1
            i64.sub
            set_local 0
            br 0 (;@2;)
          end
        end
        get_local 1)
      (func (;43;) (type 4) (param i64) (result i64)
        (local i64 i64)
        i64.const 1
        set_local 1
        i64.const 2
        set_local 2
        block  ;; label = @1
          loop  ;; label = @2
            get_local 2
            get_local 0
            i64.gt_u
            br_if 1 (;@1;)
            get_local 1
            get_local 2
            i64.mul
            set_local 1
            get_local 2
            i64.const 1
            i64.add
            set_local 2
            br 0 (;@2;)
          end
        end
        get_local 1)
      (func (;44;) (type 5) (param f32 f32) (result f32)
        (local f32 f32)
        block  ;; label = @1
          loop  ;; label = @2
            get_local 0
            f32.const 0x0p+0 (;=0;)
            f32.eq
            br_if 1 (;@1;)
            get_local 1
            set_local 2
            block  ;; label = @3
              loop  ;; label = @4
                get_local 2
                f32.const 0x0p+0 (;=0;)
                f32.eq
                br_if 1 (;@3;)
                get_local 2
                f32.const 0x0p+0 (;=0;)
                f32.lt
                br_if 3 (;@1;)
                get_local 3
                get_local 2
                f32.add
                set_local 3
                get_local 2
                f32.const 0x1p+1 (;=2;)
                f32.sub
                set_local 2
                br 0 (;@4;)
              end
            end
            get_local 3
            get_local 0
            f32.div
            set_local 3
            get_local 0
            f32.const 0x1p+0 (;=1;)
            f32.sub
            set_local 0
            br 0 (;@2;)
          end
        end
        get_local 3)
      (table (;0;) 1 1 anyfunc)
      (memory (;0;) 1)
      (global (;0;) (mut i32) (i32.const 0))
      (export \"empty\" (func 1))
      (export \"singular\" (func 2))
      (export \"multi\" (func 3))
      (export \"nested\" (func 4))
      (export \"deep\" (func 5))
      (export \"as-select-first\" (func 6))
      (export \"as-select-mid\" (func 7))
      (export \"as-select-last\" (func 8))
      (export \"as-if-condition\" (func 9))
      (export \"as-if-then\" (func 10))
      (export \"as-if-else\" (func 11))
      (export \"as-br_if-first\" (func 12))
      (export \"as-br_if-last\" (func 13))
      (export \"as-br_table-first\" (func 14))
      (export \"as-br_table-last\" (func 15))
      (export \"as-call_indirect-first\" (func 17))
      (export \"as-call_indirect-mid\" (func 18))
      (export \"as-call_indirect-last\" (func 19))
      (export \"as-store-first\" (func 20))
      (export \"as-store-last\" (func 21))
      (export \"as-memory.grow-value\" (func 22))
      (export \"as-call-value\" (func 24))
      (export \"as-return-value\" (func 25))
      (export \"as-drop-operand\" (func 26))
      (export \"as-br-value\" (func 27))
      (export \"as-set_local-value\" (func 28))
      (export \"as-tee_local-value\" (func 29))
      (export \"as-set_global-value\" (func 30))
      (export \"as-load-operand\" (func 31))
      (export \"as-unary-operand\" (func 32))
      (export \"as-binary-operand\" (func 33))
      (export \"as-test-operand\" (func 34))
      (export \"as-compare-operand\" (func 35))
      (export \"break-bare\" (func 36))
      (export \"break-value\" (func 37))
      (export \"break-repeated\" (func 38))
      (export \"break-inner\" (func 39))
      (export \"cont-inner\" (func 40))
      (export \"effects\" (func 41))
      (export \"while\" (func 42))
      (export \"for\" (func 43))
      (export \"nesting\" (func 44))
      (elem (;0;) (i32.const 0) 16))
    ";
    let wasm_binary = wat2wasm(module_str.as_bytes()).expect("WAST not valid or malformed");
    instantiate(wasm_binary, spectest_importobject()).expect("WASM can't be instantiated")
}

fn start_module_1(result_object: &ResultObject) {
    result_object.instance.start();
}

// Line 305
fn c1_l305_action_invoke(result_object: &ResultObject) {
    println!("Executing function {}", "c1_l305_action_invoke");
    let func_index = match result_object.module.info.exports.get("empty") {
        Some(&Export::Function(index)) => index,
        _ => panic!("Function not found"),
    };
    let invoke_fn: fn(&Instance) = get_instance_function!(result_object.instance, func_index);
    let result = invoke_fn(&result_object.instance);
    assert_eq!(result, ());
}

// Line 306
fn c2_l306_action_invoke(result_object: &ResultObject) {
    println!("Executing function {}", "c2_l306_action_invoke");
    let func_index = match result_object.module.info.exports.get("singular") {
        Some(&Export::Function(index)) => index,
        _ => panic!("Function not found"),
    };
    let invoke_fn: fn(&Instance) -> i32 = get_instance_function!(result_object.instance, func_index);
    let result = invoke_fn(&result_object.instance);
    assert_eq!(result, 7 as i32);
}

// Line 307
fn c3_l307_action_invoke(result_object: &ResultObject) {
    println!("Executing function {}", "c3_l307_action_invoke");
    let func_index = match result_object.module.info.exports.get("multi") {
        Some(&Export::Function(index)) => index,
        _ => panic!("Function not found"),
    };
    let invoke_fn: fn(&Instance) -> i32 = get_instance_function!(result_object.instance, func_index);
    let result = invoke_fn(&result_object.instance);
    assert_eq!(result, 8 as i32);
}

// Line 308
fn c4_l308_action_invoke(result_object: &ResultObject) {
    println!("Executing function {}", "c4_l308_action_invoke");
    let func_index = match result_object.module.info.exports.get("nested") {
        Some(&Export::Function(index)) => index,
        _ => panic!("Function not found"),
    };
    let invoke_fn: fn(&Instance) -> i32 = get_instance_function!(result_object.instance, func_index);
    let result = invoke_fn(&result_object.instance);
    assert_eq!(result, 9 as i32);
}

// Line 309
fn c5_l309_action_invoke(result_object: &ResultObject) {
    println!("Executing function {}", "c5_l309_action_invoke");
    let func_index = match result_object.module.info.exports.get("deep") {
        Some(&Export::Function(index)) => index,
        _ => panic!("Function not found"),
    };
    let invoke_fn: fn(&Instance) -> i32 = get_instance_function!(result_object.instance, func_index);
    let result = invoke_fn(&result_object.instance);
    assert_eq!(result, 150 as i32);
}

// Line 311
fn c6_l311_action_invoke(result_object: &ResultObject) {
    println!("Executing function {}", "c6_l311_action_invoke");
    let func_index = match result_object.module.info.exports.get("as-select-first") {
        Some(&Export::Function(index)) => index,
        _ => panic!("Function not found"),
    };
    let invoke_fn: fn(&Instance) -> i32 = get_instance_function!(result_object.instance, func_index);
    let result = invoke_fn(&result_object.instance);
    assert_eq!(result, 1 as i32);
}

// Line 312
fn c7_l312_action_invoke(result_object: &ResultObject) {
    println!("Executing function {}", "c7_l312_action_invoke");
    let func_index = match result_object.module.info.exports.get("as-select-mid") {
        Some(&Export::Function(index)) => index,
        _ => panic!("Function not found"),
    };
    let invoke_fn: fn(&Instance) -> i32 = get_instance_function!(result_object.instance, func_index);
    let result = invoke_fn(&result_object.instance);
    assert_eq!(result, 2 as i32);
}

// Line 313
fn c8_l313_action_invoke(result_object: &ResultObject) {
    println!("Executing function {}", "c8_l313_action_invoke");
    let func_index = match result_object.module.info.exports.get("as-select-last") {
        Some(&Export::Function(index)) => index,
        _ => panic!("Function not found"),
    };
    let invoke_fn: fn(&Instance) -> i32 = get_instance_function!(result_object.instance, func_index);
    let result = invoke_fn(&result_object.instance);
    assert_eq!(result, 2 as i32);
}

// Line 315
fn c9_l315_action_invoke(result_object: &ResultObject) {
    println!("Executing function {}", "c9_l315_action_invoke");
    let func_index = match result_object.module.info.exports.get("as-if-condition") {
        Some(&Export::Function(index)) => index,
        _ => panic!("Function not found"),
    };
    let invoke_fn: fn(&Instance) = get_instance_function!(result_object.instance, func_index);
    let result = invoke_fn(&result_object.instance);
    assert_eq!(result, ());
}

// Line 316
fn c10_l316_action_invoke(result_object: &ResultObject) {
    println!("Executing function {}", "c10_l316_action_invoke");
    let func_index = match result_object.module.info.exports.get("as-if-then") {
        Some(&Export::Function(index)) => index,
        _ => panic!("Function not found"),
    };
    let invoke_fn: fn(&Instance) -> i32 = get_instance_function!(result_object.instance, func_index);
    let result = invoke_fn(&result_object.instance);
    assert_eq!(result, 1 as i32);
}

// Line 317
fn c11_l317_action_invoke(result_object: &ResultObject) {
    println!("Executing function {}", "c11_l317_action_invoke");
    let func_index = match result_object.module.info.exports.get("as-if-else") {
        Some(&Export::Function(index)) => index,
        _ => panic!("Function not found"),
    };
    let invoke_fn: fn(&Instance) -> i32 = get_instance_function!(result_object.instance, func_index);
    let result = invoke_fn(&result_object.instance);
    assert_eq!(result, 2 as i32);
}

// Line 319
fn c12_l319_action_invoke(result_object: &ResultObject) {
    println!("Executing function {}", "c12_l319_action_invoke");
    let func_index = match result_object.module.info.exports.get("as-br_if-first") {
        Some(&Export::Function(index)) => index,
        _ => panic!("Function not found"),
    };
    let invoke_fn: fn(&Instance) -> i32 = get_instance_function!(result_object.instance, func_index);
    let result = invoke_fn(&result_object.instance);
    assert_eq!(result, 1 as i32);
}

// Line 320
fn c13_l320_action_invoke(result_object: &ResultObject) {
    println!("Executing function {}", "c13_l320_action_invoke");
    let func_index = match result_object.module.info.exports.get("as-br_if-last") {
        Some(&Export::Function(index)) => index,
        _ => panic!("Function not found"),
    };
    let invoke_fn: fn(&Instance) -> i32 = get_instance_function!(result_object.instance, func_index);
    let result = invoke_fn(&result_object.instance);
    assert_eq!(result, 2 as i32);
}

// Line 322
fn c14_l322_action_invoke(result_object: &ResultObject) {
    println!("Executing function {}", "c14_l322_action_invoke");
    let func_index = match result_object.module.info.exports.get("as-br_table-first") {
        Some(&Export::Function(index)) => index,
        _ => panic!("Function not found"),
    };
    let invoke_fn: fn(&Instance) -> i32 = get_instance_function!(result_object.instance, func_index);
    let result = invoke_fn(&result_object.instance);
    assert_eq!(result, 1 as i32);
}

// Line 323
fn c15_l323_action_invoke(result_object: &ResultObject) {
    println!("Executing function {}", "c15_l323_action_invoke");
    let func_index = match result_object.module.info.exports.get("as-br_table-last") {
        Some(&Export::Function(index)) => index,
        _ => panic!("Function not found"),
    };
    let invoke_fn: fn(&Instance) -> i32 = get_instance_function!(result_object.instance, func_index);
    let result = invoke_fn(&result_object.instance);
    assert_eq!(result, 2 as i32);
}

// Line 325
fn c16_l325_action_invoke(result_object: &ResultObject) {
    println!("Executing function {}", "c16_l325_action_invoke");
    let func_index = match result_object.module.info.exports.get("as-call_indirect-first") {
        Some(&Export::Function(index)) => index,
        _ => panic!("Function not found"),
    };
    let invoke_fn: fn(&Instance) -> i32 = get_instance_function!(result_object.instance, func_index);
    let result = invoke_fn(&result_object.instance);
    assert_eq!(result, 1 as i32);
}

// Line 326
fn c17_l326_action_invoke(result_object: &ResultObject) {
    println!("Executing function {}", "c17_l326_action_invoke");
    let func_index = match result_object.module.info.exports.get("as-call_indirect-mid") {
        Some(&Export::Function(index)) => index,
        _ => panic!("Function not found"),
    };
    let invoke_fn: fn(&Instance) -> i32 = get_instance_function!(result_object.instance, func_index);
    let result = invoke_fn(&result_object.instance);
    assert_eq!(result, 2 as i32);
}

// Line 327
fn c18_l327_action_invoke(result_object: &ResultObject) {
    println!("Executing function {}", "c18_l327_action_invoke");
    let func_index = match result_object.module.info.exports.get("as-call_indirect-last") {
        Some(&Export::Function(index)) => index,
        _ => panic!("Function not found"),
    };
    let invoke_fn: fn(&Instance) -> i32 = get_instance_function!(result_object.instance, func_index);
    let result = invoke_fn(&result_object.instance);
    assert_eq!(result, 1 as i32);
}

// Line 329
fn c19_l329_action_invoke(result_object: &ResultObject) {
    println!("Executing function {}", "c19_l329_action_invoke");
    let func_index = match result_object.module.info.exports.get("as-store-first") {
        Some(&Export::Function(index)) => index,
        _ => panic!("Function not found"),
    };
    let invoke_fn: fn(&Instance) = get_instance_function!(result_object.instance, func_index);
    let result = invoke_fn(&result_object.instance);
    assert_eq!(result, ());
}

// Line 330
fn c20_l330_action_invoke(result_object: &ResultObject) {
    println!("Executing function {}", "c20_l330_action_invoke");
    let func_index = match result_object.module.info.exports.get("as-store-last") {
        Some(&Export::Function(index)) => index,
        _ => panic!("Function not found"),
    };
    let invoke_fn: fn(&Instance) = get_instance_function!(result_object.instance, func_index);
    let result = invoke_fn(&result_object.instance);
    assert_eq!(result, ());
}

// Line 332
fn c21_l332_action_invoke(result_object: &ResultObject) {
    println!("Executing function {}", "c21_l332_action_invoke");
    let func_index = match result_object.module.info.exports.get("as-memory.grow-value") {
        Some(&Export::Function(index)) => index,
        _ => panic!("Function not found"),
    };
    let invoke_fn: fn(&Instance) -> i32 = get_instance_function!(result_object.instance, func_index);
    let result = invoke_fn(&result_object.instance);
    assert_eq!(result, 1 as i32);
}

// Line 333
fn c22_l333_action_invoke(result_object: &ResultObject) {
    println!("Executing function {}", "c22_l333_action_invoke");
    let func_index = match result_object.module.info.exports.get("as-call-value") {
        Some(&Export::Function(index)) => index,
        _ => panic!("Function not found"),
    };
    let invoke_fn: fn(&Instance) -> i32 = get_instance_function!(result_object.instance, func_index);
    let result = invoke_fn(&result_object.instance);
    assert_eq!(result, 1 as i32);
}

// Line 334
fn c23_l334_action_invoke(result_object: &ResultObject) {
    println!("Executing function {}", "c23_l334_action_invoke");
    let func_index = match result_object.module.info.exports.get("as-return-value") {
        Some(&Export::Function(index)) => index,
        _ => panic!("Function not found"),
    };
    let invoke_fn: fn(&Instance) -> i32 = get_instance_function!(result_object.instance, func_index);
    let result = invoke_fn(&result_object.instance);
    assert_eq!(result, 1 as i32);
}

// Line 335
fn c24_l335_action_invoke(result_object: &ResultObject) {
    println!("Executing function {}", "c24_l335_action_invoke");
    let func_index = match result_object.module.info.exports.get("as-drop-operand") {
        Some(&Export::Function(index)) => index,
        _ => panic!("Function not found"),
    };
    let invoke_fn: fn(&Instance) = get_instance_function!(result_object.instance, func_index);
    let result = invoke_fn(&result_object.instance);
    assert_eq!(result, ());
}

// Line 336
fn c25_l336_action_invoke(result_object: &ResultObject) {
    println!("Executing function {}", "c25_l336_action_invoke");
    let func_index = match result_object.module.info.exports.get("as-br-value") {
        Some(&Export::Function(index)) => index,
        _ => panic!("Function not found"),
    };
    let invoke_fn: fn(&Instance) -> i32 = get_instance_function!(result_object.instance, func_index);
    let result = invoke_fn(&result_object.instance);
    assert_eq!(result, 1 as i32);
}

// Line 337
fn c26_l337_action_invoke(result_object: &ResultObject) {
    println!("Executing function {}", "c26_l337_action_invoke");
    let func_index = match result_object.module.info.exports.get("as-set_local-value") {
        Some(&Export::Function(index)) => index,
        _ => panic!("Function not found"),
    };
    let invoke_fn: fn(&Instance) -> i32 = get_instance_function!(result_object.instance, func_index);
    let result = invoke_fn(&result_object.instance);
    assert_eq!(result, 1 as i32);
}

// Line 338
fn c27_l338_action_invoke(result_object: &ResultObject) {
    println!("Executing function {}", "c27_l338_action_invoke");
    let func_index = match result_object.module.info.exports.get("as-tee_local-value") {
        Some(&Export::Function(index)) => index,
        _ => panic!("Function not found"),
    };
    let invoke_fn: fn(&Instance) -> i32 = get_instance_function!(result_object.instance, func_index);
    let result = invoke_fn(&result_object.instance);
    assert_eq!(result, 1 as i32);
}

// Line 339
fn c28_l339_action_invoke(result_object: &ResultObject) {
    println!("Executing function {}", "c28_l339_action_invoke");
    let func_index = match result_object.module.info.exports.get("as-set_global-value") {
        Some(&Export::Function(index)) => index,
        _ => panic!("Function not found"),
    };
    let invoke_fn: fn(&Instance) -> i32 = get_instance_function!(result_object.instance, func_index);
    let result = invoke_fn(&result_object.instance);
    assert_eq!(result, 1 as i32);
}

// Line 340
fn c29_l340_action_invoke(result_object: &ResultObject) {
    println!("Executing function {}", "c29_l340_action_invoke");
    let func_index = match result_object.module.info.exports.get("as-load-operand") {
        Some(&Export::Function(index)) => index,
        _ => panic!("Function not found"),
    };
    let invoke_fn: fn(&Instance) -> i32 = get_instance_function!(result_object.instance, func_index);
    let result = invoke_fn(&result_object.instance);
    assert_eq!(result, 1 as i32);
}

// Line 342
fn c30_l342_action_invoke(result_object: &ResultObject) {
    println!("Executing function {}", "c30_l342_action_invoke");
    let func_index = match result_object.module.info.exports.get("as-unary-operand") {
        Some(&Export::Function(index)) => index,
        _ => panic!("Function not found"),
    };
    let invoke_fn: fn(&Instance) -> i32 = get_instance_function!(result_object.instance, func_index);
    let result = invoke_fn(&result_object.instance);
    assert_eq!(result, 0 as i32);
}

// Line 343
fn c31_l343_action_invoke(result_object: &ResultObject) {
    println!("Executing function {}", "c31_l343_action_invoke");
    let func_index = match result_object.module.info.exports.get("as-binary-operand") {
        Some(&Export::Function(index)) => index,
        _ => panic!("Function not found"),
    };
    let invoke_fn: fn(&Instance) -> i32 = get_instance_function!(result_object.instance, func_index);
    let result = invoke_fn(&result_object.instance);
    assert_eq!(result, 12 as i32);
}

// Line 344
fn c32_l344_action_invoke(result_object: &ResultObject) {
    println!("Executing function {}", "c32_l344_action_invoke");
    let func_index = match result_object.module.info.exports.get("as-test-operand") {
        Some(&Export::Function(index)) => index,
        _ => panic!("Function not found"),
    };
    let invoke_fn: fn(&Instance) -> i32 = get_instance_function!(result_object.instance, func_index);
    let result = invoke_fn(&result_object.instance);
    assert_eq!(result, 0 as i32);
}

// Line 345
fn c33_l345_action_invoke(result_object: &ResultObject) {
    println!("Executing function {}", "c33_l345_action_invoke");
    let func_index = match result_object.module.info.exports.get("as-compare-operand") {
        Some(&Export::Function(index)) => index,
        _ => panic!("Function not found"),
    };
    let invoke_fn: fn(&Instance) -> i32 = get_instance_function!(result_object.instance, func_index);
    let result = invoke_fn(&result_object.instance);
    assert_eq!(result, 0 as i32);
}

// Line 347
fn c34_l347_action_invoke(result_object: &ResultObject) {
    println!("Executing function {}", "c34_l347_action_invoke");
    let func_index = match result_object.module.info.exports.get("break-bare") {
        Some(&Export::Function(index)) => index,
        _ => panic!("Function not found"),
    };
    let invoke_fn: fn(&Instance) -> i32 = get_instance_function!(result_object.instance, func_index);
    let result = invoke_fn(&result_object.instance);
    assert_eq!(result, 19 as i32);
}

// Line 348
fn c35_l348_action_invoke(result_object: &ResultObject) {
    println!("Executing function {}", "c35_l348_action_invoke");
    let func_index = match result_object.module.info.exports.get("break-value") {
        Some(&Export::Function(index)) => index,
        _ => panic!("Function not found"),
    };
    let invoke_fn: fn(&Instance) -> i32 = get_instance_function!(result_object.instance, func_index);
    let result = invoke_fn(&result_object.instance);
    assert_eq!(result, 18 as i32);
}

// Line 349
fn c36_l349_action_invoke(result_object: &ResultObject) {
    println!("Executing function {}", "c36_l349_action_invoke");
    let func_index = match result_object.module.info.exports.get("break-repeated") {
        Some(&Export::Function(index)) => index,
        _ => panic!("Function not found"),
    };
    let invoke_fn: fn(&Instance) -> i32 = get_instance_function!(result_object.instance, func_index);
    let result = invoke_fn(&result_object.instance);
    assert_eq!(result, 18 as i32);
}

// Line 350
fn c37_l350_action_invoke(result_object: &ResultObject) {
    println!("Executing function {}", "c37_l350_action_invoke");
    let func_index = match result_object.module.info.exports.get("break-inner") {
        Some(&Export::Function(index)) => index,
        _ => panic!("Function not found"),
    };
    let invoke_fn: fn(&Instance) -> i32 = get_instance_function!(result_object.instance, func_index);
    let result = invoke_fn(&result_object.instance);
    assert_eq!(result, 31 as i32);
}

// Line 352
fn c38_l352_action_invoke(result_object: &ResultObject) {
    println!("Executing function {}", "c38_l352_action_invoke");
    let func_index = match result_object.module.info.exports.get("effects") {
        Some(&Export::Function(index)) => index,
        _ => panic!("Function not found"),
    };
    let invoke_fn: fn(&Instance) -> i32 = get_instance_function!(result_object.instance, func_index);
    let result = invoke_fn(&result_object.instance);
    assert_eq!(result, 1 as i32);
}

// Line 354
fn c39_l354_action_invoke(result_object: &ResultObject) {
    println!("Executing function {}", "c39_l354_action_invoke");
    let func_index = match result_object.module.info.exports.get("while") {
        Some(&Export::Function(index)) => index,
        _ => panic!("Function not found"),
    };
    let invoke_fn: fn(i64, &Instance) -> i64 = get_instance_function!(result_object.instance, func_index);
    let result = invoke_fn(0 as i64, &result_object.instance);
    assert_eq!(result, 1 as i64);
}

// Line 355
fn c40_l355_action_invoke(result_object: &ResultObject) {
    println!("Executing function {}", "c40_l355_action_invoke");
    let func_index = match result_object.module.info.exports.get("while") {
        Some(&Export::Function(index)) => index,
        _ => panic!("Function not found"),
    };
    let invoke_fn: fn(i64, &Instance) -> i64 = get_instance_function!(result_object.instance, func_index);
    let result = invoke_fn(1 as i64, &result_object.instance);
    assert_eq!(result, 1 as i64);
}

// Line 356
fn c41_l356_action_invoke(result_object: &ResultObject) {
    println!("Executing function {}", "c41_l356_action_invoke");
    let func_index = match result_object.module.info.exports.get("while") {
        Some(&Export::Function(index)) => index,
        _ => panic!("Function not found"),
    };
    let invoke_fn: fn(i64, &Instance) -> i64 = get_instance_function!(result_object.instance, func_index);
    let result = invoke_fn(2 as i64, &result_object.instance);
    assert_eq!(result, 2 as i64);
}

// Line 357
fn c42_l357_action_invoke(result_object: &ResultObject) {
    println!("Executing function {}", "c42_l357_action_invoke");
    let func_index = match result_object.module.info.exports.get("while") {
        Some(&Export::Function(index)) => index,
        _ => panic!("Function not found"),
    };
    let invoke_fn: fn(i64, &Instance) -> i64 = get_instance_function!(result_object.instance, func_index);
    let result = invoke_fn(3 as i64, &result_object.instance);
    assert_eq!(result, 6 as i64);
}

// Line 358
fn c43_l358_action_invoke(result_object: &ResultObject) {
    println!("Executing function {}", "c43_l358_action_invoke");
    let func_index = match result_object.module.info.exports.get("while") {
        Some(&Export::Function(index)) => index,
        _ => panic!("Function not found"),
    };
    let invoke_fn: fn(i64, &Instance) -> i64 = get_instance_function!(result_object.instance, func_index);
    let result = invoke_fn(5 as i64, &result_object.instance);
    assert_eq!(result, 120 as i64);
}

// Line 359
fn c44_l359_action_invoke(result_object: &ResultObject) {
    println!("Executing function {}", "c44_l359_action_invoke");
    let func_index = match result_object.module.info.exports.get("while") {
        Some(&Export::Function(index)) => index,
        _ => panic!("Function not found"),
    };
    let invoke_fn: fn(i64, &Instance) -> i64 = get_instance_function!(result_object.instance, func_index);
    let result = invoke_fn(20 as i64, &result_object.instance);
    assert_eq!(result, 2432902008176640000 as i64);
}

// Line 361
fn c45_l361_action_invoke(result_object: &ResultObject) {
    println!("Executing function {}", "c45_l361_action_invoke");
    let func_index = match result_object.module.info.exports.get("for") {
        Some(&Export::Function(index)) => index,
        _ => panic!("Function not found"),
    };
    let invoke_fn: fn(i64, &Instance) -> i64 = get_instance_function!(result_object.instance, func_index);
    let result = invoke_fn(0 as i64, &result_object.instance);
    assert_eq!(result, 1 as i64);
}

// Line 362
fn c46_l362_action_invoke(result_object: &ResultObject) {
    println!("Executing function {}", "c46_l362_action_invoke");
    let func_index = match result_object.module.info.exports.get("for") {
        Some(&Export::Function(index)) => index,
        _ => panic!("Function not found"),
    };
    let invoke_fn: fn(i64, &Instance) -> i64 = get_instance_function!(result_object.instance, func_index);
    let result = invoke_fn(1 as i64, &result_object.instance);
    assert_eq!(result, 1 as i64);
}

// Line 363
fn c47_l363_action_invoke(result_object: &ResultObject) {
    println!("Executing function {}", "c47_l363_action_invoke");
    let func_index = match result_object.module.info.exports.get("for") {
        Some(&Export::Function(index)) => index,
        _ => panic!("Function not found"),
    };
    let invoke_fn: fn(i64, &Instance) -> i64 = get_instance_function!(result_object.instance, func_index);
    let result = invoke_fn(2 as i64, &result_object.instance);
    assert_eq!(result, 2 as i64);
}

// Line 364
fn c48_l364_action_invoke(result_object: &ResultObject) {
    println!("Executing function {}", "c48_l364_action_invoke");
    let func_index = match result_object.module.info.exports.get("for") {
        Some(&Export::Function(index)) => index,
        _ => panic!("Function not found"),
    };
    let invoke_fn: fn(i64, &Instance) -> i64 = get_instance_function!(result_object.instance, func_index);
    let result = invoke_fn(3 as i64, &result_object.instance);
    assert_eq!(result, 6 as i64);
}

// Line 365
fn c49_l365_action_invoke(result_object: &ResultObject) {
    println!("Executing function {}", "c49_l365_action_invoke");
    let func_index = match result_object.module.info.exports.get("for") {
        Some(&Export::Function(index)) => index,
        _ => panic!("Function not found"),
    };
    let invoke_fn: fn(i64, &Instance) -> i64 = get_instance_function!(result_object.instance, func_index);
    let result = invoke_fn(5 as i64, &result_object.instance);
    assert_eq!(result, 120 as i64);
}

// Line 366
fn c50_l366_action_invoke(result_object: &ResultObject) {
    println!("Executing function {}", "c50_l366_action_invoke");
    let func_index = match result_object.module.info.exports.get("for") {
        Some(&Export::Function(index)) => index,
        _ => panic!("Function not found"),
    };
    let invoke_fn: fn(i64, &Instance) -> i64 = get_instance_function!(result_object.instance, func_index);
    let result = invoke_fn(20 as i64, &result_object.instance);
    assert_eq!(result, 2432902008176640000 as i64);
}

// Line 368
fn c51_l368_action_invoke(result_object: &ResultObject) {
    println!("Executing function {}", "c51_l368_action_invoke");
    let func_index = match result_object.module.info.exports.get("nesting") {
        Some(&Export::Function(index)) => index,
        _ => panic!("Function not found"),
    };
    let invoke_fn: fn(f32, f32, &Instance) -> f32 = get_instance_function!(result_object.instance, func_index);
    let result = invoke_fn(0.0 as f32, 7.0 as f32, &result_object.instance);
    assert_eq!(result, 0.0 as f32);
}

// Line 369
fn c52_l369_action_invoke(result_object: &ResultObject) {
    println!("Executing function {}", "c52_l369_action_invoke");
    let func_index = match result_object.module.info.exports.get("nesting") {
        Some(&Export::Function(index)) => index,
        _ => panic!("Function not found"),
    };
    let invoke_fn: fn(f32, f32, &Instance) -> f32 = get_instance_function!(result_object.instance, func_index);
    let result = invoke_fn(7.0 as f32, 0.0 as f32, &result_object.instance);
    assert_eq!(result, 0.0 as f32);
}

// Line 370
fn c53_l370_action_invoke(result_object: &ResultObject) {
    println!("Executing function {}", "c53_l370_action_invoke");
    let func_index = match result_object.module.info.exports.get("nesting") {
        Some(&Export::Function(index)) => index,
        _ => panic!("Function not found"),
    };
    let invoke_fn: fn(f32, f32, &Instance) -> f32 = get_instance_function!(result_object.instance, func_index);
    let result = invoke_fn(1.0 as f32, 1.0 as f32, &result_object.instance);
    assert_eq!(result, 1.0 as f32);
}

// Line 371
fn c54_l371_action_invoke(result_object: &ResultObject) {
    println!("Executing function {}", "c54_l371_action_invoke");
    let func_index = match result_object.module.info.exports.get("nesting") {
        Some(&Export::Function(index)) => index,
        _ => panic!("Function not found"),
    };
    let invoke_fn: fn(f32, f32, &Instance) -> f32 = get_instance_function!(result_object.instance, func_index);
    let result = invoke_fn(1.0 as f32, 2.0 as f32, &result_object.instance);
    assert_eq!(result, 2.0 as f32);
}

// Line 372
fn c55_l372_action_invoke(result_object: &ResultObject) {
    println!("Executing function {}", "c55_l372_action_invoke");
    let func_index = match result_object.module.info.exports.get("nesting") {
        Some(&Export::Function(index)) => index,
        _ => panic!("Function not found"),
    };
    let invoke_fn: fn(f32, f32, &Instance) -> f32 = get_instance_function!(result_object.instance, func_index);
    let result = invoke_fn(1.0 as f32, 3.0 as f32, &result_object.instance);
    assert_eq!(result, 4.0 as f32);
}

// Line 373
fn c56_l373_action_invoke(result_object: &ResultObject) {
    println!("Executing function {}", "c56_l373_action_invoke");
    let func_index = match result_object.module.info.exports.get("nesting") {
        Some(&Export::Function(index)) => index,
        _ => panic!("Function not found"),
    };
    let invoke_fn: fn(f32, f32, &Instance) -> f32 = get_instance_function!(result_object.instance, func_index);
    let result = invoke_fn(1.0 as f32, 4.0 as f32, &result_object.instance);
    assert_eq!(result, 6.0 as f32);
}

// Line 374
fn c57_l374_action_invoke(result_object: &ResultObject) {
    println!("Executing function {}", "c57_l374_action_invoke");
    let func_index = match result_object.module.info.exports.get("nesting") {
        Some(&Export::Function(index)) => index,
        _ => panic!("Function not found"),
    };
    let invoke_fn: fn(f32, f32, &Instance) -> f32 = get_instance_function!(result_object.instance, func_index);
    let result = invoke_fn(1.0 as f32, 100.0 as f32, &result_object.instance);
    assert_eq!(result, 2550.0 as f32);
}

// Line 375
fn c58_l375_action_invoke(result_object: &ResultObject) {
    println!("Executing function {}", "c58_l375_action_invoke");
    let func_index = match result_object.module.info.exports.get("nesting") {
        Some(&Export::Function(index)) => index,
        _ => panic!("Function not found"),
    };
    let invoke_fn: fn(f32, f32, &Instance) -> f32 = get_instance_function!(result_object.instance, func_index);
    let result = invoke_fn(1.0 as f32, 101.0 as f32, &result_object.instance);
    assert_eq!(result, 2601.0 as f32);
}

// Line 376
fn c59_l376_action_invoke(result_object: &ResultObject) {
    println!("Executing function {}", "c59_l376_action_invoke");
    let func_index = match result_object.module.info.exports.get("nesting") {
        Some(&Export::Function(index)) => index,
        _ => panic!("Function not found"),
    };
    let invoke_fn: fn(f32, f32, &Instance) -> f32 = get_instance_function!(result_object.instance, func_index);
    let result = invoke_fn(2.0 as f32, 1.0 as f32, &result_object.instance);
    assert_eq!(result, 1.0 as f32);
}

// Line 377
fn c60_l377_action_invoke(result_object: &ResultObject) {
    println!("Executing function {}", "c60_l377_action_invoke");
    let func_index = match result_object.module.info.exports.get("nesting") {
        Some(&Export::Function(index)) => index,
        _ => panic!("Function not found"),
    };
    let invoke_fn: fn(f32, f32, &Instance) -> f32 = get_instance_function!(result_object.instance, func_index);
    let result = invoke_fn(3.0 as f32, 1.0 as f32, &result_object.instance);
    assert_eq!(result, 1.0 as f32);
}

// Line 378
fn c61_l378_action_invoke(result_object: &ResultObject) {
    println!("Executing function {}", "c61_l378_action_invoke");
    let func_index = match result_object.module.info.exports.get("nesting") {
        Some(&Export::Function(index)) => index,
        _ => panic!("Function not found"),
    };
    let invoke_fn: fn(f32, f32, &Instance) -> f32 = get_instance_function!(result_object.instance, func_index);
    let result = invoke_fn(10.0 as f32, 1.0 as f32, &result_object.instance);
    assert_eq!(result, 1.0 as f32);
}

// Line 379
fn c62_l379_action_invoke(result_object: &ResultObject) {
    println!("Executing function {}", "c62_l379_action_invoke");
    let func_index = match result_object.module.info.exports.get("nesting") {
        Some(&Export::Function(index)) => index,
        _ => panic!("Function not found"),
    };
    let invoke_fn: fn(f32, f32, &Instance) -> f32 = get_instance_function!(result_object.instance, func_index);
    let result = invoke_fn(2.0 as f32, 2.0 as f32, &result_object.instance);
    assert_eq!(result, 3.0 as f32);
}

// Line 380
fn c63_l380_action_invoke(result_object: &ResultObject) {
    println!("Executing function {}", "c63_l380_action_invoke");
    let func_index = match result_object.module.info.exports.get("nesting") {
        Some(&Export::Function(index)) => index,
        _ => panic!("Function not found"),
    };
    let invoke_fn: fn(f32, f32, &Instance) -> f32 = get_instance_function!(result_object.instance, func_index);
    let result = invoke_fn(2.0 as f32, 3.0 as f32, &result_object.instance);
    assert_eq!(result, 4.0 as f32);
}

// Line 381
fn c64_l381_action_invoke(result_object: &ResultObject) {
    println!("Executing function {}", "c64_l381_action_invoke");
    let func_index = match result_object.module.info.exports.get("nesting") {
        Some(&Export::Function(index)) => index,
        _ => panic!("Function not found"),
    };
    let invoke_fn: fn(f32, f32, &Instance) -> f32 = get_instance_function!(result_object.instance, func_index);
    let result = invoke_fn(7.0 as f32, 4.0 as f32, &result_object.instance);
    assert_eq!(result, 10.309524 as f32);
}

// Line 382
fn c65_l382_action_invoke(result_object: &ResultObject) {
    println!("Executing function {}", "c65_l382_action_invoke");
    let func_index = match result_object.module.info.exports.get("nesting") {
        Some(&Export::Function(index)) => index,
        _ => panic!("Function not found"),
    };
    let invoke_fn: fn(f32, f32, &Instance) -> f32 = get_instance_function!(result_object.instance, func_index);
    let result = invoke_fn(7.0 as f32, 100.0 as f32, &result_object.instance);
    assert_eq!(result, 4381.548 as f32);
}

// Line 383
fn c66_l383_action_invoke(result_object: &ResultObject) {
    println!("Executing function {}", "c66_l383_action_invoke");
    let func_index = match result_object.module.info.exports.get("nesting") {
        Some(&Export::Function(index)) => index,
        _ => panic!("Function not found"),
    };
    let invoke_fn: fn(f32, f32, &Instance) -> f32 = get_instance_function!(result_object.instance, func_index);
    let result = invoke_fn(7.0 as f32, 101.0 as f32, &result_object.instance);
    assert_eq!(result, 2601.0 as f32);
}

// Line 386
#[test]
fn c67_l386_assert_invalid() {
    let wasm_binary = [0, 97, 115, 109, 1, 0, 0, 0, 1, 5, 1, 96, 0, 1, 127, 3, 2, 1, 0, 10, 7, 1, 5, 0, 3, 64, 11, 11];
    let compilation = compile(wasm_binary.to_vec());
    assert!(compilation.is_err(), "WASM should not compile as is invalid");
}

// Line 390
#[test]
fn c68_l390_assert_invalid() {
    let wasm_binary = [0, 97, 115, 109, 1, 0, 0, 0, 1, 5, 1, 96, 0, 1, 126, 3, 2, 1, 0, 10, 7, 1, 5, 0, 3, 64, 11, 11];
    let compilation = compile(wasm_binary.to_vec());
    assert!(compilation.is_err(), "WASM should not compile as is invalid");
}

// Line 394
#[test]
fn c69_l394_assert_invalid() {
    let wasm_binary = [0, 97, 115, 109, 1, 0, 0, 0, 1, 5, 1, 96, 0, 1, 125, 3, 2, 1, 0, 10, 7, 1, 5, 0, 3, 64, 11, 11];
    let compilation = compile(wasm_binary.to_vec());
    assert!(compilation.is_err(), "WASM should not compile as is invalid");
}

// Line 398
#[test]
fn c70_l398_assert_invalid() {
    let wasm_binary = [0, 97, 115, 109, 1, 0, 0, 0, 1, 5, 1, 96, 0, 1, 124, 3, 2, 1, 0, 10, 7, 1, 5, 0, 3, 64, 11, 11];
    let compilation = compile(wasm_binary.to_vec());
    assert!(compilation.is_err(), "WASM should not compile as is invalid");
}

// Line 403
#[test]
fn c71_l403_assert_invalid() {
    let wasm_binary = [0, 97, 115, 109, 1, 0, 0, 0, 1, 4, 1, 96, 0, 0, 3, 2, 1, 0, 10, 9, 1, 7, 0, 3, 64, 65, 1, 11, 11];
    let compilation = compile(wasm_binary.to_vec());
    assert!(compilation.is_err(), "WASM should not compile as is invalid");
}

// Line 409
#[test]
fn c72_l409_assert_invalid() {
    let wasm_binary = [0, 97, 115, 109, 1, 0, 0, 0, 1, 5, 1, 96, 0, 1, 127, 3, 2, 1, 0, 10, 7, 1, 5, 0, 3, 127, 11, 11];
    let compilation = compile(wasm_binary.to_vec());
    assert!(compilation.is_err(), "WASM should not compile as is invalid");
}

// Line 415
#[test]
fn c73_l415_assert_invalid() {
    let wasm_binary = [0, 97, 115, 109, 1, 0, 0, 0, 1, 5, 1, 96, 0, 1, 127, 3, 2, 1, 0, 10, 8, 1, 6, 0, 3, 127, 1, 11, 11];
    let compilation = compile(wasm_binary.to_vec());
    assert!(compilation.is_err(), "WASM should not compile as is invalid");
}

// Line 421
#[test]
fn c74_l421_assert_invalid() {
    let wasm_binary = [0, 97, 115, 109, 1, 0, 0, 0, 1, 5, 1, 96, 0, 1, 127, 3, 2, 1, 0, 10, 12, 1, 10, 0, 3, 127, 67, 0, 0, 0, 0, 11, 11];
    let compilation = compile(wasm_binary.to_vec());
    assert!(compilation.is_err(), "WASM should not compile as is invalid");
}

// Line 427
#[test]
fn c75_l427_assert_invalid() {
    let wasm_binary = [0, 97, 115, 109, 1, 0, 0, 0, 1, 5, 1, 96, 0, 1, 127, 3, 2, 1, 0, 10, 11, 1, 9, 0, 3, 126, 0, 0, 0, 27, 11, 11];
    let compilation = compile(wasm_binary.to_vec());
    assert!(compilation.is_err(), "WASM should not compile as is invalid");
}

// Line 435
#[test]
fn c76_l435_assert_malformed() {
    let wasm_binary = [40, 102, 117, 110, 99, 32, 108, 111, 111, 112, 32, 101, 110, 100, 32, 36, 108, 41];
    let compilation = compile(wasm_binary.to_vec());
    assert!(compilation.is_err(), "WASM should not compile as is malformed");
}

// Line 439
#[test]
fn c77_l439_assert_malformed() {
    let wasm_binary = [40, 102, 117, 110, 99, 32, 108, 111, 111, 112, 32, 36, 97, 32, 101, 110, 100, 32, 36, 108, 41];
    let compilation = compile(wasm_binary.to_vec());
    assert!(compilation.is_err(), "WASM should not compile as is malformed");
}

#[test]
fn test_module_1() {
    let result_object = create_module_1();
    // We group the calls together
    start_module_1(&result_object);
    c1_l305_action_invoke(&result_object);
    c2_l306_action_invoke(&result_object);
    c3_l307_action_invoke(&result_object);
    c4_l308_action_invoke(&result_object);
    c5_l309_action_invoke(&result_object);
    c6_l311_action_invoke(&result_object);
    c7_l312_action_invoke(&result_object);
    c8_l313_action_invoke(&result_object);
    c9_l315_action_invoke(&result_object);
    c10_l316_action_invoke(&result_object);
    c11_l317_action_invoke(&result_object);
    c12_l319_action_invoke(&result_object);
    c13_l320_action_invoke(&result_object);
    c14_l322_action_invoke(&result_object);
    c15_l323_action_invoke(&result_object);
    c16_l325_action_invoke(&result_object);
    c17_l326_action_invoke(&result_object);
    c18_l327_action_invoke(&result_object);
    c19_l329_action_invoke(&result_object);
    c20_l330_action_invoke(&result_object);
    c21_l332_action_invoke(&result_object);
    c22_l333_action_invoke(&result_object);
    c23_l334_action_invoke(&result_object);
    c24_l335_action_invoke(&result_object);
    c25_l336_action_invoke(&result_object);
    c26_l337_action_invoke(&result_object);
    c27_l338_action_invoke(&result_object);
    c28_l339_action_invoke(&result_object);
    c29_l340_action_invoke(&result_object);
    c30_l342_action_invoke(&result_object);
    c31_l343_action_invoke(&result_object);
    c32_l344_action_invoke(&result_object);
    c33_l345_action_invoke(&result_object);
    c34_l347_action_invoke(&result_object);
    c35_l348_action_invoke(&result_object);
    c36_l349_action_invoke(&result_object);
    c37_l350_action_invoke(&result_object);
    c38_l352_action_invoke(&result_object);
    c39_l354_action_invoke(&result_object);
    c40_l355_action_invoke(&result_object);
    c41_l356_action_invoke(&result_object);
    c42_l357_action_invoke(&result_object);
    c43_l358_action_invoke(&result_object);
    c44_l359_action_invoke(&result_object);
    c45_l361_action_invoke(&result_object);
    c46_l362_action_invoke(&result_object);
    c47_l363_action_invoke(&result_object);
    c48_l364_action_invoke(&result_object);
    c49_l365_action_invoke(&result_object);
    c50_l366_action_invoke(&result_object);
    c51_l368_action_invoke(&result_object);
    c52_l369_action_invoke(&result_object);
    c53_l370_action_invoke(&result_object);
    c54_l371_action_invoke(&result_object);
    c55_l372_action_invoke(&result_object);
    c56_l373_action_invoke(&result_object);
    c57_l374_action_invoke(&result_object);
    c58_l375_action_invoke(&result_object);
    c59_l376_action_invoke(&result_object);
    c60_l377_action_invoke(&result_object);
    c61_l378_action_invoke(&result_object);
    c62_l379_action_invoke(&result_object);
    c63_l380_action_invoke(&result_object);
    c64_l381_action_invoke(&result_object);
    c65_l382_action_invoke(&result_object);
    c66_l383_action_invoke(&result_object);
}
