(module
    (memory 1)
    (table 20 anyfunc)
    (elem (i32.const 9) $f)
    (func $f (param i32) (result i32)
        (get_local 0)
    )
    (func $main (export "main") (result i32)
        (local i32)
        (set_local 0 (i32.const 100))
        (i32.store (get_local 0) (i32.const 1602))
        (i32.load (get_local 0))

        (drop)
        (memory.grow (i32.const 0))

        (drop)
        (memory.grow (i32.const 2))

        (drop)
        (memory.grow (i32.const 65536))
        
        (drop)
        (memory.grow (i32.const 12))
    )


    (func (export "no_dce.i32.load") (param $i i32) (drop (i32.load (local.get $i))))
    (func (export "no_dce.i32.load16_s") (param $i i32) (drop (i32.load16_s (local.get $i))))
    (func (export "no_dce.i32.load16_u") (param $i i32) (drop (i32.load16_u (local.get $i))))
    (func (export "no_dce.i32.load8_s") (param $i i32) (drop (i32.load8_s (local.get $i))))
    (func (export "no_dce.i32.load8_u") (param $i i32) (drop (i32.load8_u (local.get $i))))
    (func (export "no_dce.i64.load") (param $i i32) (drop (i64.load (local.get $i))))
    (func (export "no_dce.i64.load32_s") (param $i i32) (drop (i64.load32_s (local.get $i))))
    (func (export "no_dce.i64.load32_u") (param $i i32) (drop (i64.load32_u (local.get $i))))
    (func (export "no_dce.i64.load16_s") (param $i i32) (drop (i64.load16_s (local.get $i))))
    (func (export "no_dce.i64.load16_u") (param $i i32) (drop (i64.load16_u (local.get $i))))
    (func (export "no_dce.i64.load8_s") (param $i i32) (drop (i64.load8_s (local.get $i))))
    (func (export "no_dce.i64.load8_u") (param $i i32) (drop (i64.load8_u (local.get $i))))
    (func (export "no_dce.f32.load") (param $i i32) (drop (f32.load (local.get $i))))
    (func (export "no_dce.f64.load") (param $i i32) (drop (f64.load (local.get $i))))
)
