(module (type ${i32_f32_f64} (struct (field i32) (field f32) (field f64))) (type ${} (struct )) (type $[mut:f64] (array (mut f64))) (type ${i32} (struct (field i32))) (type ${i32_i64} (struct (field i32) (field i64))) (type ${mut:f32} (struct (field (mut f32)))) (type ${i32_mut:i32_ref?|{i32_f32_f64}|_mut:ref?|{i32_f32_f64}|} (struct (field i8) (field (mut i16)) (field (ref null ${i32_f32_f64})) (field (mut (ref null ${i32_f32_f64}))))) (type $rtt_1_${}_=>_none (func (param (rtt 1 ${})))) (type $rtt_${}_=>_none (func (param (rtt ${})))) (type $[ref?|[mut:f64]|] (array (ref null $[mut:f64]))) (type $ref?|{i32_f32_f64}|_=>_ref?|{i32_mut:i32_ref?|{i32_f32_f64}|_mut:ref?|{i32_f32_f64}|}| (func (param (ref null ${i32_f32_f64})) (result (ref null ${i32_mut:i32_ref?|{i32_f32_f64}|_mut:ref?|{i32_f32_f64}|})))) (global $global$0 (rtt 0 ${}) (rtt.canon ${})) (global $global$1 (rtt 1 ${i32}) (rtt.sub ${i32} (global.get $global$0) )) (global $global$2 (rtt 2 ${i32_i64}) (rtt.sub ${i32_i64} (global.get $global$1) )) (export "foo" (func $0)) (func $0 (param $0 (ref null ${i32_f32_f64})) (result (ref null ${i32_mut:i32_ref?|{i32_f32_f64}|_mut:ref?|{i32_f32_f64}|})) (local $1 (ref null ${i32_f32_f64})) (local $2 (ref null ${i32_mut:i32_ref?|{i32_f32_f64}|_mut:ref?|{i32_f32_f64}|})) (local $3 (ref null ${mut:f32})) (local $4 (ref null $[ref?|[mut:f64]|])) (local $5 (ref null $[mut:f64])) (drop (local.get $0) ) (drop (struct.get ${i32_f32_f64} 0 (local.get $0) ) ) (drop (struct.get ${i32_f32_f64} 1 (local.get $0) ) ) (drop (struct.get ${i32_f32_f64} 2 (local.get $0) ) ) (drop (struct.get ${i32_f32_f64} 2 (local.get $0) ) ) (drop (struct.get_u ${i32_mut:i32_ref?|{i32_f32_f64}|_mut:ref?|{i32_f32_f64}|} 0 (local.get $2) ) ) (drop (struct.get_s ${i32_mut:i32_ref?|{i32_f32_f64}|_mut:ref?|{i32_f32_f64}|} 0 (local.get $2) ) ) (drop (ref.null ${i32_f32_f64}) ) (drop (block $label$1 (result (ref null ${i32_f32_f64})) (local.get $0) ) ) (drop (if (result (ref null ${i32_f32_f64})) (i32.const 1) (local.get $0) (local.get $0) ) ) (drop (loop $label$4 (result (ref null ${i32_f32_f64})) (local.get $0) ) ) (drop (select (result (ref null ${i32_f32_f64})) (local.get $0) (local.get $0) (i32.const 1) ) ) (struct.set ${i32_f32_f64} 0 (local.get $0) (i32.const 100) ) (drop (struct.new_default_with_rtt ${i32_f32_f64} (rtt.canon ${i32_f32_f64}) ) ) (drop (struct.new_with_rtt ${i32_f32_f64} (rtt.canon ${i32_f32_f64}) (i32.const 1) (f32.const 2.3450000286102295) (f64.const 3.14159) ) ) (unreachable) ) (func $1 (param $0 (rtt 1 ${})) (nop) ) (func $2 (param $0 (rtt ${})) (nop) ) )