BinaryenTypeNone: 0
BinaryenTypeInt32: 1
BinaryenTypeInt64: 2
BinaryenTypeFloat32: 3
BinaryenTypeFloat64: 4
BinaryenTypeVec128: 5
BinaryenTypeExnref: 6
BinaryenTypeUnreachable: 7
BinaryenTypeAuto: -1
BinaryenFeatureMVP: 0
BinaryenFeatureAtomics: 1
BinaryenFeatureBulkMemory: 16
BinaryenFeatureMutableGlobals: 2
BinaryenFeatureNontrappingFPToInt: 4
BinaryenFeatureSignExt: 32
BinaryenFeatureSIMD128: 8
BinaryenFeatureExceptionHandling: 64
BinaryenFeatureAll: 255
(f32.neg
 (f32.const -33.61199951171875)
)
(module
 (type $iiIfF (func (param i32 i64 f32 f64) (result i32)))
 (type $vi (func (param i32)))
 (type $fiF (func (param i32 f64) (result f32)))
 (type $v (func))
 (type $4 (func))
 (import "module" "base" (func $an-imported (param i32 f64) (result f32)))
 (memory $0 1 256)
 (data (i32.const 10) "hello, world")
 (data passive "I am passive")
 (table $0 1 1 funcref)
 (elem (i32.const 0) "$kitchen()sinker")
 (global $a-global i32 (i32.const 7))
 (global $a-mutable-global (mut f32) (f32.const 7.5))
 (event $a-event (attr 0) (param i32))
 (export "kitchen_sinker" (func "$kitchen()sinker"))
 (export "mem" (memory $0))
 (start $starter)
 (func "$kitchen()sinker" (; 1 ;) (type $iiIfF) (param $0 i32) (param $1 i64) (param $2 f32) (param $3 f64) (result i32)
  (local $4 i32)
  (local $5 exnref)
  (block $the-body (result i32)
   (block $the-nothing
    (drop
     (block $the-value (result i32)
      (drop
       (i32.clz
        (i32.const -10)
       )
      )
      (drop
       (i64.ctz
        (i64.const -22)
       )
      )
      (drop
       (i32.popcnt
        (i32.const -10)
       )
      )
      (drop
       (f32.neg
        (f32.const -33.61199951171875)
       )
      )
      (drop
       (f64.abs
        (f64.const -9005.841)
       )
      )
      (drop
       (f32.ceil
        (f32.const -33.61199951171875)
       )
      )
      (drop
       (f64.floor
        (f64.const -9005.841)
       )
      )
      (drop
       (f32.trunc
        (f32.const -33.61199951171875)
       )
      )
      (drop
       (f32.nearest
        (f32.const -33.61199951171875)
       )
      )
      (drop
       (f64.sqrt
        (f64.const -9005.841)
       )
      )
      (drop
       (i32.eqz
        (i32.const -10)
       )
      )
      (drop
       (i64.extend_i32_s
        (i32.const -10)
       )
      )
      (drop
       (i64.extend_i32_u
        (i32.const -10)
       )
      )
      (drop
       (i32.wrap_i64
        (i64.const -22)
       )
      )
      (drop
       (i32.trunc_f32_s
        (f32.const -33.61199951171875)
       )
      )
      (drop
       (i64.trunc_f32_s
        (f32.const -33.61199951171875)
       )
      )
      (drop
       (i32.trunc_f32_u
        (f32.const -33.61199951171875)
       )
      )
      (drop
       (i64.trunc_f32_u
        (f32.const -33.61199951171875)
       )
      )
      (drop
       (i32.trunc_f64_s
        (f64.const -9005.841)
       )
      )
      (drop
       (i64.trunc_f64_s
        (f64.const -9005.841)
       )
      )
      (drop
       (i32.trunc_f64_u
        (f64.const -9005.841)
       )
      )
      (drop
       (i64.trunc_f64_u
        (f64.const -9005.841)
       )
      )
      (drop
       (i32.trunc_sat_f32_s
        (f32.const -33.61199951171875)
       )
      )
      (drop
       (i64.trunc_sat_f32_s
        (f32.const -33.61199951171875)
       )
      )
      (drop
       (i32.trunc_sat_f32_u
        (f32.const -33.61199951171875)
       )
      )
      (drop
       (i64.trunc_sat_f32_u
        (f32.const -33.61199951171875)
       )
      )
      (drop
       (i32.trunc_sat_f64_s
        (f64.const -9005.841)
       )
      )
      (drop
       (i64.trunc_sat_f64_s
        (f64.const -9005.841)
       )
      )
      (drop
       (i32.trunc_sat_f64_u
        (f64.const -9005.841)
       )
      )
      (drop
       (i64.trunc_sat_f64_u
        (f64.const -9005.841)
       )
      )
      (drop
       (i32.reinterpret_f32
        (f32.const -33.61199951171875)
       )
      )
      (drop
       (i64.reinterpret_f64
        (f64.const -9005.841)
       )
      )
      (drop
       (f32.convert_i32_s
        (i32.const -10)
       )
      )
      (drop
       (f64.convert_i32_s
        (i32.const -10)
       )
      )
      (drop
       (f32.convert_i32_u
        (i32.const -10)
       )
      )
      (drop
       (f64.convert_i32_u
        (i32.const -10)
       )
      )
      (drop
       (f32.convert_i64_s
        (i64.const -22)
       )
      )
      (drop
       (f64.convert_i64_s
        (i64.const -22)
       )
      )
      (drop
       (f32.convert_i64_u
        (i64.const -22)
       )
      )
      (drop
       (f64.convert_i64_u
        (i64.const -22)
       )
      )
      (drop
       (f64.promote_f32
        (f32.const -33.61199951171875)
       )
      )
      (drop
       (f32.demote_f64
        (f64.const -9005.841)
       )
      )
      (drop
       (f32.reinterpret_i32
        (i32.const -10)
       )
      )
      (drop
       (f64.reinterpret_i64
        (i64.const -22)
       )
      )
      (drop
       (i8x16.splat
        (i32.const -10)
       )
      )
      (drop
       (i16x8.splat
        (i32.const -10)
       )
      )
      (drop
       (i32x4.splat
        (i32.const -10)
       )
      )
      (drop
       (i64x2.splat
        (i64.const -22)
       )
      )
      (drop
       (f32x4.splat
        (f32.const -33.61199951171875)
       )
      )
      (drop
       (f64x2.splat
        (f64.const -9005.841)
       )
      )
      (drop
       (v128.not
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i8x16.neg
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i8x16.any_true
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i8x16.all_true
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i16x8.neg
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i16x8.any_true
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i16x8.all_true
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i32x4.neg
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i32x4.any_true
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i32x4.all_true
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i64x2.neg
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i64x2.any_true
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i64x2.all_true
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (f32x4.abs
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (f32x4.neg
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (f32x4.sqrt
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (f64x2.abs
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (f64x2.neg
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (f64x2.sqrt
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i32x4.trunc_sat_f32x4_s
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i32x4.trunc_sat_f32x4_u
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i64x2.trunc_sat_f64x2_s
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i64x2.trunc_sat_f64x2_u
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (f32x4.convert_i32x4_s
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (f32x4.convert_i32x4_u
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (f64x2.convert_i64x2_s
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (f64x2.convert_i64x2_u
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i32.add
        (i32.const -10)
        (i32.const -11)
       )
      )
      (drop
       (f64.sub
        (f64.const -9005.841)
        (f64.const -9007.333)
       )
      )
      (drop
       (i32.div_s
        (i32.const -10)
        (i32.const -11)
       )
      )
      (drop
       (i64.div_u
        (i64.const -22)
        (i64.const -23)
       )
      )
      (drop
       (i64.rem_s
        (i64.const -22)
        (i64.const -23)
       )
      )
      (drop
       (i32.rem_u
        (i32.const -10)
        (i32.const -11)
       )
      )
      (drop
       (i32.and
        (i32.const -10)
        (i32.const -11)
       )
      )
      (drop
       (i64.or
        (i64.const -22)
        (i64.const -23)
       )
      )
      (drop
       (i32.xor
        (i32.const -10)
        (i32.const -11)
       )
      )
      (drop
       (i64.shl
        (i64.const -22)
        (i64.const -23)
       )
      )
      (drop
       (i64.shr_u
        (i64.const -22)
        (i64.const -23)
       )
      )
      (drop
       (i32.shr_s
        (i32.const -10)
        (i32.const -11)
       )
      )
      (drop
       (i32.rotl
        (i32.const -10)
        (i32.const -11)
       )
      )
      (drop
       (i64.rotr
        (i64.const -22)
        (i64.const -23)
       )
      )
      (drop
       (f32.div
        (f32.const -33.61199951171875)
        (f32.const -62.5)
       )
      )
      (drop
       (f64.copysign
        (f64.const -9005.841)
        (f64.const -9007.333)
       )
      )
      (drop
       (f32.min
        (f32.const -33.61199951171875)
        (f32.const -62.5)
       )
      )
      (drop
       (f64.max
        (f64.const -9005.841)
        (f64.const -9007.333)
       )
      )
      (drop
       (i32.eq
        (i32.const -10)
        (i32.const -11)
       )
      )
      (drop
       (f32.ne
        (f32.const -33.61199951171875)
        (f32.const -62.5)
       )
      )
      (drop
       (i32.lt_s
        (i32.const -10)
        (i32.const -11)
       )
      )
      (drop
       (i64.lt_u
        (i64.const -22)
        (i64.const -23)
       )
      )
      (drop
       (i64.le_s
        (i64.const -22)
        (i64.const -23)
       )
      )
      (drop
       (i32.le_u
        (i32.const -10)
        (i32.const -11)
       )
      )
      (drop
       (i64.gt_s
        (i64.const -22)
        (i64.const -23)
       )
      )
      (drop
       (i32.gt_u
        (i32.const -10)
        (i32.const -11)
       )
      )
      (drop
       (i32.ge_s
        (i32.const -10)
        (i32.const -11)
       )
      )
      (drop
       (i64.ge_u
        (i64.const -22)
        (i64.const -23)
       )
      )
      (drop
       (f32.lt
        (f32.const -33.61199951171875)
        (f32.const -62.5)
       )
      )
      (drop
       (f64.le
        (f64.const -9005.841)
        (f64.const -9007.333)
       )
      )
      (drop
       (f64.gt
        (f64.const -9005.841)
        (f64.const -9007.333)
       )
      )
      (drop
       (f32.ge
        (f32.const -33.61199951171875)
        (f32.const -62.5)
       )
      )
      (drop
       (i8x16.eq
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i8x16.ne
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i8x16.lt_s
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i8x16.lt_u
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i8x16.gt_s
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i8x16.gt_u
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i8x16.le_s
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i8x16.le_u
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i8x16.ge_s
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i8x16.ge_u
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i16x8.eq
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i16x8.ne
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i16x8.lt_s
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i16x8.lt_u
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i16x8.gt_s
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i16x8.gt_u
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i16x8.le_s
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i16x8.le_u
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i16x8.ge_s
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i16x8.ge_u
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i32x4.eq
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i32x4.ne
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i32x4.lt_s
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i32x4.lt_u
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i32x4.gt_s
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i32x4.gt_u
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i32x4.le_s
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i32x4.le_u
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i32x4.ge_s
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i32x4.ge_u
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (f32x4.eq
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (f32x4.ne
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (f32x4.lt
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (f32x4.gt
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (f32x4.le
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (f32x4.ge
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (f64x2.eq
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (f64x2.ne
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (f64x2.lt
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (f64x2.gt
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (f64x2.le
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (f64x2.ge
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (v128.and
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (v128.or
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (v128.xor
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i8x16.add
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i8x16.add_saturate_s
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i8x16.add_saturate_u
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i8x16.sub
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i8x16.sub_saturate_s
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i8x16.sub_saturate_u
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i8x16.mul
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i16x8.add
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i16x8.add_saturate_s
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i16x8.add_saturate_u
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i16x8.sub
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i16x8.sub_saturate_s
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i16x8.sub_saturate_u
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i16x8.mul
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i32x4.add
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i32x4.sub
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i32x4.mul
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i64x2.add
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i64x2.sub
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (f32x4.add
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (f32x4.sub
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (f32x4.mul
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (f32x4.div
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (f32x4.min
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (f32x4.max
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (f64x2.add
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (f64x2.sub
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (f64x2.mul
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (f64x2.div
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (f64x2.min
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (f64x2.max
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i8x16.extract_lane_s 0
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i8x16.extract_lane_u 0
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i16x8.extract_lane_s 0
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i16x8.extract_lane_u 0
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i32x4.extract_lane 0
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i64x2.extract_lane 0
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (f32x4.extract_lane 0
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (f64x2.extract_lane 0
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i8x16.replace_lane 0
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (i32.const 42)
       )
      )
      (drop
       (i16x8.replace_lane 0
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (i32.const 42)
       )
      )
      (drop
       (i32x4.replace_lane 0
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (i32.const 42)
       )
      )
      (drop
       (i64x2.replace_lane 0
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (i64.const 42)
       )
      )
      (drop
       (f32x4.replace_lane 0
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (f32.const 42)
       )
      )
      (drop
       (f64x2.replace_lane 0
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (f64.const 42)
       )
      )
      (drop
       (i8x16.shl
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (i32.const 1)
       )
      )
      (drop
       (i8x16.shr_s
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (i32.const 1)
       )
      )
      (drop
       (i8x16.shr_u
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (i32.const 1)
       )
      )
      (drop
       (i16x8.shl
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (i32.const 1)
       )
      )
      (drop
       (i16x8.shr_s
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (i32.const 1)
       )
      )
      (drop
       (i16x8.shr_u
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (i32.const 1)
       )
      )
      (drop
       (i32x4.shl
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (i32.const 1)
       )
      )
      (drop
       (i32x4.shr_s
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (i32.const 1)
       )
      )
      (drop
       (i32x4.shr_u
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (i32.const 1)
       )
      )
      (drop
       (i64x2.shl
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (i32.const 1)
       )
      )
      (drop
       (i64x2.shr_s
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (i32.const 1)
       )
      )
      (drop
       (i64x2.shr_u
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (i32.const 1)
       )
      )
      (drop
       (v8x16.shuffle 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (v128.bitselect
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (memory.init 0
       (i32.const 1024)
       (i32.const 0)
       (i32.const 12)
      )
      (data.drop 0)
      (memory.copy
       (i32.const 2048)
       (i32.const 1024)
       (i32.const 12)
      )
      (memory.fill
       (i32.const 0)
       (i32.const 42)
       (i32.const 1024)
      )
      (block
      )
      (if
       (i32.const 1)
       (drop
        (i32.const 2)
       )
       (drop
        (i32.const 3)
       )
      )
      (if
       (i32.const 4)
       (drop
        (i32.const 5)
       )
      )
      (drop
       (loop $in (result i32)
        (i32.const 0)
       )
      )
      (drop
       (loop (result i32)
        (i32.const 0)
       )
      )
      (drop
       (br_if $the-value
        (i32.const 1)
        (i32.const 0)
       )
      )
      (br_if $the-nothing
       (i32.const 2)
      )
      (br $the-value
       (i32.const 3)
      )
      (br $the-nothing)
      (br_table $the-value $the-value
       (i32.const 1)
       (i32.const 0)
      )
      (br_table $the-nothing $the-nothing
       (i32.const 2)
      )
      (drop
       (i32.eqz
        (call "$kitchen()sinker"
         (i32.const 13)
         (i64.const 37)
         (f32.const 1.2999999523162842)
         (f64.const 3.7)
        )
       )
      )
      (drop
       (i32.eqz
        (i32.trunc_f32_s
         (call $an-imported
          (i32.const 13)
          (f64.const 3.7)
         )
        )
       )
      )
      (drop
       (i32.eqz
        (call_indirect (type $iiIfF)
         (i32.const 13)
         (i64.const 37)
         (f32.const 1.2999999523162842)
         (f64.const 3.7)
         (i32.const 2449)
        )
       )
      )
      (drop
       (local.get $0)
      )
      (local.set $0
       (i32.const 101)
      )
      (drop
       (local.tee $0
        (i32.const 102)
       )
      )
      (drop
       (i32.load
        (i32.const 1)
       )
      )
      (drop
       (i64.load16_s offset=2 align=1
        (i32.const 8)
       )
      )
      (drop
       (f32.load
        (i32.const 2)
       )
      )
      (drop
       (f64.load offset=2
        (i32.const 9)
       )
      )
      (i32.store
       (i32.const 10)
       (i32.const 11)
      )
      (i64.store offset=2 align=4
       (i32.const 110)
       (i64.const 111)
      )
      (drop
       (select
        (i32.const 3)
        (i32.const 5)
        (i32.const 1)
       )
      )
      (return
       (i32.const 1337)
      )
      (return_call "$kitchen()sinker"
       (i32.const 13)
       (i64.const 37)
       (f32.const 1.2999999523162842)
       (f64.const 3.7)
      )
      (return_call_indirect (type $iiIfF)
       (i32.const 13)
       (i64.const 37)
       (f32.const 1.2999999523162842)
       (f64.const 3.7)
       (i32.const 2449)
      )
      (try
       (throw $a-event
        (i32.const 0)
       )
       (catch
        (local.set $5
         (exnref.pop)
        )
        (drop
         (block $try-block (result i32)
          (rethrow
           (br_on_exn $try-block $a-event
            (local.get $5)
           )
          )
         )
        )
       )
      )
      (nop)
      (unreachable)
     )
    )
   )
   (i32.const 42)
  )
 )
 (func $starter (; 2 ;) (type $v)
  (nop)
 )
)
(module
 (type $i (func (result i32)))
 (type $I (func (result i64)))
 (func $unreachable-fn (; 0 ;) (type $i) (result i32)
  (call_indirect (type $I)
   (unreachable)
  )
 )
)
raw:
(module
 (type $v (func))
 (type $vi (func (param i32)))
 (type $i (func (result i32)))
 (import "module" "check" (func $check (param i32)))
 (func $just-one-block (; 1 ;) (type $v)
  (local $0 i32)
  (call $check
   (i32.const 1337)
  )
 )
 (func $two-blocks (; 2 ;) (type $v)
  (local $0 i32)
  (block
   (call $check
    (i32.const 0)
   )
   (call $check
    (i32.const 1)
   )
  )
 )
 (func $two-blocks-plus-code (; 3 ;) (type $v)
  (local $0 i32)
  (block
   (block
    (call $check
     (i32.const 0)
    )
    (drop
     (i32.const 77)
    )
   )
   (call $check
    (i32.const 1)
   )
  )
 )
 (func $loop (; 4 ;) (type $v)
  (local $0 i32)
  (loop $shape$0$continue
   (block
    (call $check
     (i32.const 0)
    )
    (call $check
     (i32.const 1)
    )
   )
   (block
    (br $shape$0$continue)
   )
  )
 )
 (func $loop-plus-code (; 5 ;) (type $v)
  (local $0 i32)
  (loop $shape$0$continue
   (block
    (block
     (call $check
      (i32.const 0)
     )
     (drop
      (i32.const 33)
     )
    )
    (call $check
     (i32.const 1)
    )
   )
   (block
    (drop
     (i32.const -66)
    )
    (br $shape$0$continue)
   )
  )
 )
 (func $split (; 6 ;) (type $v)
  (local $0 i32)
  (call $check
   (i32.const 0)
  )
  (if
   (i32.const 55)
   (block
    (call $check
     (i32.const 1)
    )
   )
   (block
    (call $check
     (i32.const 2)
    )
   )
  )
 )
 (func $split-plus-code (; 7 ;) (type $v)
  (local $0 i32)
  (call $check
   (i32.const 0)
  )
  (if
   (i32.const 55)
   (block
    (drop
     (i32.const 10)
    )
    (block
     (call $check
      (i32.const 1)
     )
    )
   )
   (block
    (drop
     (i32.const 20)
    )
    (block
     (call $check
      (i32.const 2)
     )
    )
   )
  )
 )
 (func $if (; 8 ;) (type $v)
  (local $0 i32)
  (block $block$3$break
   (call $check
    (i32.const 0)
   )
   (if
    (i32.const 55)
    (block
     (call $check
      (i32.const 1)
     )
     (block
      (br $block$3$break)
     )
    )
    (br $block$3$break)
   )
  )
  (block
   (call $check
    (i32.const 2)
   )
  )
 )
 (func $if-plus-code (; 9 ;) (type $v)
  (local $0 i32)
  (block $block$3$break
   (call $check
    (i32.const 0)
   )
   (if
    (i32.const 55)
    (block
     (drop
      (i32.const -1)
     )
     (block
      (call $check
       (i32.const 1)
      )
      (block
       (drop
        (i32.const -3)
       )
       (br $block$3$break)
      )
     )
    )
    (block
     (drop
      (i32.const -2)
     )
     (br $block$3$break)
    )
   )
  )
  (block
   (call $check
    (i32.const 2)
   )
  )
 )
 (func $if-else (; 10 ;) (type $v)
  (local $0 i32)
  (block $block$4$break
   (call $check
    (i32.const 0)
   )
   (if
    (i32.const 55)
    (block
     (call $check
      (i32.const 1)
     )
     (block
      (br $block$4$break)
     )
    )
    (block
     (call $check
      (i32.const 2)
     )
     (block
      (br $block$4$break)
     )
    )
   )
  )
  (block
   (call $check
    (i32.const 3)
   )
  )
 )
 (func $loop-tail (; 11 ;) (type $v)
  (local $0 i32)
  (block $block$3$break
   (loop $shape$0$continue
    (block
     (call $check
      (i32.const 0)
     )
     (call $check
      (i32.const 1)
     )
    )
    (if
     (i32.const 10)
     (br $shape$0$continue)
     (br $block$3$break)
    )
   )
  )
  (block
   (call $check
    (i32.const 2)
   )
  )
 )
 (func $nontrivial-loop-plus-phi-to-head (; 12 ;) (type $v)
  (local $0 i32)
  (block $block$2$break
   (call $check
    (i32.const 0)
   )
   (block
    (drop
     (i32.const 10)
    )
    (br $block$2$break)
   )
  )
  (block
   (block $block$7$break
    (block $block$4$break
     (loop $shape$1$continue
      (block $block$3$break
       (call $check
        (i32.const 1)
       )
       (if
        (i32.const -2)
        (br $block$3$break)
        (block
         (drop
          (i32.const 20)
         )
         (br $block$7$break)
        )
       )
      )
      (block
       (call $check
        (i32.const 2)
       )
       (if
        (i32.const -6)
        (br $block$4$break)
        (block
         (drop
          (i32.const 30)
         )
         (br $shape$1$continue)
        )
       )
      )
     )
    )
    (block
     (block $block$6$break
      (call $check
       (i32.const 3)
      )
      (if
       (i32.const -10)
       (block
        (call $check
         (i32.const 4)
        )
        (block
         (br $block$6$break)
        )
       )
       (br $block$6$break)
      )
     )
     (block
      (call $check
       (i32.const 5)
      )
      (block
       (drop
        (i32.const 40)
       )
       (br $block$7$break)
      )
     )
    )
   )
   (block
    (call $check
     (i32.const 6)
    )
   )
  )
 )
 (func $switch (; 13 ;) (type $v)
  (local $0 i32)
  (call $check
   (i32.const 0)
  )
  (block $switch$1$leave
   (block $switch$1$default
    (block $switch$1$case$3
     (block $switch$1$case$2
      (br_table $switch$1$default $switch$1$default $switch$1$case$2 $switch$1$default $switch$1$case$3 $switch$1$case$2 $switch$1$default
       (i32.const -99)
      )
     )
     (block
      (block
       (call $check
        (i32.const 1)
       )
      )
     )
     (br $switch$1$leave)
    )
    (block
     (drop
      (i32.const 55)
     )
     (block
      (call $check
       (i32.const 2)
      )
     )
    )
    (br $switch$1$leave)
   )
   (block
    (block
     (call $check
      (i32.const 3)
     )
    )
   )
   (br $switch$1$leave)
  )
 )
 (func $duffs-device (; 14 ;) (type $v)
  (local $0 i32)
  (local $1 i32)
  (local $2 i64)
  (local $3 i32)
  (local $4 f32)
  (local $5 f64)
  (local $6 i32)
  (block
   (block $block$3$break
    (block $block$2$break
     (call $check
      (i32.const 0)
     )
     (if
      (i32.const 10)
      (block
       (local.set $3
        (i32.const 2)
       )
       (br $block$2$break)
      )
      (block
       (local.set $3
        (i32.const 3)
       )
       (br $block$3$break)
      )
     )
    )
   )
  )
  (loop $shape$1$continue
   (if
    (i32.eq
     (local.get $3)
     (i32.const 2)
    )
    (block
     (local.set $3
      (i32.const 0)
     )
     (call $check
      (i32.const 1)
     )
     (block
      (local.set $3
       (i32.const 3)
      )
      (br $shape$1$continue)
     )
    )
    (if
     (i32.eq
      (local.get $3)
      (i32.const 3)
     )
     (block
      (local.set $3
       (i32.const 0)
      )
      (call $check
       (i32.const 2)
      )
      (block
       (local.set $3
        (i32.const 2)
       )
       (br $shape$1$continue)
      )
     )
    )
   )
  )
 )
 (func $return (; 15 ;) (type $i) (result i32)
  (local $0 i32)
  (block
   (call $check
    (i32.const 42)
   )
   (return
    (i32.const 1337)
   )
  )
 )
)
optimized:
(module
)
module loaded from binary form:
(module
 (type $0 (func (param i32 i32) (result i32)))
 (func $adder (; 0 ;) (type $0) (param $0 i32) (param $1 i32) (result i32)
  (i32.add
   (local.get $0)
   (local.get $1)
  )
 )
)
module s-expr printed (in memory):
(module
 (type $0 (func (param i32 i32) (result i32)))
 (func $adder (; 0 ;) (type $0) (param $0 i32) (param $1 i32) (result i32)
  (i32.add
   (local.get $0)
   (local.get $1)
  )
 )
)

module s-expr printed (in memory, caller-owned):
(module
 (type $0 (func (param i32 i32) (result i32)))
 (func $adder (; 0 ;) (type $0) (param $0 i32) (param $1 i32) (result i32)
  (i32.add
   (local.get $0)
   (local.get $1)
  )
 )
)

(module
 (type $vi (func (param i32)))
 (type $v (func))
 (import "spectest" "print" (func $print-i32 (param i32)))
 (start $starter)
 (func $starter (; 1 ;) (type $v)
  (call $print-i32
   (i32.const 1234)
  )
 )
)
(i32.const 1234)
(module
 (type $v (func))
 (func $func (; 0 ;) (type $v)
  (local $0 i32)
  (local.set $0
   (i64.const 1234)
  )
 )
)
validation: 0
// beginning a Binaryen API trace
#include <math.h>
#include <map>
#include "src/binaryen-c.h"
int main() {
  std::map<size_t, BinaryenFunctionTypeRef> functionTypes;
  std::map<size_t, BinaryenExpressionRef> expressions;
  std::map<size_t, BinaryenFunctionRef> functions;
  std::map<size_t, BinaryenGlobalRef> globals;
  std::map<size_t, BinaryenEventRef> events;
  std::map<size_t, BinaryenExportRef> exports;
  std::map<size_t, RelooperBlockRef> relooperBlocks;
  BinaryenModuleRef the_module = NULL;
  RelooperRef the_relooper = NULL;
  the_module = BinaryenModuleCreate();
  expressions[size_t(NULL)] = BinaryenExpressionRef(NULL);
  expressions[1] = BinaryenConst(the_module, BinaryenLiteralInt32(1));
  expressions[2] = BinaryenConst(the_module, BinaryenLiteralInt64(2));
  expressions[3] = BinaryenConst(the_module, BinaryenLiteralFloat32(3.14));
  expressions[4] = BinaryenConst(the_module, BinaryenLiteralFloat64(2.1828));
  expressions[5] = BinaryenConst(the_module, BinaryenLiteralFloat32(NAN));
  expressions[6] = BinaryenConst(the_module, BinaryenLiteralFloat64(NAN));
  {
    uint8_t t0[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[7] = BinaryenConst(the_module, BinaryenLiteralVec128(t0));
  }
  expressions[8] = BinaryenConst(the_module, BinaryenLiteralInt32(13));
  expressions[9] = BinaryenConst(the_module, BinaryenLiteralFloat64(3.7));
  expressions[10] = BinaryenConst(the_module, BinaryenLiteralInt32(13));
  expressions[11] = BinaryenConst(the_module, BinaryenLiteralInt64(37));
  expressions[12] = BinaryenConst(the_module, BinaryenLiteralFloat32(1.3));
  expressions[13] = BinaryenConst(the_module, BinaryenLiteralFloat64(3.7));
  expressions[14] = BinaryenConst(the_module, BinaryenLiteralInt32(13));
  expressions[15] = BinaryenConst(the_module, BinaryenLiteralInt64(37));
  expressions[16] = BinaryenConst(the_module, BinaryenLiteralFloat32(1.3));
  expressions[17] = BinaryenConst(the_module, BinaryenLiteralFloat64(3.7));
  {
    BinaryenType paramTypes[] = { 1, 2, 3, 4 };
    functionTypes[0] = BinaryenAddFunctionType(the_module, "iiIfF", 1, paramTypes, 4);
  }
  expressions[18] = BinaryenConst(the_module, BinaryenLiteralInt32(1));
  expressions[19] = BinaryenConst(the_module, BinaryenLiteralInt32(2));
  expressions[20] = BinaryenConst(the_module, BinaryenLiteralInt32(3));
  expressions[21] = BinaryenConst(the_module, BinaryenLiteralInt32(4));
  expressions[22] = BinaryenConst(the_module, BinaryenLiteralInt32(5));
  expressions[23] = BinaryenConst(the_module, BinaryenLiteralInt32(0));
  expressions[24] = BinaryenConst(the_module, BinaryenLiteralInt32(1));
  expressions[25] = BinaryenConst(the_module, BinaryenLiteralInt32(0));
  expressions[26] = BinaryenConst(the_module, BinaryenLiteralInt32(1));
  expressions[27] = BinaryenConst(the_module, BinaryenLiteralInt32(1));
  expressions[28] = BinaryenConst(the_module, BinaryenLiteralInt32(3));
  expressions[29] = BinaryenConst(the_module, BinaryenLiteralInt32(5));
  expressions[30] = BinaryenConst(the_module, BinaryenLiteralInt32(10));
  expressions[31] = BinaryenConst(the_module, BinaryenLiteralInt32(11));
  expressions[32] = BinaryenConst(the_module, BinaryenLiteralInt32(110));
  expressions[33] = BinaryenConst(the_module, BinaryenLiteralInt64(111));
  {
    BinaryenType paramTypes[] = { 1 };
    functionTypes[1] = BinaryenAddFunctionType(the_module, "vi", 0, paramTypes, 1);
  }
  BinaryenAddEvent(the_module, "a-event", 0, functionTypes[1]);
  expressions[34] = BinaryenConst(the_module, BinaryenLiteralInt32(0));
  {
    BinaryenExpressionRef operands[] = { expressions[34] };
    expressions[35] = BinaryenThrow(the_module, "a-event", operands, 1);
  }
  expressions[36] = BinaryenPop(the_module, 6);
  expressions[37] = BinaryenLocalSet(the_module, 5, expressions[36]);
  expressions[38] = BinaryenLocalGet(the_module, 5, 6);
  expressions[39] = BinaryenBrOnExn(the_module, "try-block", "a-event", expressions[38]);
  expressions[40] = BinaryenRethrow(the_module, expressions[39]);
  {
    BinaryenExpressionRef children[] = { expressions[40] };
    expressions[41] = BinaryenBlock(the_module, "try-block", children, 1, 1);
  }
  expressions[42] = BinaryenDrop(the_module, expressions[41]);
  {
    BinaryenExpressionRef children[] = { expressions[37], expressions[42] };
    expressions[43] = BinaryenBlock(the_module, NULL, children, 2, 0);
  }
  expressions[44] = BinaryenConst(the_module, BinaryenLiteralInt32(-10));
  expressions[45] = BinaryenUnary(the_module, 0, expressions[44]);
  expressions[46] = BinaryenConst(the_module, BinaryenLiteralInt64(-22));
  expressions[47] = BinaryenUnary(the_module, 3, expressions[46]);
  expressions[48] = BinaryenConst(the_module, BinaryenLiteralInt32(-10));
  expressions[49] = BinaryenUnary(the_module, 4, expressions[48]);
  expressions[50] = BinaryenConst(the_module, BinaryenLiteralFloat32(-33.612));
  expressions[51] = BinaryenUnary(the_module, 6, expressions[50]);
  expressions[52] = BinaryenConst(the_module, BinaryenLiteralFloat64(-9005.84));
  expressions[53] = BinaryenUnary(the_module, 9, expressions[52]);
  expressions[54] = BinaryenConst(the_module, BinaryenLiteralFloat32(-33.612));
  expressions[55] = BinaryenUnary(the_module, 10, expressions[54]);
  expressions[56] = BinaryenConst(the_module, BinaryenLiteralFloat64(-9005.84));
  expressions[57] = BinaryenUnary(the_module, 13, expressions[56]);
  expressions[58] = BinaryenConst(the_module, BinaryenLiteralFloat32(-33.612));
  expressions[59] = BinaryenUnary(the_module, 14, expressions[58]);
  expressions[60] = BinaryenConst(the_module, BinaryenLiteralFloat32(-33.612));
  expressions[61] = BinaryenUnary(the_module, 16, expressions[60]);
  expressions[62] = BinaryenConst(the_module, BinaryenLiteralFloat64(-9005.84));
  expressions[63] = BinaryenUnary(the_module, 19, expressions[62]);
  expressions[64] = BinaryenConst(the_module, BinaryenLiteralInt32(-10));
  expressions[65] = BinaryenUnary(the_module, 20, expressions[64]);
  expressions[66] = BinaryenConst(the_module, BinaryenLiteralInt32(-10));
  expressions[67] = BinaryenUnary(the_module, 22, expressions[66]);
  expressions[68] = BinaryenConst(the_module, BinaryenLiteralInt32(-10));
  expressions[69] = BinaryenUnary(the_module, 23, expressions[68]);
  expressions[70] = BinaryenConst(the_module, BinaryenLiteralInt64(-22));
  expressions[71] = BinaryenUnary(the_module, 24, expressions[70]);
  expressions[72] = BinaryenConst(the_module, BinaryenLiteralFloat32(-33.612));
  expressions[73] = BinaryenUnary(the_module, 25, expressions[72]);
  expressions[74] = BinaryenConst(the_module, BinaryenLiteralFloat32(-33.612));
  expressions[75] = BinaryenUnary(the_module, 26, expressions[74]);
  expressions[76] = BinaryenConst(the_module, BinaryenLiteralFloat32(-33.612));
  expressions[77] = BinaryenUnary(the_module, 27, expressions[76]);
  expressions[78] = BinaryenConst(the_module, BinaryenLiteralFloat32(-33.612));
  expressions[79] = BinaryenUnary(the_module, 28, expressions[78]);
  expressions[80] = BinaryenConst(the_module, BinaryenLiteralFloat64(-9005.84));
  expressions[81] = BinaryenUnary(the_module, 29, expressions[80]);
  expressions[82] = BinaryenConst(the_module, BinaryenLiteralFloat64(-9005.84));
  expressions[83] = BinaryenUnary(the_module, 30, expressions[82]);
  expressions[84] = BinaryenConst(the_module, BinaryenLiteralFloat64(-9005.84));
  expressions[85] = BinaryenUnary(the_module, 31, expressions[84]);
  expressions[86] = BinaryenConst(the_module, BinaryenLiteralFloat64(-9005.84));
  expressions[87] = BinaryenUnary(the_module, 32, expressions[86]);
  expressions[88] = BinaryenConst(the_module, BinaryenLiteralFloat32(-33.612));
  expressions[89] = BinaryenUnary(the_module, 52, expressions[88]);
  expressions[90] = BinaryenConst(the_module, BinaryenLiteralFloat32(-33.612));
  expressions[91] = BinaryenUnary(the_module, 56, expressions[90]);
  expressions[92] = BinaryenConst(the_module, BinaryenLiteralFloat32(-33.612));
  expressions[93] = BinaryenUnary(the_module, 53, expressions[92]);
  expressions[94] = BinaryenConst(the_module, BinaryenLiteralFloat32(-33.612));
  expressions[95] = BinaryenUnary(the_module, 57, expressions[94]);
  expressions[96] = BinaryenConst(the_module, BinaryenLiteralFloat64(-9005.84));
  expressions[97] = BinaryenUnary(the_module, 54, expressions[96]);
  expressions[98] = BinaryenConst(the_module, BinaryenLiteralFloat64(-9005.84));
  expressions[99] = BinaryenUnary(the_module, 58, expressions[98]);
  expressions[100] = BinaryenConst(the_module, BinaryenLiteralFloat64(-9005.84));
  expressions[101] = BinaryenUnary(the_module, 55, expressions[100]);
  expressions[102] = BinaryenConst(the_module, BinaryenLiteralFloat64(-9005.84));
  expressions[103] = BinaryenUnary(the_module, 59, expressions[102]);
  expressions[104] = BinaryenConst(the_module, BinaryenLiteralFloat32(-33.612));
  expressions[105] = BinaryenUnary(the_module, 33, expressions[104]);
  expressions[106] = BinaryenConst(the_module, BinaryenLiteralFloat64(-9005.84));
  expressions[107] = BinaryenUnary(the_module, 34, expressions[106]);
  expressions[108] = BinaryenConst(the_module, BinaryenLiteralInt32(-10));
  expressions[109] = BinaryenUnary(the_module, 35, expressions[108]);
  expressions[110] = BinaryenConst(the_module, BinaryenLiteralInt32(-10));
  expressions[111] = BinaryenUnary(the_module, 36, expressions[110]);
  expressions[112] = BinaryenConst(the_module, BinaryenLiteralInt32(-10));
  expressions[113] = BinaryenUnary(the_module, 37, expressions[112]);
  expressions[114] = BinaryenConst(the_module, BinaryenLiteralInt32(-10));
  expressions[115] = BinaryenUnary(the_module, 38, expressions[114]);
  expressions[116] = BinaryenConst(the_module, BinaryenLiteralInt64(-22));
  expressions[117] = BinaryenUnary(the_module, 39, expressions[116]);
  expressions[118] = BinaryenConst(the_module, BinaryenLiteralInt64(-22));
  expressions[119] = BinaryenUnary(the_module, 40, expressions[118]);
  expressions[120] = BinaryenConst(the_module, BinaryenLiteralInt64(-22));
  expressions[121] = BinaryenUnary(the_module, 41, expressions[120]);
  expressions[122] = BinaryenConst(the_module, BinaryenLiteralInt64(-22));
  expressions[123] = BinaryenUnary(the_module, 42, expressions[122]);
  expressions[124] = BinaryenConst(the_module, BinaryenLiteralFloat32(-33.612));
  expressions[125] = BinaryenUnary(the_module, 43, expressions[124]);
  expressions[126] = BinaryenConst(the_module, BinaryenLiteralFloat64(-9005.84));
  expressions[127] = BinaryenUnary(the_module, 44, expressions[126]);
  expressions[128] = BinaryenConst(the_module, BinaryenLiteralInt32(-10));
  expressions[129] = BinaryenUnary(the_module, 45, expressions[128]);
  expressions[130] = BinaryenConst(the_module, BinaryenLiteralInt64(-22));
  expressions[131] = BinaryenUnary(the_module, 46, expressions[130]);
  expressions[132] = BinaryenConst(the_module, BinaryenLiteralInt32(-10));
  expressions[133] = BinaryenUnary(the_module, 60, expressions[132]);
  expressions[134] = BinaryenConst(the_module, BinaryenLiteralInt32(-10));
  expressions[135] = BinaryenUnary(the_module, 61, expressions[134]);
  expressions[136] = BinaryenConst(the_module, BinaryenLiteralInt32(-10));
  expressions[137] = BinaryenUnary(the_module, 62, expressions[136]);
  expressions[138] = BinaryenConst(the_module, BinaryenLiteralInt64(-22));
  expressions[139] = BinaryenUnary(the_module, 63, expressions[138]);
  expressions[140] = BinaryenConst(the_module, BinaryenLiteralFloat32(-33.612));
  expressions[141] = BinaryenUnary(the_module, 64, expressions[140]);
  expressions[142] = BinaryenConst(the_module, BinaryenLiteralFloat64(-9005.84));
  expressions[143] = BinaryenUnary(the_module, 65, expressions[142]);
  {
    uint8_t t1[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[144] = BinaryenConst(the_module, BinaryenLiteralVec128(t1));
  }
  expressions[145] = BinaryenUnary(the_module, 66, expressions[144]);
  {
    uint8_t t2[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[146] = BinaryenConst(the_module, BinaryenLiteralVec128(t2));
  }
  expressions[147] = BinaryenUnary(the_module, 67, expressions[146]);
  {
    uint8_t t3[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[148] = BinaryenConst(the_module, BinaryenLiteralVec128(t3));
  }
  expressions[149] = BinaryenUnary(the_module, 68, expressions[148]);
  {
    uint8_t t4[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[150] = BinaryenConst(the_module, BinaryenLiteralVec128(t4));
  }
  expressions[151] = BinaryenUnary(the_module, 69, expressions[150]);
  {
    uint8_t t5[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[152] = BinaryenConst(the_module, BinaryenLiteralVec128(t5));
  }
  expressions[153] = BinaryenUnary(the_module, 70, expressions[152]);
  {
    uint8_t t6[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[154] = BinaryenConst(the_module, BinaryenLiteralVec128(t6));
  }
  expressions[155] = BinaryenUnary(the_module, 71, expressions[154]);
  {
    uint8_t t7[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[156] = BinaryenConst(the_module, BinaryenLiteralVec128(t7));
  }
  expressions[157] = BinaryenUnary(the_module, 72, expressions[156]);
  {
    uint8_t t8[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[158] = BinaryenConst(the_module, BinaryenLiteralVec128(t8));
  }
  expressions[159] = BinaryenUnary(the_module, 73, expressions[158]);
  {
    uint8_t t9[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[160] = BinaryenConst(the_module, BinaryenLiteralVec128(t9));
  }
  expressions[161] = BinaryenUnary(the_module, 74, expressions[160]);
  {
    uint8_t t10[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[162] = BinaryenConst(the_module, BinaryenLiteralVec128(t10));
  }
  expressions[163] = BinaryenUnary(the_module, 75, expressions[162]);
  {
    uint8_t t11[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[164] = BinaryenConst(the_module, BinaryenLiteralVec128(t11));
  }
  expressions[165] = BinaryenUnary(the_module, 76, expressions[164]);
  {
    uint8_t t12[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[166] = BinaryenConst(the_module, BinaryenLiteralVec128(t12));
  }
  expressions[167] = BinaryenUnary(the_module, 77, expressions[166]);
  {
    uint8_t t13[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[168] = BinaryenConst(the_module, BinaryenLiteralVec128(t13));
  }
  expressions[169] = BinaryenUnary(the_module, 78, expressions[168]);
  {
    uint8_t t14[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[170] = BinaryenConst(the_module, BinaryenLiteralVec128(t14));
  }
  expressions[171] = BinaryenUnary(the_module, 79, expressions[170]);
  {
    uint8_t t15[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[172] = BinaryenConst(the_module, BinaryenLiteralVec128(t15));
  }
  expressions[173] = BinaryenUnary(the_module, 80, expressions[172]);
  {
    uint8_t t16[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[174] = BinaryenConst(the_module, BinaryenLiteralVec128(t16));
  }
  expressions[175] = BinaryenUnary(the_module, 81, expressions[174]);
  {
    uint8_t t17[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[176] = BinaryenConst(the_module, BinaryenLiteralVec128(t17));
  }
  expressions[177] = BinaryenUnary(the_module, 82, expressions[176]);
  {
    uint8_t t18[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[178] = BinaryenConst(the_module, BinaryenLiteralVec128(t18));
  }
  expressions[179] = BinaryenUnary(the_module, 83, expressions[178]);
  {
    uint8_t t19[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[180] = BinaryenConst(the_module, BinaryenLiteralVec128(t19));
  }
  expressions[181] = BinaryenUnary(the_module, 84, expressions[180]);
  {
    uint8_t t20[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[182] = BinaryenConst(the_module, BinaryenLiteralVec128(t20));
  }
  expressions[183] = BinaryenUnary(the_module, 85, expressions[182]);
  {
    uint8_t t21[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[184] = BinaryenConst(the_module, BinaryenLiteralVec128(t21));
  }
  expressions[185] = BinaryenUnary(the_module, 86, expressions[184]);
  {
    uint8_t t22[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[186] = BinaryenConst(the_module, BinaryenLiteralVec128(t22));
  }
  expressions[187] = BinaryenUnary(the_module, 87, expressions[186]);
  {
    uint8_t t23[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[188] = BinaryenConst(the_module, BinaryenLiteralVec128(t23));
  }
  expressions[189] = BinaryenUnary(the_module, 88, expressions[188]);
  {
    uint8_t t24[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[190] = BinaryenConst(the_module, BinaryenLiteralVec128(t24));
  }
  expressions[191] = BinaryenUnary(the_module, 89, expressions[190]);
  {
    uint8_t t25[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[192] = BinaryenConst(the_module, BinaryenLiteralVec128(t25));
  }
  expressions[193] = BinaryenUnary(the_module, 90, expressions[192]);
  {
    uint8_t t26[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[194] = BinaryenConst(the_module, BinaryenLiteralVec128(t26));
  }
  expressions[195] = BinaryenUnary(the_module, 91, expressions[194]);
  {
    uint8_t t27[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[196] = BinaryenConst(the_module, BinaryenLiteralVec128(t27));
  }
  expressions[197] = BinaryenUnary(the_module, 92, expressions[196]);
  expressions[198] = BinaryenConst(the_module, BinaryenLiteralInt32(-11));
  expressions[199] = BinaryenConst(the_module, BinaryenLiteralInt32(-10));
  expressions[200] = BinaryenBinary(the_module, 0, expressions[199], expressions[198]);
  expressions[201] = BinaryenConst(the_module, BinaryenLiteralFloat64(-9007.33));
  expressions[202] = BinaryenConst(the_module, BinaryenLiteralFloat64(-9005.84));
  expressions[203] = BinaryenBinary(the_module, 64, expressions[202], expressions[201]);
  expressions[204] = BinaryenConst(the_module, BinaryenLiteralInt32(-11));
  expressions[205] = BinaryenConst(the_module, BinaryenLiteralInt32(-10));
  expressions[206] = BinaryenBinary(the_module, 3, expressions[205], expressions[204]);
  expressions[207] = BinaryenConst(the_module, BinaryenLiteralInt64(-23));
  expressions[208] = BinaryenConst(the_module, BinaryenLiteralInt64(-22));
  expressions[209] = BinaryenBinary(the_module, 29, expressions[208], expressions[207]);
  expressions[210] = BinaryenConst(the_module, BinaryenLiteralInt64(-23));
  expressions[211] = BinaryenConst(the_module, BinaryenLiteralInt64(-22));
  expressions[212] = BinaryenBinary(the_module, 30, expressions[211], expressions[210]);
  expressions[213] = BinaryenConst(the_module, BinaryenLiteralInt32(-11));
  expressions[214] = BinaryenConst(the_module, BinaryenLiteralInt32(-10));
  expressions[215] = BinaryenBinary(the_module, 6, expressions[214], expressions[213]);
  expressions[216] = BinaryenConst(the_module, BinaryenLiteralInt32(-11));
  expressions[217] = BinaryenConst(the_module, BinaryenLiteralInt32(-10));
  expressions[218] = BinaryenBinary(the_module, 7, expressions[217], expressions[216]);
  expressions[219] = BinaryenConst(the_module, BinaryenLiteralInt64(-23));
  expressions[220] = BinaryenConst(the_module, BinaryenLiteralInt64(-22));
  expressions[221] = BinaryenBinary(the_module, 33, expressions[220], expressions[219]);
  expressions[222] = BinaryenConst(the_module, BinaryenLiteralInt32(-11));
  expressions[223] = BinaryenConst(the_module, BinaryenLiteralInt32(-10));
  expressions[224] = BinaryenBinary(the_module, 9, expressions[223], expressions[222]);
  expressions[225] = BinaryenConst(the_module, BinaryenLiteralInt64(-23));
  expressions[226] = BinaryenConst(the_module, BinaryenLiteralInt64(-22));
  expressions[227] = BinaryenBinary(the_module, 35, expressions[226], expressions[225]);
  expressions[228] = BinaryenConst(the_module, BinaryenLiteralInt64(-23));
  expressions[229] = BinaryenConst(the_module, BinaryenLiteralInt64(-22));
  expressions[230] = BinaryenBinary(the_module, 36, expressions[229], expressions[228]);
  expressions[231] = BinaryenConst(the_module, BinaryenLiteralInt32(-11));
  expressions[232] = BinaryenConst(the_module, BinaryenLiteralInt32(-10));
  expressions[233] = BinaryenBinary(the_module, 12, expressions[232], expressions[231]);
  expressions[234] = BinaryenConst(the_module, BinaryenLiteralInt32(-11));
  expressions[235] = BinaryenConst(the_module, BinaryenLiteralInt32(-10));
  expressions[236] = BinaryenBinary(the_module, 13, expressions[235], expressions[234]);
  expressions[237] = BinaryenConst(the_module, BinaryenLiteralInt64(-23));
  expressions[238] = BinaryenConst(the_module, BinaryenLiteralInt64(-22));
  expressions[239] = BinaryenBinary(the_module, 39, expressions[238], expressions[237]);
  expressions[240] = BinaryenConst(the_module, BinaryenLiteralFloat32(-62.5));
  expressions[241] = BinaryenConst(the_module, BinaryenLiteralFloat32(-33.612));
  expressions[242] = BinaryenBinary(the_module, 53, expressions[241], expressions[240]);
  expressions[243] = BinaryenConst(the_module, BinaryenLiteralFloat64(-9007.33));
  expressions[244] = BinaryenConst(the_module, BinaryenLiteralFloat64(-9005.84));
  expressions[245] = BinaryenBinary(the_module, 67, expressions[244], expressions[243]);
  expressions[246] = BinaryenConst(the_module, BinaryenLiteralFloat32(-62.5));
  expressions[247] = BinaryenConst(the_module, BinaryenLiteralFloat32(-33.612));
  expressions[248] = BinaryenBinary(the_module, 55, expressions[247], expressions[246]);
  expressions[249] = BinaryenConst(the_module, BinaryenLiteralFloat64(-9007.33));
  expressions[250] = BinaryenConst(the_module, BinaryenLiteralFloat64(-9005.84));
  expressions[251] = BinaryenBinary(the_module, 69, expressions[250], expressions[249]);
  expressions[252] = BinaryenConst(the_module, BinaryenLiteralInt32(-11));
  expressions[253] = BinaryenConst(the_module, BinaryenLiteralInt32(-10));
  expressions[254] = BinaryenBinary(the_module, 15, expressions[253], expressions[252]);
  expressions[255] = BinaryenConst(the_module, BinaryenLiteralFloat32(-62.5));
  expressions[256] = BinaryenConst(the_module, BinaryenLiteralFloat32(-33.612));
  expressions[257] = BinaryenBinary(the_module, 58, expressions[256], expressions[255]);
  expressions[258] = BinaryenConst(the_module, BinaryenLiteralInt32(-11));
  expressions[259] = BinaryenConst(the_module, BinaryenLiteralInt32(-10));
  expressions[260] = BinaryenBinary(the_module, 17, expressions[259], expressions[258]);
  expressions[261] = BinaryenConst(the_module, BinaryenLiteralInt64(-23));
  expressions[262] = BinaryenConst(the_module, BinaryenLiteralInt64(-22));
  expressions[263] = BinaryenBinary(the_module, 43, expressions[262], expressions[261]);
  expressions[264] = BinaryenConst(the_module, BinaryenLiteralInt64(-23));
  expressions[265] = BinaryenConst(the_module, BinaryenLiteralInt64(-22));
  expressions[266] = BinaryenBinary(the_module, 44, expressions[265], expressions[264]);
  expressions[267] = BinaryenConst(the_module, BinaryenLiteralInt32(-11));
  expressions[268] = BinaryenConst(the_module, BinaryenLiteralInt32(-10));
  expressions[269] = BinaryenBinary(the_module, 20, expressions[268], expressions[267]);
  expressions[270] = BinaryenConst(the_module, BinaryenLiteralInt64(-23));
  expressions[271] = BinaryenConst(the_module, BinaryenLiteralInt64(-22));
  expressions[272] = BinaryenBinary(the_module, 46, expressions[271], expressions[270]);
  expressions[273] = BinaryenConst(the_module, BinaryenLiteralInt32(-11));
  expressions[274] = BinaryenConst(the_module, BinaryenLiteralInt32(-10));
  expressions[275] = BinaryenBinary(the_module, 22, expressions[274], expressions[273]);
  expressions[276] = BinaryenConst(the_module, BinaryenLiteralInt32(-11));
  expressions[277] = BinaryenConst(the_module, BinaryenLiteralInt32(-10));
  expressions[278] = BinaryenBinary(the_module, 23, expressions[277], expressions[276]);
  expressions[279] = BinaryenConst(the_module, BinaryenLiteralInt64(-23));
  expressions[280] = BinaryenConst(the_module, BinaryenLiteralInt64(-22));
  expressions[281] = BinaryenBinary(the_module, 49, expressions[280], expressions[279]);
  expressions[282] = BinaryenConst(the_module, BinaryenLiteralFloat32(-62.5));
  expressions[283] = BinaryenConst(the_module, BinaryenLiteralFloat32(-33.612));
  expressions[284] = BinaryenBinary(the_module, 59, expressions[283], expressions[282]);
  expressions[285] = BinaryenConst(the_module, BinaryenLiteralFloat64(-9007.33));
  expressions[286] = BinaryenConst(the_module, BinaryenLiteralFloat64(-9005.84));
  expressions[287] = BinaryenBinary(the_module, 73, expressions[286], expressions[285]);
  expressions[288] = BinaryenConst(the_module, BinaryenLiteralFloat64(-9007.33));
  expressions[289] = BinaryenConst(the_module, BinaryenLiteralFloat64(-9005.84));
  expressions[290] = BinaryenBinary(the_module, 74, expressions[289], expressions[288]);
  expressions[291] = BinaryenConst(the_module, BinaryenLiteralFloat32(-62.5));
  expressions[292] = BinaryenConst(the_module, BinaryenLiteralFloat32(-33.612));
  expressions[293] = BinaryenBinary(the_module, 62, expressions[292], expressions[291]);
  {
    uint8_t t28[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[294] = BinaryenConst(the_module, BinaryenLiteralVec128(t28));
  }
  {
    uint8_t t29[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[295] = BinaryenConst(the_module, BinaryenLiteralVec128(t29));
  }
  expressions[296] = BinaryenBinary(the_module, 76, expressions[295], expressions[294]);
  {
    uint8_t t30[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[297] = BinaryenConst(the_module, BinaryenLiteralVec128(t30));
  }
  {
    uint8_t t31[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[298] = BinaryenConst(the_module, BinaryenLiteralVec128(t31));
  }
  expressions[299] = BinaryenBinary(the_module, 77, expressions[298], expressions[297]);
  {
    uint8_t t32[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[300] = BinaryenConst(the_module, BinaryenLiteralVec128(t32));
  }
  {
    uint8_t t33[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[301] = BinaryenConst(the_module, BinaryenLiteralVec128(t33));
  }
  expressions[302] = BinaryenBinary(the_module, 78, expressions[301], expressions[300]);
  {
    uint8_t t34[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[303] = BinaryenConst(the_module, BinaryenLiteralVec128(t34));
  }
  {
    uint8_t t35[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[304] = BinaryenConst(the_module, BinaryenLiteralVec128(t35));
  }
  expressions[305] = BinaryenBinary(the_module, 79, expressions[304], expressions[303]);
  {
    uint8_t t36[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[306] = BinaryenConst(the_module, BinaryenLiteralVec128(t36));
  }
  {
    uint8_t t37[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[307] = BinaryenConst(the_module, BinaryenLiteralVec128(t37));
  }
  expressions[308] = BinaryenBinary(the_module, 80, expressions[307], expressions[306]);
  {
    uint8_t t38[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[309] = BinaryenConst(the_module, BinaryenLiteralVec128(t38));
  }
  {
    uint8_t t39[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[310] = BinaryenConst(the_module, BinaryenLiteralVec128(t39));
  }
  expressions[311] = BinaryenBinary(the_module, 81, expressions[310], expressions[309]);
  {
    uint8_t t40[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[312] = BinaryenConst(the_module, BinaryenLiteralVec128(t40));
  }
  {
    uint8_t t41[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[313] = BinaryenConst(the_module, BinaryenLiteralVec128(t41));
  }
  expressions[314] = BinaryenBinary(the_module, 82, expressions[313], expressions[312]);
  {
    uint8_t t42[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[315] = BinaryenConst(the_module, BinaryenLiteralVec128(t42));
  }
  {
    uint8_t t43[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[316] = BinaryenConst(the_module, BinaryenLiteralVec128(t43));
  }
  expressions[317] = BinaryenBinary(the_module, 83, expressions[316], expressions[315]);
  {
    uint8_t t44[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[318] = BinaryenConst(the_module, BinaryenLiteralVec128(t44));
  }
  {
    uint8_t t45[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[319] = BinaryenConst(the_module, BinaryenLiteralVec128(t45));
  }
  expressions[320] = BinaryenBinary(the_module, 84, expressions[319], expressions[318]);
  {
    uint8_t t46[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[321] = BinaryenConst(the_module, BinaryenLiteralVec128(t46));
  }
  {
    uint8_t t47[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[322] = BinaryenConst(the_module, BinaryenLiteralVec128(t47));
  }
  expressions[323] = BinaryenBinary(the_module, 85, expressions[322], expressions[321]);
  {
    uint8_t t48[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[324] = BinaryenConst(the_module, BinaryenLiteralVec128(t48));
  }
  {
    uint8_t t49[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[325] = BinaryenConst(the_module, BinaryenLiteralVec128(t49));
  }
  expressions[326] = BinaryenBinary(the_module, 86, expressions[325], expressions[324]);
  {
    uint8_t t50[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[327] = BinaryenConst(the_module, BinaryenLiteralVec128(t50));
  }
  {
    uint8_t t51[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[328] = BinaryenConst(the_module, BinaryenLiteralVec128(t51));
  }
  expressions[329] = BinaryenBinary(the_module, 87, expressions[328], expressions[327]);
  {
    uint8_t t52[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[330] = BinaryenConst(the_module, BinaryenLiteralVec128(t52));
  }
  {
    uint8_t t53[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[331] = BinaryenConst(the_module, BinaryenLiteralVec128(t53));
  }
  expressions[332] = BinaryenBinary(the_module, 88, expressions[331], expressions[330]);
  {
    uint8_t t54[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[333] = BinaryenConst(the_module, BinaryenLiteralVec128(t54));
  }
  {
    uint8_t t55[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[334] = BinaryenConst(the_module, BinaryenLiteralVec128(t55));
  }
  expressions[335] = BinaryenBinary(the_module, 89, expressions[334], expressions[333]);
  {
    uint8_t t56[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[336] = BinaryenConst(the_module, BinaryenLiteralVec128(t56));
  }
  {
    uint8_t t57[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[337] = BinaryenConst(the_module, BinaryenLiteralVec128(t57));
  }
  expressions[338] = BinaryenBinary(the_module, 90, expressions[337], expressions[336]);
  {
    uint8_t t58[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[339] = BinaryenConst(the_module, BinaryenLiteralVec128(t58));
  }
  {
    uint8_t t59[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[340] = BinaryenConst(the_module, BinaryenLiteralVec128(t59));
  }
  expressions[341] = BinaryenBinary(the_module, 91, expressions[340], expressions[339]);
  {
    uint8_t t60[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[342] = BinaryenConst(the_module, BinaryenLiteralVec128(t60));
  }
  {
    uint8_t t61[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[343] = BinaryenConst(the_module, BinaryenLiteralVec128(t61));
  }
  expressions[344] = BinaryenBinary(the_module, 92, expressions[343], expressions[342]);
  {
    uint8_t t62[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[345] = BinaryenConst(the_module, BinaryenLiteralVec128(t62));
  }
  {
    uint8_t t63[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[346] = BinaryenConst(the_module, BinaryenLiteralVec128(t63));
  }
  expressions[347] = BinaryenBinary(the_module, 93, expressions[346], expressions[345]);
  {
    uint8_t t64[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[348] = BinaryenConst(the_module, BinaryenLiteralVec128(t64));
  }
  {
    uint8_t t65[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[349] = BinaryenConst(the_module, BinaryenLiteralVec128(t65));
  }
  expressions[350] = BinaryenBinary(the_module, 94, expressions[349], expressions[348]);
  {
    uint8_t t66[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[351] = BinaryenConst(the_module, BinaryenLiteralVec128(t66));
  }
  {
    uint8_t t67[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[352] = BinaryenConst(the_module, BinaryenLiteralVec128(t67));
  }
  expressions[353] = BinaryenBinary(the_module, 95, expressions[352], expressions[351]);
  {
    uint8_t t68[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[354] = BinaryenConst(the_module, BinaryenLiteralVec128(t68));
  }
  {
    uint8_t t69[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[355] = BinaryenConst(the_module, BinaryenLiteralVec128(t69));
  }
  expressions[356] = BinaryenBinary(the_module, 96, expressions[355], expressions[354]);
  {
    uint8_t t70[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[357] = BinaryenConst(the_module, BinaryenLiteralVec128(t70));
  }
  {
    uint8_t t71[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[358] = BinaryenConst(the_module, BinaryenLiteralVec128(t71));
  }
  expressions[359] = BinaryenBinary(the_module, 97, expressions[358], expressions[357]);
  {
    uint8_t t72[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[360] = BinaryenConst(the_module, BinaryenLiteralVec128(t72));
  }
  {
    uint8_t t73[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[361] = BinaryenConst(the_module, BinaryenLiteralVec128(t73));
  }
  expressions[362] = BinaryenBinary(the_module, 98, expressions[361], expressions[360]);
  {
    uint8_t t74[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[363] = BinaryenConst(the_module, BinaryenLiteralVec128(t74));
  }
  {
    uint8_t t75[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[364] = BinaryenConst(the_module, BinaryenLiteralVec128(t75));
  }
  expressions[365] = BinaryenBinary(the_module, 99, expressions[364], expressions[363]);
  {
    uint8_t t76[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[366] = BinaryenConst(the_module, BinaryenLiteralVec128(t76));
  }
  {
    uint8_t t77[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[367] = BinaryenConst(the_module, BinaryenLiteralVec128(t77));
  }
  expressions[368] = BinaryenBinary(the_module, 100, expressions[367], expressions[366]);
  {
    uint8_t t78[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[369] = BinaryenConst(the_module, BinaryenLiteralVec128(t78));
  }
  {
    uint8_t t79[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[370] = BinaryenConst(the_module, BinaryenLiteralVec128(t79));
  }
  expressions[371] = BinaryenBinary(the_module, 101, expressions[370], expressions[369]);
  {
    uint8_t t80[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[372] = BinaryenConst(the_module, BinaryenLiteralVec128(t80));
  }
  {
    uint8_t t81[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[373] = BinaryenConst(the_module, BinaryenLiteralVec128(t81));
  }
  expressions[374] = BinaryenBinary(the_module, 102, expressions[373], expressions[372]);
  {
    uint8_t t82[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[375] = BinaryenConst(the_module, BinaryenLiteralVec128(t82));
  }
  {
    uint8_t t83[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[376] = BinaryenConst(the_module, BinaryenLiteralVec128(t83));
  }
  expressions[377] = BinaryenBinary(the_module, 103, expressions[376], expressions[375]);
  {
    uint8_t t84[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[378] = BinaryenConst(the_module, BinaryenLiteralVec128(t84));
  }
  {
    uint8_t t85[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[379] = BinaryenConst(the_module, BinaryenLiteralVec128(t85));
  }
  expressions[380] = BinaryenBinary(the_module, 104, expressions[379], expressions[378]);
  {
    uint8_t t86[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[381] = BinaryenConst(the_module, BinaryenLiteralVec128(t86));
  }
  {
    uint8_t t87[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[382] = BinaryenConst(the_module, BinaryenLiteralVec128(t87));
  }
  expressions[383] = BinaryenBinary(the_module, 105, expressions[382], expressions[381]);
  {
    uint8_t t88[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[384] = BinaryenConst(the_module, BinaryenLiteralVec128(t88));
  }
  {
    uint8_t t89[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[385] = BinaryenConst(the_module, BinaryenLiteralVec128(t89));
  }
  expressions[386] = BinaryenBinary(the_module, 106, expressions[385], expressions[384]);
  {
    uint8_t t90[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[387] = BinaryenConst(the_module, BinaryenLiteralVec128(t90));
  }
  {
    uint8_t t91[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[388] = BinaryenConst(the_module, BinaryenLiteralVec128(t91));
  }
  expressions[389] = BinaryenBinary(the_module, 107, expressions[388], expressions[387]);
  {
    uint8_t t92[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[390] = BinaryenConst(the_module, BinaryenLiteralVec128(t92));
  }
  {
    uint8_t t93[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[391] = BinaryenConst(the_module, BinaryenLiteralVec128(t93));
  }
  expressions[392] = BinaryenBinary(the_module, 108, expressions[391], expressions[390]);
  {
    uint8_t t94[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[393] = BinaryenConst(the_module, BinaryenLiteralVec128(t94));
  }
  {
    uint8_t t95[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[394] = BinaryenConst(the_module, BinaryenLiteralVec128(t95));
  }
  expressions[395] = BinaryenBinary(the_module, 109, expressions[394], expressions[393]);
  {
    uint8_t t96[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[396] = BinaryenConst(the_module, BinaryenLiteralVec128(t96));
  }
  {
    uint8_t t97[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[397] = BinaryenConst(the_module, BinaryenLiteralVec128(t97));
  }
  expressions[398] = BinaryenBinary(the_module, 110, expressions[397], expressions[396]);
  {
    uint8_t t98[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[399] = BinaryenConst(the_module, BinaryenLiteralVec128(t98));
  }
  {
    uint8_t t99[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[400] = BinaryenConst(the_module, BinaryenLiteralVec128(t99));
  }
  expressions[401] = BinaryenBinary(the_module, 111, expressions[400], expressions[399]);
  {
    uint8_t t100[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[402] = BinaryenConst(the_module, BinaryenLiteralVec128(t100));
  }
  {
    uint8_t t101[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[403] = BinaryenConst(the_module, BinaryenLiteralVec128(t101));
  }
  expressions[404] = BinaryenBinary(the_module, 112, expressions[403], expressions[402]);
  {
    uint8_t t102[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[405] = BinaryenConst(the_module, BinaryenLiteralVec128(t102));
  }
  {
    uint8_t t103[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[406] = BinaryenConst(the_module, BinaryenLiteralVec128(t103));
  }
  expressions[407] = BinaryenBinary(the_module, 113, expressions[406], expressions[405]);
  {
    uint8_t t104[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[408] = BinaryenConst(the_module, BinaryenLiteralVec128(t104));
  }
  {
    uint8_t t105[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[409] = BinaryenConst(the_module, BinaryenLiteralVec128(t105));
  }
  expressions[410] = BinaryenBinary(the_module, 114, expressions[409], expressions[408]);
  {
    uint8_t t106[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[411] = BinaryenConst(the_module, BinaryenLiteralVec128(t106));
  }
  {
    uint8_t t107[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[412] = BinaryenConst(the_module, BinaryenLiteralVec128(t107));
  }
  expressions[413] = BinaryenBinary(the_module, 115, expressions[412], expressions[411]);
  {
    uint8_t t108[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[414] = BinaryenConst(the_module, BinaryenLiteralVec128(t108));
  }
  {
    uint8_t t109[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[415] = BinaryenConst(the_module, BinaryenLiteralVec128(t109));
  }
  expressions[416] = BinaryenBinary(the_module, 116, expressions[415], expressions[414]);
  {
    uint8_t t110[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[417] = BinaryenConst(the_module, BinaryenLiteralVec128(t110));
  }
  {
    uint8_t t111[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[418] = BinaryenConst(the_module, BinaryenLiteralVec128(t111));
  }
  expressions[419] = BinaryenBinary(the_module, 117, expressions[418], expressions[417]);
  {
    uint8_t t112[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[420] = BinaryenConst(the_module, BinaryenLiteralVec128(t112));
  }
  {
    uint8_t t113[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[421] = BinaryenConst(the_module, BinaryenLiteralVec128(t113));
  }
  expressions[422] = BinaryenBinary(the_module, 118, expressions[421], expressions[420]);
  {
    uint8_t t114[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[423] = BinaryenConst(the_module, BinaryenLiteralVec128(t114));
  }
  {
    uint8_t t115[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[424] = BinaryenConst(the_module, BinaryenLiteralVec128(t115));
  }
  expressions[425] = BinaryenBinary(the_module, 119, expressions[424], expressions[423]);
  {
    uint8_t t116[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[426] = BinaryenConst(the_module, BinaryenLiteralVec128(t116));
  }
  {
    uint8_t t117[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[427] = BinaryenConst(the_module, BinaryenLiteralVec128(t117));
  }
  expressions[428] = BinaryenBinary(the_module, 120, expressions[427], expressions[426]);
  {
    uint8_t t118[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[429] = BinaryenConst(the_module, BinaryenLiteralVec128(t118));
  }
  {
    uint8_t t119[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[430] = BinaryenConst(the_module, BinaryenLiteralVec128(t119));
  }
  expressions[431] = BinaryenBinary(the_module, 121, expressions[430], expressions[429]);
  {
    uint8_t t120[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[432] = BinaryenConst(the_module, BinaryenLiteralVec128(t120));
  }
  {
    uint8_t t121[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[433] = BinaryenConst(the_module, BinaryenLiteralVec128(t121));
  }
  expressions[434] = BinaryenBinary(the_module, 122, expressions[433], expressions[432]);
  {
    uint8_t t122[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[435] = BinaryenConst(the_module, BinaryenLiteralVec128(t122));
  }
  {
    uint8_t t123[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[436] = BinaryenConst(the_module, BinaryenLiteralVec128(t123));
  }
  expressions[437] = BinaryenBinary(the_module, 123, expressions[436], expressions[435]);
  {
    uint8_t t124[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[438] = BinaryenConst(the_module, BinaryenLiteralVec128(t124));
  }
  {
    uint8_t t125[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[439] = BinaryenConst(the_module, BinaryenLiteralVec128(t125));
  }
  expressions[440] = BinaryenBinary(the_module, 124, expressions[439], expressions[438]);
  {
    uint8_t t126[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[441] = BinaryenConst(the_module, BinaryenLiteralVec128(t126));
  }
  {
    uint8_t t127[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[442] = BinaryenConst(the_module, BinaryenLiteralVec128(t127));
  }
  expressions[443] = BinaryenBinary(the_module, 125, expressions[442], expressions[441]);
  {
    uint8_t t128[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[444] = BinaryenConst(the_module, BinaryenLiteralVec128(t128));
  }
  {
    uint8_t t129[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[445] = BinaryenConst(the_module, BinaryenLiteralVec128(t129));
  }
  expressions[446] = BinaryenBinary(the_module, 126, expressions[445], expressions[444]);
  {
    uint8_t t130[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[447] = BinaryenConst(the_module, BinaryenLiteralVec128(t130));
  }
  {
    uint8_t t131[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[448] = BinaryenConst(the_module, BinaryenLiteralVec128(t131));
  }
  expressions[449] = BinaryenBinary(the_module, 127, expressions[448], expressions[447]);
  {
    uint8_t t132[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[450] = BinaryenConst(the_module, BinaryenLiteralVec128(t132));
  }
  {
    uint8_t t133[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[451] = BinaryenConst(the_module, BinaryenLiteralVec128(t133));
  }
  expressions[452] = BinaryenBinary(the_module, 128, expressions[451], expressions[450]);
  {
    uint8_t t134[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[453] = BinaryenConst(the_module, BinaryenLiteralVec128(t134));
  }
  {
    uint8_t t135[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[454] = BinaryenConst(the_module, BinaryenLiteralVec128(t135));
  }
  expressions[455] = BinaryenBinary(the_module, 129, expressions[454], expressions[453]);
  {
    uint8_t t136[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[456] = BinaryenConst(the_module, BinaryenLiteralVec128(t136));
  }
  {
    uint8_t t137[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[457] = BinaryenConst(the_module, BinaryenLiteralVec128(t137));
  }
  expressions[458] = BinaryenBinary(the_module, 130, expressions[457], expressions[456]);
  {
    uint8_t t138[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[459] = BinaryenConst(the_module, BinaryenLiteralVec128(t138));
  }
  {
    uint8_t t139[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[460] = BinaryenConst(the_module, BinaryenLiteralVec128(t139));
  }
  expressions[461] = BinaryenBinary(the_module, 131, expressions[460], expressions[459]);
  {
    uint8_t t140[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[462] = BinaryenConst(the_module, BinaryenLiteralVec128(t140));
  }
  {
    uint8_t t141[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[463] = BinaryenConst(the_module, BinaryenLiteralVec128(t141));
  }
  expressions[464] = BinaryenBinary(the_module, 132, expressions[463], expressions[462]);
  {
    uint8_t t142[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[465] = BinaryenConst(the_module, BinaryenLiteralVec128(t142));
  }
  {
    uint8_t t143[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[466] = BinaryenConst(the_module, BinaryenLiteralVec128(t143));
  }
  expressions[467] = BinaryenBinary(the_module, 133, expressions[466], expressions[465]);
  {
    uint8_t t144[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[468] = BinaryenConst(the_module, BinaryenLiteralVec128(t144));
  }
  {
    uint8_t t145[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[469] = BinaryenConst(the_module, BinaryenLiteralVec128(t145));
  }
  expressions[470] = BinaryenBinary(the_module, 134, expressions[469], expressions[468]);
  {
    uint8_t t146[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[471] = BinaryenConst(the_module, BinaryenLiteralVec128(t146));
  }
  {
    uint8_t t147[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[472] = BinaryenConst(the_module, BinaryenLiteralVec128(t147));
  }
  expressions[473] = BinaryenBinary(the_module, 135, expressions[472], expressions[471]);
  {
    uint8_t t148[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[474] = BinaryenConst(the_module, BinaryenLiteralVec128(t148));
  }
  {
    uint8_t t149[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[475] = BinaryenConst(the_module, BinaryenLiteralVec128(t149));
  }
  expressions[476] = BinaryenBinary(the_module, 136, expressions[475], expressions[474]);
  {
    uint8_t t150[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[477] = BinaryenConst(the_module, BinaryenLiteralVec128(t150));
  }
  {
    uint8_t t151[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[478] = BinaryenConst(the_module, BinaryenLiteralVec128(t151));
  }
  expressions[479] = BinaryenBinary(the_module, 137, expressions[478], expressions[477]);
  {
    uint8_t t152[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[480] = BinaryenConst(the_module, BinaryenLiteralVec128(t152));
  }
  {
    uint8_t t153[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[481] = BinaryenConst(the_module, BinaryenLiteralVec128(t153));
  }
  expressions[482] = BinaryenBinary(the_module, 138, expressions[481], expressions[480]);
  {
    uint8_t t154[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[483] = BinaryenConst(the_module, BinaryenLiteralVec128(t154));
  }
  {
    uint8_t t155[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[484] = BinaryenConst(the_module, BinaryenLiteralVec128(t155));
  }
  expressions[485] = BinaryenBinary(the_module, 139, expressions[484], expressions[483]);
  {
    uint8_t t156[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[486] = BinaryenConst(the_module, BinaryenLiteralVec128(t156));
  }
  {
    uint8_t t157[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[487] = BinaryenConst(the_module, BinaryenLiteralVec128(t157));
  }
  expressions[488] = BinaryenBinary(the_module, 140, expressions[487], expressions[486]);
  {
    uint8_t t158[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[489] = BinaryenConst(the_module, BinaryenLiteralVec128(t158));
  }
  {
    uint8_t t159[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[490] = BinaryenConst(the_module, BinaryenLiteralVec128(t159));
  }
  expressions[491] = BinaryenBinary(the_module, 141, expressions[490], expressions[489]);
  {
    uint8_t t160[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[492] = BinaryenConst(the_module, BinaryenLiteralVec128(t160));
  }
  {
    uint8_t t161[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[493] = BinaryenConst(the_module, BinaryenLiteralVec128(t161));
  }
  expressions[494] = BinaryenBinary(the_module, 142, expressions[493], expressions[492]);
  {
    uint8_t t162[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[495] = BinaryenConst(the_module, BinaryenLiteralVec128(t162));
  }
  {
    uint8_t t163[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[496] = BinaryenConst(the_module, BinaryenLiteralVec128(t163));
  }
  expressions[497] = BinaryenBinary(the_module, 143, expressions[496], expressions[495]);
  {
    uint8_t t164[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[498] = BinaryenConst(the_module, BinaryenLiteralVec128(t164));
  }
  {
    uint8_t t165[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[499] = BinaryenConst(the_module, BinaryenLiteralVec128(t165));
  }
  expressions[500] = BinaryenBinary(the_module, 144, expressions[499], expressions[498]);
  {
    uint8_t t166[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[501] = BinaryenConst(the_module, BinaryenLiteralVec128(t166));
  }
  {
    uint8_t t167[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[502] = BinaryenConst(the_module, BinaryenLiteralVec128(t167));
  }
  expressions[503] = BinaryenBinary(the_module, 145, expressions[502], expressions[501]);
  {
    uint8_t t168[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[504] = BinaryenConst(the_module, BinaryenLiteralVec128(t168));
  }
  {
    uint8_t t169[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[505] = BinaryenConst(the_module, BinaryenLiteralVec128(t169));
  }
  expressions[506] = BinaryenBinary(the_module, 146, expressions[505], expressions[504]);
  {
    uint8_t t170[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[507] = BinaryenConst(the_module, BinaryenLiteralVec128(t170));
  }
  {
    uint8_t t171[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[508] = BinaryenConst(the_module, BinaryenLiteralVec128(t171));
  }
  expressions[509] = BinaryenBinary(the_module, 147, expressions[508], expressions[507]);
  {
    uint8_t t172[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[510] = BinaryenConst(the_module, BinaryenLiteralVec128(t172));
  }
  {
    uint8_t t173[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[511] = BinaryenConst(the_module, BinaryenLiteralVec128(t173));
  }
  expressions[512] = BinaryenBinary(the_module, 148, expressions[511], expressions[510]);
  {
    uint8_t t174[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[513] = BinaryenConst(the_module, BinaryenLiteralVec128(t174));
  }
  {
    uint8_t t175[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[514] = BinaryenConst(the_module, BinaryenLiteralVec128(t175));
  }
  expressions[515] = BinaryenBinary(the_module, 149, expressions[514], expressions[513]);
  {
    uint8_t t176[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[516] = BinaryenConst(the_module, BinaryenLiteralVec128(t176));
  }
  {
    uint8_t t177[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[517] = BinaryenConst(the_module, BinaryenLiteralVec128(t177));
  }
  expressions[518] = BinaryenBinary(the_module, 150, expressions[517], expressions[516]);
  {
    uint8_t t178[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[519] = BinaryenConst(the_module, BinaryenLiteralVec128(t178));
  }
  {
    uint8_t t179[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[520] = BinaryenConst(the_module, BinaryenLiteralVec128(t179));
  }
  expressions[521] = BinaryenBinary(the_module, 151, expressions[520], expressions[519]);
  {
    uint8_t t180[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[522] = BinaryenConst(the_module, BinaryenLiteralVec128(t180));
  }
  expressions[523] = BinaryenSIMDExtract(the_module, 0, expressions[522], 0);
  {
    uint8_t t181[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[524] = BinaryenConst(the_module, BinaryenLiteralVec128(t181));
  }
  expressions[525] = BinaryenSIMDExtract(the_module, 1, expressions[524], 0);
  {
    uint8_t t182[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[526] = BinaryenConst(the_module, BinaryenLiteralVec128(t182));
  }
  expressions[527] = BinaryenSIMDExtract(the_module, 2, expressions[526], 0);
  {
    uint8_t t183[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[528] = BinaryenConst(the_module, BinaryenLiteralVec128(t183));
  }
  expressions[529] = BinaryenSIMDExtract(the_module, 3, expressions[528], 0);
  {
    uint8_t t184[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[530] = BinaryenConst(the_module, BinaryenLiteralVec128(t184));
  }
  expressions[531] = BinaryenSIMDExtract(the_module, 4, expressions[530], 0);
  {
    uint8_t t185[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[532] = BinaryenConst(the_module, BinaryenLiteralVec128(t185));
  }
  expressions[533] = BinaryenSIMDExtract(the_module, 5, expressions[532], 0);
  {
    uint8_t t186[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[534] = BinaryenConst(the_module, BinaryenLiteralVec128(t186));
  }
  expressions[535] = BinaryenSIMDExtract(the_module, 6, expressions[534], 0);
  {
    uint8_t t187[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[536] = BinaryenConst(the_module, BinaryenLiteralVec128(t187));
  }
  expressions[537] = BinaryenSIMDExtract(the_module, 7, expressions[536], 0);
  expressions[538] = BinaryenConst(the_module, BinaryenLiteralInt32(42));
  {
    uint8_t t188[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[539] = BinaryenConst(the_module, BinaryenLiteralVec128(t188));
  }
  expressions[540] = BinaryenSIMDReplace(the_module, 0, expressions[539], 0, expressions[538]);
  expressions[541] = BinaryenConst(the_module, BinaryenLiteralInt32(42));
  {
    uint8_t t189[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[542] = BinaryenConst(the_module, BinaryenLiteralVec128(t189));
  }
  expressions[543] = BinaryenSIMDReplace(the_module, 1, expressions[542], 0, expressions[541]);
  expressions[544] = BinaryenConst(the_module, BinaryenLiteralInt32(42));
  {
    uint8_t t190[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[545] = BinaryenConst(the_module, BinaryenLiteralVec128(t190));
  }
  expressions[546] = BinaryenSIMDReplace(the_module, 2, expressions[545], 0, expressions[544]);
  expressions[547] = BinaryenConst(the_module, BinaryenLiteralInt64(42));
  {
    uint8_t t191[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[548] = BinaryenConst(the_module, BinaryenLiteralVec128(t191));
  }
  expressions[549] = BinaryenSIMDReplace(the_module, 3, expressions[548], 0, expressions[547]);
  expressions[550] = BinaryenConst(the_module, BinaryenLiteralFloat32(42));
  {
    uint8_t t192[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[551] = BinaryenConst(the_module, BinaryenLiteralVec128(t192));
  }
  expressions[552] = BinaryenSIMDReplace(the_module, 4, expressions[551], 0, expressions[550]);
  expressions[553] = BinaryenConst(the_module, BinaryenLiteralFloat64(42));
  {
    uint8_t t193[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[554] = BinaryenConst(the_module, BinaryenLiteralVec128(t193));
  }
  expressions[555] = BinaryenSIMDReplace(the_module, 5, expressions[554], 0, expressions[553]);
  {
    uint8_t t194[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[556] = BinaryenConst(the_module, BinaryenLiteralVec128(t194));
  }
  expressions[557] = BinaryenConst(the_module, BinaryenLiteralInt32(1));
  expressions[558] = BinaryenSIMDShift(the_module, 0, expressions[556], expressions[557]);
  {
    uint8_t t195[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[559] = BinaryenConst(the_module, BinaryenLiteralVec128(t195));
  }
  expressions[560] = BinaryenConst(the_module, BinaryenLiteralInt32(1));
  expressions[561] = BinaryenSIMDShift(the_module, 1, expressions[559], expressions[560]);
  {
    uint8_t t196[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[562] = BinaryenConst(the_module, BinaryenLiteralVec128(t196));
  }
  expressions[563] = BinaryenConst(the_module, BinaryenLiteralInt32(1));
  expressions[564] = BinaryenSIMDShift(the_module, 2, expressions[562], expressions[563]);
  {
    uint8_t t197[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[565] = BinaryenConst(the_module, BinaryenLiteralVec128(t197));
  }
  expressions[566] = BinaryenConst(the_module, BinaryenLiteralInt32(1));
  expressions[567] = BinaryenSIMDShift(the_module, 3, expressions[565], expressions[566]);
  {
    uint8_t t198[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[568] = BinaryenConst(the_module, BinaryenLiteralVec128(t198));
  }
  expressions[569] = BinaryenConst(the_module, BinaryenLiteralInt32(1));
  expressions[570] = BinaryenSIMDShift(the_module, 4, expressions[568], expressions[569]);
  {
    uint8_t t199[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[571] = BinaryenConst(the_module, BinaryenLiteralVec128(t199));
  }
  expressions[572] = BinaryenConst(the_module, BinaryenLiteralInt32(1));
  expressions[573] = BinaryenSIMDShift(the_module, 5, expressions[571], expressions[572]);
  {
    uint8_t t200[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[574] = BinaryenConst(the_module, BinaryenLiteralVec128(t200));
  }
  expressions[575] = BinaryenConst(the_module, BinaryenLiteralInt32(1));
  expressions[576] = BinaryenSIMDShift(the_module, 6, expressions[574], expressions[575]);
  {
    uint8_t t201[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[577] = BinaryenConst(the_module, BinaryenLiteralVec128(t201));
  }
  expressions[578] = BinaryenConst(the_module, BinaryenLiteralInt32(1));
  expressions[579] = BinaryenSIMDShift(the_module, 7, expressions[577], expressions[578]);
  {
    uint8_t t202[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[580] = BinaryenConst(the_module, BinaryenLiteralVec128(t202));
  }
  expressions[581] = BinaryenConst(the_module, BinaryenLiteralInt32(1));
  expressions[582] = BinaryenSIMDShift(the_module, 8, expressions[580], expressions[581]);
  {
    uint8_t t203[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[583] = BinaryenConst(the_module, BinaryenLiteralVec128(t203));
  }
  expressions[584] = BinaryenConst(the_module, BinaryenLiteralInt32(1));
  expressions[585] = BinaryenSIMDShift(the_module, 9, expressions[583], expressions[584]);
  {
    uint8_t t204[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[586] = BinaryenConst(the_module, BinaryenLiteralVec128(t204));
  }
  expressions[587] = BinaryenConst(the_module, BinaryenLiteralInt32(1));
  expressions[588] = BinaryenSIMDShift(the_module, 10, expressions[586], expressions[587]);
  {
    uint8_t t205[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[589] = BinaryenConst(the_module, BinaryenLiteralVec128(t205));
  }
  expressions[590] = BinaryenConst(the_module, BinaryenLiteralInt32(1));
  expressions[591] = BinaryenSIMDShift(the_module, 11, expressions[589], expressions[590]);
  {
    uint8_t t206[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[592] = BinaryenConst(the_module, BinaryenLiteralVec128(t206));
  }
  {
    uint8_t t207[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[593] = BinaryenConst(the_module, BinaryenLiteralVec128(t207));
  }
  {
    uint8_t mask[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
    expressions[594] = BinaryenSIMDShuffle(the_module, expressions[592], expressions[593], mask);
  }
  {
    uint8_t t208[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[595] = BinaryenConst(the_module, BinaryenLiteralVec128(t208));
  }
  {
    uint8_t t209[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[596] = BinaryenConst(the_module, BinaryenLiteralVec128(t209));
  }
  {
    uint8_t t210[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    expressions[597] = BinaryenConst(the_module, BinaryenLiteralVec128(t210));
  }
  expressions[598] = BinaryenSIMDBitselect(the_module, expressions[595], expressions[596], expressions[597]);
  expressions[599] = BinaryenConst(the_module, BinaryenLiteralInt32(1024));
  expressions[600] = BinaryenConst(the_module, BinaryenLiteralInt32(0));
  expressions[601] = BinaryenConst(the_module, BinaryenLiteralInt32(12));
  expressions[602] = BinaryenMemoryInit(the_module, 0, expressions[599], expressions[600], expressions[601]);
  expressions[603] = BinaryenDataDrop(the_module, 0);
  expressions[604] = BinaryenConst(the_module, BinaryenLiteralInt32(2048));
  expressions[605] = BinaryenConst(the_module, BinaryenLiteralInt32(1024));
  expressions[606] = BinaryenConst(the_module, BinaryenLiteralInt32(12));
  expressions[607] = BinaryenMemoryCopy(the_module, expressions[604], expressions[605], expressions[606]);
  expressions[608] = BinaryenConst(the_module, BinaryenLiteralInt32(0));
  expressions[609] = BinaryenConst(the_module, BinaryenLiteralInt32(42));
  expressions[610] = BinaryenConst(the_module, BinaryenLiteralInt32(1024));
  expressions[611] = BinaryenMemoryFill(the_module, expressions[608], expressions[609], expressions[610]);
  {
    BinaryenExpressionRef children[] = { 0 };
    expressions[612] = BinaryenBlock(the_module, NULL, children, 0, BinaryenTypeAuto());
  }
  expressions[613] = BinaryenIf(the_module, expressions[18], expressions[19], expressions[20]);
  expressions[614] = BinaryenIf(the_module, expressions[21], expressions[22], expressions[0]);
  expressions[615] = BinaryenConst(the_module, BinaryenLiteralInt32(0));
  expressions[616] = BinaryenLoop(the_module, "in", expressions[615]);
  expressions[617] = BinaryenConst(the_module, BinaryenLiteralInt32(0));
  expressions[618] = BinaryenLoop(the_module, NULL, expressions[617]);
  expressions[619] = BinaryenBreak(the_module, "the-value", expressions[23], expressions[24]);
  expressions[620] = BinaryenConst(the_module, BinaryenLiteralInt32(2));
  expressions[621] = BinaryenBreak(the_module, "the-nothing", expressions[620], expressions[0]);
  expressions[622] = BinaryenConst(the_module, BinaryenLiteralInt32(3));
  expressions[623] = BinaryenBreak(the_module, "the-value", expressions[0], expressions[622]);
  expressions[624] = BinaryenBreak(the_module, "the-nothing", expressions[0], expressions[0]);
  {
    const char* names[] = { "the-value" };
    expressions[625] = BinaryenSwitch(the_module, names, 1, "the-value", expressions[25], expressions[26]);
  }
  expressions[626] = BinaryenConst(the_module, BinaryenLiteralInt32(2));
  {
    const char* names[] = { "the-nothing" };
    expressions[627] = BinaryenSwitch(the_module, names, 1, "the-nothing", expressions[626], expressions[0]);
  }
  {
    BinaryenExpressionRef operands[] = { expressions[10], expressions[11], expressions[12], expressions[13] };
    expressions[628] = BinaryenCall(the_module, "kitchen()sinker", operands, 4, 1);
  }
  expressions[629] = BinaryenUnary(the_module, 20, expressions[628]);
  {
    BinaryenExpressionRef operands[] = { expressions[8], expressions[9] };
    expressions[630] = BinaryenCall(the_module, "an-imported", operands, 2, 3);
  }
  expressions[631] = BinaryenUnary(the_module, 25, expressions[630]);
  expressions[632] = BinaryenUnary(the_module, 20, expressions[631]);
  expressions[633] = BinaryenConst(the_module, BinaryenLiteralInt32(2449));
  {
    BinaryenExpressionRef operands[] = { expressions[14], expressions[15], expressions[16], expressions[17] };
    expressions[634] = BinaryenCallIndirect(the_module, expressions[633], operands, 4, "iiIfF");
  }
  expressions[635] = BinaryenUnary(the_module, 20, expressions[634]);
  expressions[636] = BinaryenLocalGet(the_module, 0, 1);
  expressions[637] = BinaryenDrop(the_module, expressions[636]);
  expressions[638] = BinaryenConst(the_module, BinaryenLiteralInt32(101));
  expressions[639] = BinaryenLocalSet(the_module, 0, expressions[638]);
  expressions[640] = BinaryenConst(the_module, BinaryenLiteralInt32(102));
  expressions[641] = BinaryenLocalTee(the_module, 0, expressions[640]);
  expressions[642] = BinaryenDrop(the_module, expressions[641]);
  expressions[643] = BinaryenConst(the_module, BinaryenLiteralInt32(1));
  expressions[644] = BinaryenLoad(the_module, 4, 0, 0, 0, 1, expressions[643]);
  expressions[645] = BinaryenConst(the_module, BinaryenLiteralInt32(8));
  expressions[646] = BinaryenLoad(the_module, 2, 1, 2, 1, 2, expressions[645]);
  expressions[647] = BinaryenConst(the_module, BinaryenLiteralInt32(2));
  expressions[648] = BinaryenLoad(the_module, 4, 0, 0, 0, 3, expressions[647]);
  expressions[649] = BinaryenConst(the_module, BinaryenLiteralInt32(9));
  expressions[650] = BinaryenLoad(the_module, 8, 0, 2, 8, 4, expressions[649]);
  expressions[651] = BinaryenStore(the_module, 4, 0, 0, expressions[30], expressions[31], 1);
  expressions[652] = BinaryenStore(the_module, 8, 2, 4, expressions[32], expressions[33], 2);
  expressions[653] = BinaryenSelect(the_module, expressions[27], expressions[28], expressions[29]);
  expressions[654] = BinaryenConst(the_module, BinaryenLiteralInt32(1337));
  expressions[655] = BinaryenReturn(the_module, expressions[654]);
  {
    BinaryenExpressionRef operands[] = { expressions[10], expressions[11], expressions[12], expressions[13] };
    expressions[656] = BinaryenReturnCall(the_module, "kitchen()sinker", operands, 4, 1);
  }
  expressions[657] = BinaryenConst(the_module, BinaryenLiteralInt32(2449));
  {
    BinaryenExpressionRef operands[] = { expressions[14], expressions[15], expressions[16], expressions[17] };
    expressions[658] = BinaryenReturnCallIndirect(the_module, expressions[657], operands, 4, "iiIfF");
  }
  expressions[659] = BinaryenTry(the_module, expressions[35], expressions[43]);
  expressions[660] = BinaryenNop(the_module);
  expressions[661] = BinaryenUnreachable(the_module);
  BinaryenExpressionPrint(expressions[51]);
(f32.neg
 (f32.const -33.61199951171875)
)
  {
    BinaryenExpressionRef children[] = { expressions[45], expressions[47], expressions[49], expressions[51], expressions[53], 
       expressions[55], expressions[57], expressions[59], expressions[61], expressions[63], expressions[65], 
       expressions[67], expressions[69], expressions[71], expressions[73], expressions[75], expressions[77], 
       expressions[79], expressions[81], expressions[83], expressions[85], expressions[87], expressions[89], 
       expressions[91], expressions[93], expressions[95], expressions[97], expressions[99], expressions[101], 
       expressions[103], expressions[105], expressions[107], expressions[109], expressions[111], expressions[113], 
       expressions[115], expressions[117], expressions[119], expressions[121], expressions[123], expressions[125], 
       expressions[127], expressions[129], expressions[131], expressions[133], expressions[135], expressions[137], 
       expressions[139], expressions[141], expressions[143], expressions[145], expressions[147], expressions[149], 
       expressions[151], expressions[153], expressions[155], expressions[157], expressions[159], expressions[161], 
       expressions[163], expressions[165], expressions[167], expressions[169], expressions[171], expressions[173], 
       expressions[175], expressions[177], expressions[179], expressions[181], expressions[183], expressions[185], 
       expressions[187], expressions[189], expressions[191], expressions[193], expressions[195], expressions[197], 
       expressions[200], expressions[203], expressions[206], expressions[209], expressions[212], expressions[215], 
       expressions[218], expressions[221], expressions[224], expressions[227], expressions[230], expressions[233], 
       expressions[236], expressions[239], expressions[242], expressions[245], expressions[248], expressions[251], 
       expressions[254], expressions[257], expressions[260], expressions[263], expressions[266], expressions[269], 
       expressions[272], expressions[275], expressions[278], expressions[281], expressions[284], expressions[287], 
       expressions[290], expressions[293], expressions[296], expressions[299], expressions[302], expressions[305], 
       expressions[308], expressions[311], expressions[314], expressions[317], expressions[320], expressions[323], 
       expressions[326], expressions[329], expressions[332], expressions[335], expressions[338], expressions[341], 
       expressions[344], expressions[347], expressions[350], expressions[353], expressions[356], expressions[359], 
       expressions[362], expressions[365], expressions[368], expressions[371], expressions[374], expressions[377], 
       expressions[380], expressions[383], expressions[386], expressions[389], expressions[392], expressions[395], 
       expressions[398], expressions[401], expressions[404], expressions[407], expressions[410], expressions[413], 
       expressions[416], expressions[419], expressions[422], expressions[425], expressions[428], expressions[431], 
       expressions[434], expressions[437], expressions[440], expressions[443], expressions[446], expressions[449], 
       expressions[452], expressions[455], expressions[458], expressions[461], expressions[464], expressions[467], 
       expressions[470], expressions[473], expressions[476], expressions[479], expressions[482], expressions[485], 
       expressions[488], expressions[491], expressions[494], expressions[497], expressions[500], expressions[503], 
       expressions[506], expressions[509], expressions[512], expressions[515], expressions[518], expressions[521], 
       expressions[523], expressions[525], expressions[527], expressions[529], expressions[531], expressions[533], 
       expressions[535], expressions[537], expressions[540], expressions[543], expressions[546], expressions[549], 
       expressions[552], expressions[555], expressions[558], expressions[561], expressions[564], expressions[567], 
       expressions[570], expressions[573], expressions[576], expressions[579], expressions[582], expressions[585], 
       expressions[588], expressions[591], expressions[594], expressions[598], expressions[602], expressions[603], 
       expressions[607], expressions[611], expressions[612], expressions[613], expressions[614], expressions[616], 
       expressions[618], expressions[619], expressions[621], expressions[623], expressions[624], expressions[625], 
       expressions[627], expressions[629], expressions[632], expressions[635], expressions[637], expressions[639], 
       expressions[642], expressions[644], expressions[646], expressions[648], expressions[650], expressions[651], 
       expressions[652], expressions[653], expressions[655], expressions[656], expressions[658], expressions[659], 
       expressions[660], expressions[661] };
    expressions[662] = BinaryenBlock(the_module, "the-value", children, 247, BinaryenTypeAuto());
  }
  expressions[663] = BinaryenDrop(the_module, expressions[662]);
  {
    BinaryenExpressionRef children[] = { expressions[663] };
    expressions[664] = BinaryenBlock(the_module, "the-nothing", children, 1, BinaryenTypeAuto());
  }
  expressions[665] = BinaryenConst(the_module, BinaryenLiteralInt32(42));
  {
    BinaryenExpressionRef children[] = { expressions[664], expressions[665] };
    expressions[666] = BinaryenBlock(the_module, "the-body", children, 2, BinaryenTypeAuto());
  }
  {
    BinaryenType varTypes[] = { 1, 6 };
    functions[0] = BinaryenAddFunction(the_module, "kitchen()sinker", functionTypes[0], varTypes, 2, expressions[666]);
  }
  expressions[667] = BinaryenConst(the_module, BinaryenLiteralInt32(7));
  globals[0] = BinaryenAddGlobal(the_module, "a-global", 1, 0, expressions[667]);
  expressions[668] = BinaryenConst(the_module, BinaryenLiteralFloat32(7.5));
  globals[1] = BinaryenAddGlobal(the_module, "a-mutable-global", 3, 1, expressions[668]);
  {
    BinaryenType paramTypes[] = { 1, 4 };
    functionTypes[2] = BinaryenAddFunctionType(the_module, "fiF", 3, paramTypes, 2);
  }
  BinaryenAddFunctionImport(the_module, "an-imported", "module", "base", functionTypes[2]);
  exports[0] = BinaryenAddFunctionExport(the_module, "kitchen()sinker", "kitchen_sinker");
  BinaryenFunctionGetName(functions[0]);
  {
    const char* funcNames[] = { "kitchen()sinker" };
    BinaryenSetFunctionTable(the_module, 1, 1, funcNames, 1);
  }
  expressions[669] = BinaryenConst(the_module, BinaryenLiteralInt32(10));
  {
    const char segment0[] = { 104, 101, 108, 108, 111, 44, 32, 119, 111, 114, 108, 100 };
    const char segment1[] = { 73, 32, 97, 109, 32, 112, 97, 115, 115, 105, 118, 101 };
    const char* segments[] = { segment0, segment1 };
    int8_t segmentPassive[] = { 0, 1 };
    BinaryenExpressionRef segmentOffsets[] = { expressions[669], expressions[0] };
    BinaryenIndex segmentSizes[] = { 12, 12 };
    BinaryenSetMemory(the_module, 1, 256, "mem", segments, segmentPassive, segmentOffsets, segmentSizes, 2, 0);
  }
  {
    BinaryenType paramTypes[] = { 0 };
    functionTypes[3] = BinaryenAddFunctionType(the_module, "v", 0, paramTypes, 0);
  }
  expressions[670] = BinaryenNop(the_module);
  {
    BinaryenType varTypes[] = { 0 };
    functions[1] = BinaryenAddFunction(the_module, "starter", functionTypes[3], varTypes, 0, expressions[670]);
  }
  BinaryenSetStart(the_module, functions[1]);
  {
    BinaryenType paramTypes[] = { 0 };
    functionTypes[4] = BinaryenAddFunctionType(the_module, NULL, 0, paramTypes, 0);
  }
  BinaryenModuleAutoDrop(the_module);
  BinaryenModuleSetFeatures(the_module, 255);
  BinaryenModuleGetFeatures(the_module);
  BinaryenModuleValidate(the_module);
  BinaryenModulePrint(the_module);
(module
 (type $iiIfF (func (param i32 i64 f32 f64) (result i32)))
 (type $vi (func (param i32)))
 (type $fiF (func (param i32 f64) (result f32)))
 (type $v (func))
 (type $4 (func))
 (import "module" "base" (func $an-imported (param i32 f64) (result f32)))
 (memory $0 1 256)
 (data (i32.const 10) "hello, world")
 (data passive "I am passive")
 (table $0 1 1 funcref)
 (elem (i32.const 0) "$kitchen()sinker")
 (global $a-global i32 (i32.const 7))
 (global $a-mutable-global (mut f32) (f32.const 7.5))
 (event $a-event (attr 0) (param i32))
 (export "kitchen_sinker" (func "$kitchen()sinker"))
 (export "mem" (memory $0))
 (start $starter)
 (func "$kitchen()sinker" (; 1 ;) (type $iiIfF) (param $0 i32) (param $1 i64) (param $2 f32) (param $3 f64) (result i32)
  (local $4 i32)
  (local $5 exnref)
  (block $the-body (result i32)
   (block $the-nothing
    (drop
     (block $the-value (result i32)
      (drop
       (i32.clz
        (i32.const -10)
       )
      )
      (drop
       (i64.ctz
        (i64.const -22)
       )
      )
      (drop
       (i32.popcnt
        (i32.const -10)
       )
      )
      (drop
       (f32.neg
        (f32.const -33.61199951171875)
       )
      )
      (drop
       (f64.abs
        (f64.const -9005.841)
       )
      )
      (drop
       (f32.ceil
        (f32.const -33.61199951171875)
       )
      )
      (drop
       (f64.floor
        (f64.const -9005.841)
       )
      )
      (drop
       (f32.trunc
        (f32.const -33.61199951171875)
       )
      )
      (drop
       (f32.nearest
        (f32.const -33.61199951171875)
       )
      )
      (drop
       (f64.sqrt
        (f64.const -9005.841)
       )
      )
      (drop
       (i32.eqz
        (i32.const -10)
       )
      )
      (drop
       (i64.extend_i32_s
        (i32.const -10)
       )
      )
      (drop
       (i64.extend_i32_u
        (i32.const -10)
       )
      )
      (drop
       (i32.wrap_i64
        (i64.const -22)
       )
      )
      (drop
       (i32.trunc_f32_s
        (f32.const -33.61199951171875)
       )
      )
      (drop
       (i64.trunc_f32_s
        (f32.const -33.61199951171875)
       )
      )
      (drop
       (i32.trunc_f32_u
        (f32.const -33.61199951171875)
       )
      )
      (drop
       (i64.trunc_f32_u
        (f32.const -33.61199951171875)
       )
      )
      (drop
       (i32.trunc_f64_s
        (f64.const -9005.841)
       )
      )
      (drop
       (i64.trunc_f64_s
        (f64.const -9005.841)
       )
      )
      (drop
       (i32.trunc_f64_u
        (f64.const -9005.841)
       )
      )
      (drop
       (i64.trunc_f64_u
        (f64.const -9005.841)
       )
      )
      (drop
       (i32.trunc_sat_f32_s
        (f32.const -33.61199951171875)
       )
      )
      (drop
       (i64.trunc_sat_f32_s
        (f32.const -33.61199951171875)
       )
      )
      (drop
       (i32.trunc_sat_f32_u
        (f32.const -33.61199951171875)
       )
      )
      (drop
       (i64.trunc_sat_f32_u
        (f32.const -33.61199951171875)
       )
      )
      (drop
       (i32.trunc_sat_f64_s
        (f64.const -9005.841)
       )
      )
      (drop
       (i64.trunc_sat_f64_s
        (f64.const -9005.841)
       )
      )
      (drop
       (i32.trunc_sat_f64_u
        (f64.const -9005.841)
       )
      )
      (drop
       (i64.trunc_sat_f64_u
        (f64.const -9005.841)
       )
      )
      (drop
       (i32.reinterpret_f32
        (f32.const -33.61199951171875)
       )
      )
      (drop
       (i64.reinterpret_f64
        (f64.const -9005.841)
       )
      )
      (drop
       (f32.convert_i32_s
        (i32.const -10)
       )
      )
      (drop
       (f64.convert_i32_s
        (i32.const -10)
       )
      )
      (drop
       (f32.convert_i32_u
        (i32.const -10)
       )
      )
      (drop
       (f64.convert_i32_u
        (i32.const -10)
       )
      )
      (drop
       (f32.convert_i64_s
        (i64.const -22)
       )
      )
      (drop
       (f64.convert_i64_s
        (i64.const -22)
       )
      )
      (drop
       (f32.convert_i64_u
        (i64.const -22)
       )
      )
      (drop
       (f64.convert_i64_u
        (i64.const -22)
       )
      )
      (drop
       (f64.promote_f32
        (f32.const -33.61199951171875)
       )
      )
      (drop
       (f32.demote_f64
        (f64.const -9005.841)
       )
      )
      (drop
       (f32.reinterpret_i32
        (i32.const -10)
       )
      )
      (drop
       (f64.reinterpret_i64
        (i64.const -22)
       )
      )
      (drop
       (i8x16.splat
        (i32.const -10)
       )
      )
      (drop
       (i16x8.splat
        (i32.const -10)
       )
      )
      (drop
       (i32x4.splat
        (i32.const -10)
       )
      )
      (drop
       (i64x2.splat
        (i64.const -22)
       )
      )
      (drop
       (f32x4.splat
        (f32.const -33.61199951171875)
       )
      )
      (drop
       (f64x2.splat
        (f64.const -9005.841)
       )
      )
      (drop
       (v128.not
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i8x16.neg
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i8x16.any_true
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i8x16.all_true
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i16x8.neg
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i16x8.any_true
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i16x8.all_true
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i32x4.neg
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i32x4.any_true
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i32x4.all_true
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i64x2.neg
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i64x2.any_true
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i64x2.all_true
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (f32x4.abs
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (f32x4.neg
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (f32x4.sqrt
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (f64x2.abs
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (f64x2.neg
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (f64x2.sqrt
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i32x4.trunc_sat_f32x4_s
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i32x4.trunc_sat_f32x4_u
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i64x2.trunc_sat_f64x2_s
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i64x2.trunc_sat_f64x2_u
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (f32x4.convert_i32x4_s
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (f32x4.convert_i32x4_u
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (f64x2.convert_i64x2_s
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (f64x2.convert_i64x2_u
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i32.add
        (i32.const -10)
        (i32.const -11)
       )
      )
      (drop
       (f64.sub
        (f64.const -9005.841)
        (f64.const -9007.333)
       )
      )
      (drop
       (i32.div_s
        (i32.const -10)
        (i32.const -11)
       )
      )
      (drop
       (i64.div_u
        (i64.const -22)
        (i64.const -23)
       )
      )
      (drop
       (i64.rem_s
        (i64.const -22)
        (i64.const -23)
       )
      )
      (drop
       (i32.rem_u
        (i32.const -10)
        (i32.const -11)
       )
      )
      (drop
       (i32.and
        (i32.const -10)
        (i32.const -11)
       )
      )
      (drop
       (i64.or
        (i64.const -22)
        (i64.const -23)
       )
      )
      (drop
       (i32.xor
        (i32.const -10)
        (i32.const -11)
       )
      )
      (drop
       (i64.shl
        (i64.const -22)
        (i64.const -23)
       )
      )
      (drop
       (i64.shr_u
        (i64.const -22)
        (i64.const -23)
       )
      )
      (drop
       (i32.shr_s
        (i32.const -10)
        (i32.const -11)
       )
      )
      (drop
       (i32.rotl
        (i32.const -10)
        (i32.const -11)
       )
      )
      (drop
       (i64.rotr
        (i64.const -22)
        (i64.const -23)
       )
      )
      (drop
       (f32.div
        (f32.const -33.61199951171875)
        (f32.const -62.5)
       )
      )
      (drop
       (f64.copysign
        (f64.const -9005.841)
        (f64.const -9007.333)
       )
      )
      (drop
       (f32.min
        (f32.const -33.61199951171875)
        (f32.const -62.5)
       )
      )
      (drop
       (f64.max
        (f64.const -9005.841)
        (f64.const -9007.333)
       )
      )
      (drop
       (i32.eq
        (i32.const -10)
        (i32.const -11)
       )
      )
      (drop
       (f32.ne
        (f32.const -33.61199951171875)
        (f32.const -62.5)
       )
      )
      (drop
       (i32.lt_s
        (i32.const -10)
        (i32.const -11)
       )
      )
      (drop
       (i64.lt_u
        (i64.const -22)
        (i64.const -23)
       )
      )
      (drop
       (i64.le_s
        (i64.const -22)
        (i64.const -23)
       )
      )
      (drop
       (i32.le_u
        (i32.const -10)
        (i32.const -11)
       )
      )
      (drop
       (i64.gt_s
        (i64.const -22)
        (i64.const -23)
       )
      )
      (drop
       (i32.gt_u
        (i32.const -10)
        (i32.const -11)
       )
      )
      (drop
       (i32.ge_s
        (i32.const -10)
        (i32.const -11)
       )
      )
      (drop
       (i64.ge_u
        (i64.const -22)
        (i64.const -23)
       )
      )
      (drop
       (f32.lt
        (f32.const -33.61199951171875)
        (f32.const -62.5)
       )
      )
      (drop
       (f64.le
        (f64.const -9005.841)
        (f64.const -9007.333)
       )
      )
      (drop
       (f64.gt
        (f64.const -9005.841)
        (f64.const -9007.333)
       )
      )
      (drop
       (f32.ge
        (f32.const -33.61199951171875)
        (f32.const -62.5)
       )
      )
      (drop
       (i8x16.eq
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i8x16.ne
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i8x16.lt_s
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i8x16.lt_u
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i8x16.gt_s
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i8x16.gt_u
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i8x16.le_s
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i8x16.le_u
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i8x16.ge_s
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i8x16.ge_u
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i16x8.eq
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i16x8.ne
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i16x8.lt_s
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i16x8.lt_u
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i16x8.gt_s
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i16x8.gt_u
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i16x8.le_s
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i16x8.le_u
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i16x8.ge_s
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i16x8.ge_u
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i32x4.eq
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i32x4.ne
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i32x4.lt_s
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i32x4.lt_u
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i32x4.gt_s
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i32x4.gt_u
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i32x4.le_s
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i32x4.le_u
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i32x4.ge_s
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i32x4.ge_u
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (f32x4.eq
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (f32x4.ne
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (f32x4.lt
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (f32x4.gt
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (f32x4.le
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (f32x4.ge
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (f64x2.eq
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (f64x2.ne
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (f64x2.lt
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (f64x2.gt
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (f64x2.le
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (f64x2.ge
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (v128.and
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (v128.or
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (v128.xor
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i8x16.add
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i8x16.add_saturate_s
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i8x16.add_saturate_u
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i8x16.sub
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i8x16.sub_saturate_s
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i8x16.sub_saturate_u
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i8x16.mul
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i16x8.add
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i16x8.add_saturate_s
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i16x8.add_saturate_u
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i16x8.sub
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i16x8.sub_saturate_s
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i16x8.sub_saturate_u
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i16x8.mul
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i32x4.add
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i32x4.sub
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i32x4.mul
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i64x2.add
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i64x2.sub
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (f32x4.add
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (f32x4.sub
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (f32x4.mul
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (f32x4.div
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (f32x4.min
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (f32x4.max
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (f64x2.add
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (f64x2.sub
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (f64x2.mul
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (f64x2.div
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (f64x2.min
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (f64x2.max
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i8x16.extract_lane_s 0
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i8x16.extract_lane_u 0
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i16x8.extract_lane_s 0
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i16x8.extract_lane_u 0
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i32x4.extract_lane 0
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i64x2.extract_lane 0
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (f32x4.extract_lane 0
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (f64x2.extract_lane 0
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (i8x16.replace_lane 0
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (i32.const 42)
       )
      )
      (drop
       (i16x8.replace_lane 0
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (i32.const 42)
       )
      )
      (drop
       (i32x4.replace_lane 0
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (i32.const 42)
       )
      )
      (drop
       (i64x2.replace_lane 0
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (i64.const 42)
       )
      )
      (drop
       (f32x4.replace_lane 0
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (f32.const 42)
       )
      )
      (drop
       (f64x2.replace_lane 0
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (f64.const 42)
       )
      )
      (drop
       (i8x16.shl
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (i32.const 1)
       )
      )
      (drop
       (i8x16.shr_s
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (i32.const 1)
       )
      )
      (drop
       (i8x16.shr_u
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (i32.const 1)
       )
      )
      (drop
       (i16x8.shl
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (i32.const 1)
       )
      )
      (drop
       (i16x8.shr_s
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (i32.const 1)
       )
      )
      (drop
       (i16x8.shr_u
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (i32.const 1)
       )
      )
      (drop
       (i32x4.shl
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (i32.const 1)
       )
      )
      (drop
       (i32x4.shr_s
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (i32.const 1)
       )
      )
      (drop
       (i32x4.shr_u
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (i32.const 1)
       )
      )
      (drop
       (i64x2.shl
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (i32.const 1)
       )
      )
      (drop
       (i64x2.shr_s
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (i32.const 1)
       )
      )
      (drop
       (i64x2.shr_u
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (i32.const 1)
       )
      )
      (drop
       (v8x16.shuffle 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (drop
       (v128.bitselect
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
        (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
       )
      )
      (memory.init 0
       (i32.const 1024)
       (i32.const 0)
       (i32.const 12)
      )
      (data.drop 0)
      (memory.copy
       (i32.const 2048)
       (i32.const 1024)
       (i32.const 12)
      )
      (memory.fill
       (i32.const 0)
       (i32.const 42)
       (i32.const 1024)
      )
      (block
      )
      (if
       (i32.const 1)
       (drop
        (i32.const 2)
       )
       (drop
        (i32.const 3)
       )
      )
      (if
       (i32.const 4)
       (drop
        (i32.const 5)
       )
      )
      (drop
       (loop $in (result i32)
        (i32.const 0)
       )
      )
      (drop
       (loop (result i32)
        (i32.const 0)
       )
      )
      (drop
       (br_if $the-value
        (i32.const 1)
        (i32.const 0)
       )
      )
      (br_if $the-nothing
       (i32.const 2)
      )
      (br $the-value
       (i32.const 3)
      )
      (br $the-nothing)
      (br_table $the-value $the-value
       (i32.const 1)
       (i32.const 0)
      )
      (br_table $the-nothing $the-nothing
       (i32.const 2)
      )
      (drop
       (i32.eqz
        (call "$kitchen()sinker"
         (i32.const 13)
         (i64.const 37)
         (f32.const 1.2999999523162842)
         (f64.const 3.7)
        )
       )
      )
      (drop
       (i32.eqz
        (i32.trunc_f32_s
         (call $an-imported
          (i32.const 13)
          (f64.const 3.7)
         )
        )
       )
      )
      (drop
       (i32.eqz
        (call_indirect (type $iiIfF)
         (i32.const 13)
         (i64.const 37)
         (f32.const 1.2999999523162842)
         (f64.const 3.7)
         (i32.const 2449)
        )
       )
      )
      (drop
       (local.get $0)
      )
      (local.set $0
       (i32.const 101)
      )
      (drop
       (local.tee $0
        (i32.const 102)
       )
      )
      (drop
       (i32.load
        (i32.const 1)
       )
      )
      (drop
       (i64.load16_s offset=2 align=1
        (i32.const 8)
       )
      )
      (drop
       (f32.load
        (i32.const 2)
       )
      )
      (drop
       (f64.load offset=2
        (i32.const 9)
       )
      )
      (i32.store
       (i32.const 10)
       (i32.const 11)
      )
      (i64.store offset=2 align=4
       (i32.const 110)
       (i64.const 111)
      )
      (drop
       (select
        (i32.const 3)
        (i32.const 5)
        (i32.const 1)
       )
      )
      (return
       (i32.const 1337)
      )
      (return_call "$kitchen()sinker"
       (i32.const 13)
       (i64.const 37)
       (f32.const 1.2999999523162842)
       (f64.const 3.7)
      )
      (return_call_indirect (type $iiIfF)
       (i32.const 13)
       (i64.const 37)
       (f32.const 1.2999999523162842)
       (f64.const 3.7)
       (i32.const 2449)
      )
      (try
       (throw $a-event
        (i32.const 0)
       )
       (catch
        (local.set $5
         (exnref.pop)
        )
        (drop
         (block $try-block (result i32)
          (rethrow
           (br_on_exn $try-block $a-event
            (local.get $5)
           )
          )
         )
        )
       )
      )
      (nop)
      (unreachable)
     )
    )
   )
   (i32.const 42)
  )
 )
 (func $starter (; 2 ;) (type $v)
  (nop)
 )
)
  BinaryenModuleDispose(the_module);
  functionTypes.clear();
  expressions.clear();
  functions.clear();
  globals.clear();
  events.clear();
  exports.clear();
  relooperBlocks.clear();
  the_module = BinaryenModuleCreate();
  expressions[size_t(NULL)] = BinaryenExpressionRef(NULL);
  {
    BinaryenType paramTypes[] = { 0 };
    functionTypes[0] = BinaryenAddFunctionType(the_module, "v", 0, paramTypes, 0);
  }
  {
    BinaryenType paramTypes[] = { 1 };
    functionTypes[1] = BinaryenAddFunctionType(the_module, "vi", 0, paramTypes, 1);
  }
  BinaryenAddFunctionImport(the_module, "check", "module", "check", functionTypes[1]);
  the_relooper = RelooperCreate(the_module);
  expressions[1] = BinaryenConst(the_module, BinaryenLiteralInt32(1337));
  {
    BinaryenExpressionRef operands[] = { expressions[1] };
    expressions[2] = BinaryenCall(the_module, "check", operands, 1, 0);
  }
  relooperBlocks[0] = RelooperAddBlock(the_relooper, expressions[2]);
  expressions[3] = RelooperRenderAndDispose(the_relooper, relooperBlocks[0], 0);
  {
    BinaryenType varTypes[] = { 1 };
    functions[0] = BinaryenAddFunction(the_module, "just-one-block", functionTypes[0], varTypes, 1, expressions[3]);
  }
  the_relooper = RelooperCreate(the_module);
  expressions[4] = BinaryenConst(the_module, BinaryenLiteralInt32(0));
  {
    BinaryenExpressionRef operands[] = { expressions[4] };
    expressions[5] = BinaryenCall(the_module, "check", operands, 1, 0);
  }
  relooperBlocks[0] = RelooperAddBlock(the_relooper, expressions[5]);
  expressions[6] = BinaryenConst(the_module, BinaryenLiteralInt32(1));
  {
    BinaryenExpressionRef operands[] = { expressions[6] };
    expressions[7] = BinaryenCall(the_module, "check", operands, 1, 0);
  }
  relooperBlocks[1] = RelooperAddBlock(the_relooper, expressions[7]);
  RelooperAddBranch(relooperBlocks[0], relooperBlocks[1], expressions[0], expressions[0]);
  expressions[8] = RelooperRenderAndDispose(the_relooper, relooperBlocks[0], 0);
  {
    BinaryenType varTypes[] = { 1 };
    functions[1] = BinaryenAddFunction(the_module, "two-blocks", functionTypes[0], varTypes, 1, expressions[8]);
  }
  the_relooper = RelooperCreate(the_module);
  expressions[9] = BinaryenConst(the_module, BinaryenLiteralInt32(0));
  {
    BinaryenExpressionRef operands[] = { expressions[9] };
    expressions[10] = BinaryenCall(the_module, "check", operands, 1, 0);
  }
  relooperBlocks[0] = RelooperAddBlock(the_relooper, expressions[10]);
  expressions[11] = BinaryenConst(the_module, BinaryenLiteralInt32(1));
  {
    BinaryenExpressionRef operands[] = { expressions[11] };
    expressions[12] = BinaryenCall(the_module, "check", operands, 1, 0);
  }
  relooperBlocks[1] = RelooperAddBlock(the_relooper, expressions[12]);
  expressions[13] = BinaryenConst(the_module, BinaryenLiteralInt32(77));
  expressions[14] = BinaryenDrop(the_module, expressions[13]);
  RelooperAddBranch(relooperBlocks[0], relooperBlocks[1], expressions[0], expressions[14]);
  expressions[15] = RelooperRenderAndDispose(the_relooper, relooperBlocks[0], 0);
  {
    BinaryenType varTypes[] = { 1 };
    functions[2] = BinaryenAddFunction(the_module, "two-blocks-plus-code", functionTypes[0], varTypes, 1, expressions[15]);
  }
  the_relooper = RelooperCreate(the_module);
  expressions[16] = BinaryenConst(the_module, BinaryenLiteralInt32(0));
  {
    BinaryenExpressionRef operands[] = { expressions[16] };
    expressions[17] = BinaryenCall(the_module, "check", operands, 1, 0);
  }
  relooperBlocks[0] = RelooperAddBlock(the_relooper, expressions[17]);
  expressions[18] = BinaryenConst(the_module, BinaryenLiteralInt32(1));
  {
    BinaryenExpressionRef operands[] = { expressions[18] };
    expressions[19] = BinaryenCall(the_module, "check", operands, 1, 0);
  }
  relooperBlocks[1] = RelooperAddBlock(the_relooper, expressions[19]);
  RelooperAddBranch(relooperBlocks[0], relooperBlocks[1], expressions[0], expressions[0]);
  RelooperAddBranch(relooperBlocks[1], relooperBlocks[0], expressions[0], expressions[0]);
  expressions[20] = RelooperRenderAndDispose(the_relooper, relooperBlocks[0], 0);
  {
    BinaryenType varTypes[] = { 1 };
    functions[3] = BinaryenAddFunction(the_module, "loop", functionTypes[0], varTypes, 1, expressions[20]);
  }
  the_relooper = RelooperCreate(the_module);
  expressions[21] = BinaryenConst(the_module, BinaryenLiteralInt32(0));
  {
    BinaryenExpressionRef operands[] = { expressions[21] };
    expressions[22] = BinaryenCall(the_module, "check", operands, 1, 0);
  }
  relooperBlocks[0] = RelooperAddBlock(the_relooper, expressions[22]);
  expressions[23] = BinaryenConst(the_module, BinaryenLiteralInt32(1));
  {
    BinaryenExpressionRef operands[] = { expressions[23] };
    expressions[24] = BinaryenCall(the_module, "check", operands, 1, 0);
  }
  relooperBlocks[1] = RelooperAddBlock(the_relooper, expressions[24]);
  expressions[25] = BinaryenConst(the_module, BinaryenLiteralInt32(33));
  expressions[26] = BinaryenDrop(the_module, expressions[25]);
  RelooperAddBranch(relooperBlocks[0], relooperBlocks[1], expressions[0], expressions[26]);
  expressions[27] = BinaryenConst(the_module, BinaryenLiteralInt32(-66));
  expressions[28] = BinaryenDrop(the_module, expressions[27]);
  RelooperAddBranch(relooperBlocks[1], relooperBlocks[0], expressions[0], expressions[28]);
  expressions[29] = RelooperRenderAndDispose(the_relooper, relooperBlocks[0], 0);
  {
    BinaryenType varTypes[] = { 1 };
    functions[4] = BinaryenAddFunction(the_module, "loop-plus-code", functionTypes[0], varTypes, 1, expressions[29]);
  }
  the_relooper = RelooperCreate(the_module);
  expressions[30] = BinaryenConst(the_module, BinaryenLiteralInt32(0));
  {
    BinaryenExpressionRef operands[] = { expressions[30] };
    expressions[31] = BinaryenCall(the_module, "check", operands, 1, 0);
  }
  relooperBlocks[0] = RelooperAddBlock(the_relooper, expressions[31]);
  expressions[32] = BinaryenConst(the_module, BinaryenLiteralInt32(1));
  {
    BinaryenExpressionRef operands[] = { expressions[32] };
    expressions[33] = BinaryenCall(the_module, "check", operands, 1, 0);
  }
  relooperBlocks[1] = RelooperAddBlock(the_relooper, expressions[33]);
  expressions[34] = BinaryenConst(the_module, BinaryenLiteralInt32(2));
  {
    BinaryenExpressionRef operands[] = { expressions[34] };
    expressions[35] = BinaryenCall(the_module, "check", operands, 1, 0);
  }
  relooperBlocks[2] = RelooperAddBlock(the_relooper, expressions[35]);
  expressions[36] = BinaryenConst(the_module, BinaryenLiteralInt32(55));
  RelooperAddBranch(relooperBlocks[0], relooperBlocks[1], expressions[36], expressions[0]);
  RelooperAddBranch(relooperBlocks[0], relooperBlocks[2], expressions[0], expressions[0]);
  expressions[37] = RelooperRenderAndDispose(the_relooper, relooperBlocks[0], 0);
  {
    BinaryenType varTypes[] = { 1 };
    functions[5] = BinaryenAddFunction(the_module, "split", functionTypes[0], varTypes, 1, expressions[37]);
  }
  the_relooper = RelooperCreate(the_module);
  expressions[38] = BinaryenConst(the_module, BinaryenLiteralInt32(0));
  {
    BinaryenExpressionRef operands[] = { expressions[38] };
    expressions[39] = BinaryenCall(the_module, "check", operands, 1, 0);
  }
  relooperBlocks[0] = RelooperAddBlock(the_relooper, expressions[39]);
  expressions[40] = BinaryenConst(the_module, BinaryenLiteralInt32(1));
  {
    BinaryenExpressionRef operands[] = { expressions[40] };
    expressions[41] = BinaryenCall(the_module, "check", operands, 1, 0);
  }
  relooperBlocks[1] = RelooperAddBlock(the_relooper, expressions[41]);
  expressions[42] = BinaryenConst(the_module, BinaryenLiteralInt32(2));
  {
    BinaryenExpressionRef operands[] = { expressions[42] };
    expressions[43] = BinaryenCall(the_module, "check", operands, 1, 0);
  }
  relooperBlocks[2] = RelooperAddBlock(the_relooper, expressions[43]);
  expressions[44] = BinaryenConst(the_module, BinaryenLiteralInt32(10));
  expressions[45] = BinaryenDrop(the_module, expressions[44]);
  expressions[46] = BinaryenConst(the_module, BinaryenLiteralInt32(55));
  RelooperAddBranch(relooperBlocks[0], relooperBlocks[1], expressions[46], expressions[45]);
  expressions[47] = BinaryenConst(the_module, BinaryenLiteralInt32(20));
  expressions[48] = BinaryenDrop(the_module, expressions[47]);
  RelooperAddBranch(relooperBlocks[0], relooperBlocks[2], expressions[0], expressions[48]);
  expressions[49] = RelooperRenderAndDispose(the_relooper, relooperBlocks[0], 0);
  {
    BinaryenType varTypes[] = { 1 };
    functions[6] = BinaryenAddFunction(the_module, "split-plus-code", functionTypes[0], varTypes, 1, expressions[49]);
  }
  the_relooper = RelooperCreate(the_module);
  expressions[50] = BinaryenConst(the_module, BinaryenLiteralInt32(0));
  {
    BinaryenExpressionRef operands[] = { expressions[50] };
    expressions[51] = BinaryenCall(the_module, "check", operands, 1, 0);
  }
  relooperBlocks[0] = RelooperAddBlock(the_relooper, expressions[51]);
  expressions[52] = BinaryenConst(the_module, BinaryenLiteralInt32(1));
  {
    BinaryenExpressionRef operands[] = { expressions[52] };
    expressions[53] = BinaryenCall(the_module, "check", operands, 1, 0);
  }
  relooperBlocks[1] = RelooperAddBlock(the_relooper, expressions[53]);
  expressions[54] = BinaryenConst(the_module, BinaryenLiteralInt32(2));
  {
    BinaryenExpressionRef operands[] = { expressions[54] };
    expressions[55] = BinaryenCall(the_module, "check", operands, 1, 0);
  }
  relooperBlocks[2] = RelooperAddBlock(the_relooper, expressions[55]);
  expressions[56] = BinaryenConst(the_module, BinaryenLiteralInt32(55));
  RelooperAddBranch(relooperBlocks[0], relooperBlocks[1], expressions[56], expressions[0]);
  RelooperAddBranch(relooperBlocks[0], relooperBlocks[2], expressions[0], expressions[0]);
  RelooperAddBranch(relooperBlocks[1], relooperBlocks[2], expressions[0], expressions[0]);
  expressions[57] = RelooperRenderAndDispose(the_relooper, relooperBlocks[0], 0);
  {
    BinaryenType varTypes[] = { 1 };
    functions[7] = BinaryenAddFunction(the_module, "if", functionTypes[0], varTypes, 1, expressions[57]);
  }
  the_relooper = RelooperCreate(the_module);
  expressions[58] = BinaryenConst(the_module, BinaryenLiteralInt32(0));
  {
    BinaryenExpressionRef operands[] = { expressions[58] };
    expressions[59] = BinaryenCall(the_module, "check", operands, 1, 0);
  }
  relooperBlocks[0] = RelooperAddBlock(the_relooper, expressions[59]);
  expressions[60] = BinaryenConst(the_module, BinaryenLiteralInt32(1));
  {
    BinaryenExpressionRef operands[] = { expressions[60] };
    expressions[61] = BinaryenCall(the_module, "check", operands, 1, 0);
  }
  relooperBlocks[1] = RelooperAddBlock(the_relooper, expressions[61]);
  expressions[62] = BinaryenConst(the_module, BinaryenLiteralInt32(2));
  {
    BinaryenExpressionRef operands[] = { expressions[62] };
    expressions[63] = BinaryenCall(the_module, "check", operands, 1, 0);
  }
  relooperBlocks[2] = RelooperAddBlock(the_relooper, expressions[63]);
  expressions[64] = BinaryenConst(the_module, BinaryenLiteralInt32(-1));
  expressions[65] = BinaryenDrop(the_module, expressions[64]);
  expressions[66] = BinaryenConst(the_module, BinaryenLiteralInt32(55));
  RelooperAddBranch(relooperBlocks[0], relooperBlocks[1], expressions[66], expressions[65]);
  expressions[67] = BinaryenConst(the_module, BinaryenLiteralInt32(-2));
  expressions[68] = BinaryenDrop(the_module, expressions[67]);
  RelooperAddBranch(relooperBlocks[0], relooperBlocks[2], expressions[0], expressions[68]);
  expressions[69] = BinaryenConst(the_module, BinaryenLiteralInt32(-3));
  expressions[70] = BinaryenDrop(the_module, expressions[69]);
  RelooperAddBranch(relooperBlocks[1], relooperBlocks[2], expressions[0], expressions[70]);
  expressions[71] = RelooperRenderAndDispose(the_relooper, relooperBlocks[0], 0);
  {
    BinaryenType varTypes[] = { 1 };
    functions[8] = BinaryenAddFunction(the_module, "if-plus-code", functionTypes[0], varTypes, 1, expressions[71]);
  }
  the_relooper = RelooperCreate(the_module);
  expressions[72] = BinaryenConst(the_module, BinaryenLiteralInt32(0));
  {
    BinaryenExpressionRef operands[] = { expressions[72] };
    expressions[73] = BinaryenCall(the_module, "check", operands, 1, 0);
  }
  relooperBlocks[0] = RelooperAddBlock(the_relooper, expressions[73]);
  expressions[74] = BinaryenConst(the_module, BinaryenLiteralInt32(1));
  {
    BinaryenExpressionRef operands[] = { expressions[74] };
    expressions[75] = BinaryenCall(the_module, "check", operands, 1, 0);
  }
  relooperBlocks[1] = RelooperAddBlock(the_relooper, expressions[75]);
  expressions[76] = BinaryenConst(the_module, BinaryenLiteralInt32(2));
  {
    BinaryenExpressionRef operands[] = { expressions[76] };
    expressions[77] = BinaryenCall(the_module, "check", operands, 1, 0);
  }
  relooperBlocks[2] = RelooperAddBlock(the_relooper, expressions[77]);
  expressions[78] = BinaryenConst(the_module, BinaryenLiteralInt32(3));
  {
    BinaryenExpressionRef operands[] = { expressions[78] };
    expressions[79] = BinaryenCall(the_module, "check", operands, 1, 0);
  }
  relooperBlocks[3] = RelooperAddBlock(the_relooper, expressions[79]);
  expressions[80] = BinaryenConst(the_module, BinaryenLiteralInt32(55));
  RelooperAddBranch(relooperBlocks[0], relooperBlocks[1], expressions[80], expressions[0]);
  RelooperAddBranch(relooperBlocks[0], relooperBlocks[2], expressions[0], expressions[0]);
  RelooperAddBranch(relooperBlocks[1], relooperBlocks[3], expressions[0], expressions[0]);
  RelooperAddBranch(relooperBlocks[2], relooperBlocks[3], expressions[0], expressions[0]);
  expressions[81] = RelooperRenderAndDispose(the_relooper, relooperBlocks[0], 0);
  {
    BinaryenType varTypes[] = { 1 };
    functions[9] = BinaryenAddFunction(the_module, "if-else", functionTypes[0], varTypes, 1, expressions[81]);
  }
  the_relooper = RelooperCreate(the_module);
  expressions[82] = BinaryenConst(the_module, BinaryenLiteralInt32(0));
  {
    BinaryenExpressionRef operands[] = { expressions[82] };
    expressions[83] = BinaryenCall(the_module, "check", operands, 1, 0);
  }
  relooperBlocks[0] = RelooperAddBlock(the_relooper, expressions[83]);
  expressions[84] = BinaryenConst(the_module, BinaryenLiteralInt32(1));
  {
    BinaryenExpressionRef operands[] = { expressions[84] };
    expressions[85] = BinaryenCall(the_module, "check", operands, 1, 0);
  }
  relooperBlocks[1] = RelooperAddBlock(the_relooper, expressions[85]);
  expressions[86] = BinaryenConst(the_module, BinaryenLiteralInt32(2));
  {
    BinaryenExpressionRef operands[] = { expressions[86] };
    expressions[87] = BinaryenCall(the_module, "check", operands, 1, 0);
  }
  relooperBlocks[2] = RelooperAddBlock(the_relooper, expressions[87]);
  RelooperAddBranch(relooperBlocks[0], relooperBlocks[1], expressions[0], expressions[0]);
  expressions[88] = BinaryenConst(the_module, BinaryenLiteralInt32(10));
  RelooperAddBranch(relooperBlocks[1], relooperBlocks[0], expressions[88], expressions[0]);
  RelooperAddBranch(relooperBlocks[1], relooperBlocks[2], expressions[0], expressions[0]);
  expressions[89] = RelooperRenderAndDispose(the_relooper, relooperBlocks[0], 0);
  {
    BinaryenType varTypes[] = { 1 };
    functions[10] = BinaryenAddFunction(the_module, "loop-tail", functionTypes[0], varTypes, 1, expressions[89]);
  }
  the_relooper = RelooperCreate(the_module);
  expressions[90] = BinaryenConst(the_module, BinaryenLiteralInt32(0));
  {
    BinaryenExpressionRef operands[] = { expressions[90] };
    expressions[91] = BinaryenCall(the_module, "check", operands, 1, 0);
  }
  relooperBlocks[0] = RelooperAddBlock(the_relooper, expressions[91]);
  expressions[92] = BinaryenConst(the_module, BinaryenLiteralInt32(1));
  {
    BinaryenExpressionRef operands[] = { expressions[92] };
    expressions[93] = BinaryenCall(the_module, "check", operands, 1, 0);
  }
  relooperBlocks[1] = RelooperAddBlock(the_relooper, expressions[93]);
  expressions[94] = BinaryenConst(the_module, BinaryenLiteralInt32(2));
  {
    BinaryenExpressionRef operands[] = { expressions[94] };
    expressions[95] = BinaryenCall(the_module, "check", operands, 1, 0);
  }
  relooperBlocks[2] = RelooperAddBlock(the_relooper, expressions[95]);
  expressions[96] = BinaryenConst(the_module, BinaryenLiteralInt32(3));
  {
    BinaryenExpressionRef operands[] = { expressions[96] };
    expressions[97] = BinaryenCall(the_module, "check", operands, 1, 0);
  }
  relooperBlocks[3] = RelooperAddBlock(the_relooper, expressions[97]);
  expressions[98] = BinaryenConst(the_module, BinaryenLiteralInt32(4));
  {
    BinaryenExpressionRef operands[] = { expressions[98] };
    expressions[99] = BinaryenCall(the_module, "check", operands, 1, 0);
  }
  relooperBlocks[4] = RelooperAddBlock(the_relooper, expressions[99]);
  expressions[100] = BinaryenConst(the_module, BinaryenLiteralInt32(5));
  {
    BinaryenExpressionRef operands[] = { expressions[100] };
    expressions[101] = BinaryenCall(the_module, "check", operands, 1, 0);
  }
  relooperBlocks[5] = RelooperAddBlock(the_relooper, expressions[101]);
  expressions[102] = BinaryenConst(the_module, BinaryenLiteralInt32(6));
  {
    BinaryenExpressionRef operands[] = { expressions[102] };
    expressions[103] = BinaryenCall(the_module, "check", operands, 1, 0);
  }
  relooperBlocks[6] = RelooperAddBlock(the_relooper, expressions[103]);
  expressions[104] = BinaryenConst(the_module, BinaryenLiteralInt32(10));
  expressions[105] = BinaryenDrop(the_module, expressions[104]);
  RelooperAddBranch(relooperBlocks[0], relooperBlocks[1], expressions[0], expressions[105]);
  expressions[106] = BinaryenConst(the_module, BinaryenLiteralInt32(-2));
  RelooperAddBranch(relooperBlocks[1], relooperBlocks[2], expressions[106], expressions[0]);
  expressions[107] = BinaryenConst(the_module, BinaryenLiteralInt32(20));
  expressions[108] = BinaryenDrop(the_module, expressions[107]);
  RelooperAddBranch(relooperBlocks[1], relooperBlocks[6], expressions[0], expressions[108]);
  expressions[109] = BinaryenConst(the_module, BinaryenLiteralInt32(-6));
  RelooperAddBranch(relooperBlocks[2], relooperBlocks[3], expressions[109], expressions[0]);
  expressions[110] = BinaryenConst(the_module, BinaryenLiteralInt32(30));
  expressions[111] = BinaryenDrop(the_module, expressions[110]);
  RelooperAddBranch(relooperBlocks[2], relooperBlocks[1], expressions[0], expressions[111]);
  expressions[112] = BinaryenConst(the_module, BinaryenLiteralInt32(-10));
  RelooperAddBranch(relooperBlocks[3], relooperBlocks[4], expressions[112], expressions[0]);
  RelooperAddBranch(relooperBlocks[3], relooperBlocks[5], expressions[0], expressions[0]);
  RelooperAddBranch(relooperBlocks[4], relooperBlocks[5], expressions[0], expressions[0]);
  expressions[113] = BinaryenConst(the_module, BinaryenLiteralInt32(40));
  expressions[114] = BinaryenDrop(the_module, expressions[113]);
  RelooperAddBranch(relooperBlocks[5], relooperBlocks[6], expressions[0], expressions[114]);
  expressions[115] = RelooperRenderAndDispose(the_relooper, relooperBlocks[0], 0);
  {
    BinaryenType varTypes[] = { 1 };
    functions[11] = BinaryenAddFunction(the_module, "nontrivial-loop-plus-phi-to-head", functionTypes[0], varTypes, 1, expressions[115]);
  }
  the_relooper = RelooperCreate(the_module);
  expressions[116] = BinaryenConst(the_module, BinaryenLiteralInt32(-99));
  expressions[117] = BinaryenConst(the_module, BinaryenLiteralInt32(0));
  {
    BinaryenExpressionRef operands[] = { expressions[117] };
    expressions[118] = BinaryenCall(the_module, "check", operands, 1, 0);
  }
  relooperBlocks[0] = RelooperAddBlockWithSwitch(the_relooper, expressions[118], expressions[116]);
  expressions[119] = BinaryenConst(the_module, BinaryenLiteralInt32(1));
  {
    BinaryenExpressionRef operands[] = { expressions[119] };
    expressions[120] = BinaryenCall(the_module, "check", operands, 1, 0);
  }
  relooperBlocks[1] = RelooperAddBlock(the_relooper, expressions[120]);
  expressions[121] = BinaryenConst(the_module, BinaryenLiteralInt32(2));
  {
    BinaryenExpressionRef operands[] = { expressions[121] };
    expressions[122] = BinaryenCall(the_module, "check", operands, 1, 0);
  }
  relooperBlocks[2] = RelooperAddBlock(the_relooper, expressions[122]);
  expressions[123] = BinaryenConst(the_module, BinaryenLiteralInt32(3));
  {
    BinaryenExpressionRef operands[] = { expressions[123] };
    expressions[124] = BinaryenCall(the_module, "check", operands, 1, 0);
  }
  relooperBlocks[3] = RelooperAddBlock(the_relooper, expressions[124]);
  {
    BinaryenIndex indexes[] = { 2, 5 };
    RelooperAddBranchForSwitch(relooperBlocks[0], relooperBlocks[1], indexes, 2, expressions[0]);
  }
  expressions[125] = BinaryenConst(the_module, BinaryenLiteralInt32(55));
  expressions[126] = BinaryenDrop(the_module, expressions[125]);
  {
    BinaryenIndex indexes[] = { 4 };
    RelooperAddBranchForSwitch(relooperBlocks[0], relooperBlocks[2], indexes, 1, expressions[126]);
  }
  {
    BinaryenIndex indexes[] = { 0 };
    RelooperAddBranchForSwitch(relooperBlocks[0], relooperBlocks[3], indexes, 0, expressions[0]);
  }
  expressions[127] = RelooperRenderAndDispose(the_relooper, relooperBlocks[0], 0);
  {
    BinaryenType varTypes[] = { 1 };
    functions[12] = BinaryenAddFunction(the_module, "switch", functionTypes[0], varTypes, 1, expressions[127]);
  }
  the_relooper = RelooperCreate(the_module);
  expressions[128] = BinaryenConst(the_module, BinaryenLiteralInt32(0));
  {
    BinaryenExpressionRef operands[] = { expressions[128] };
    expressions[129] = BinaryenCall(the_module, "check", operands, 1, 0);
  }
  relooperBlocks[0] = RelooperAddBlock(the_relooper, expressions[129]);
  expressions[130] = BinaryenConst(the_module, BinaryenLiteralInt32(1));
  {
    BinaryenExpressionRef operands[] = { expressions[130] };
    expressions[131] = BinaryenCall(the_module, "check", operands, 1, 0);
  }
  relooperBlocks[1] = RelooperAddBlock(the_relooper, expressions[131]);
  expressions[132] = BinaryenConst(the_module, BinaryenLiteralInt32(2));
  {
    BinaryenExpressionRef operands[] = { expressions[132] };
    expressions[133] = BinaryenCall(the_module, "check", operands, 1, 0);
  }
  relooperBlocks[2] = RelooperAddBlock(the_relooper, expressions[133]);
  expressions[134] = BinaryenConst(the_module, BinaryenLiteralInt32(10));
  RelooperAddBranch(relooperBlocks[0], relooperBlocks[1], expressions[134], expressions[0]);
  RelooperAddBranch(relooperBlocks[0], relooperBlocks[2], expressions[0], expressions[0]);
  RelooperAddBranch(relooperBlocks[1], relooperBlocks[2], expressions[0], expressions[0]);
  RelooperAddBranch(relooperBlocks[2], relooperBlocks[1], expressions[0], expressions[0]);
  expressions[135] = RelooperRenderAndDispose(the_relooper, relooperBlocks[0], 3);
  {
    BinaryenType varTypes[] = { 1, 1, 2, 1, 3, 4, 1 };
    functions[13] = BinaryenAddFunction(the_module, "duffs-device", functionTypes[0], varTypes, 7, expressions[135]);
  }
  {
    BinaryenType paramTypes[] = { 0 };
    functionTypes[2] = BinaryenAddFunctionType(the_module, "i", 1, paramTypes, 0);
  }
  the_relooper = RelooperCreate(the_module);
  expressions[136] = BinaryenConst(the_module, BinaryenLiteralInt32(42));
  {
    BinaryenExpressionRef operands[] = { expressions[136] };
    expressions[137] = BinaryenCall(the_module, "check", operands, 1, 0);
  }
  expressions[138] = BinaryenConst(the_module, BinaryenLiteralInt32(1337));
  expressions[139] = BinaryenReturn(the_module, expressions[138]);
  {
    BinaryenExpressionRef children[] = { expressions[137], expressions[139] };
    expressions[140] = BinaryenBlock(the_module, "the-list", children, 2, BinaryenTypeAuto());
  }
  relooperBlocks[0] = RelooperAddBlock(the_relooper, expressions[140]);
  expressions[141] = RelooperRenderAndDispose(the_relooper, relooperBlocks[0], 0);
  {
    BinaryenType varTypes[] = { 1 };
    functions[14] = BinaryenAddFunction(the_module, "return", functionTypes[2], varTypes, 1, expressions[141]);
  }
raw:
  BinaryenModulePrint(the_module);
(module
 (type $v (func))
 (type $vi (func (param i32)))
 (type $i (func (result i32)))
 (import "module" "check" (func $check (param i32)))
 (func $just-one-block (; 1 ;) (type $v)
  (local $0 i32)
  (call $check
   (i32.const 1337)
  )
 )
 (func $two-blocks (; 2 ;) (type $v)
  (local $0 i32)
  (block
   (call $check
    (i32.const 0)
   )
   (call $check
    (i32.const 1)
   )
  )
 )
 (func $two-blocks-plus-code (; 3 ;) (type $v)
  (local $0 i32)
  (block
   (block
    (call $check
     (i32.const 0)
    )
    (drop
     (i32.const 77)
    )
   )
   (call $check
    (i32.const 1)
   )
  )
 )
 (func $loop (; 4 ;) (type $v)
  (local $0 i32)
  (loop $shape$0$continue
   (block
    (call $check
     (i32.const 0)
    )
    (call $check
     (i32.const 1)
    )
   )
   (block
    (br $shape$0$continue)
   )
  )
 )
 (func $loop-plus-code (; 5 ;) (type $v)
  (local $0 i32)
  (loop $shape$0$continue
   (block
    (block
     (call $check
      (i32.const 0)
     )
     (drop
      (i32.const 33)
     )
    )
    (call $check
     (i32.const 1)
    )
   )
   (block
    (drop
     (i32.const -66)
    )
    (br $shape$0$continue)
   )
  )
 )
 (func $split (; 6 ;) (type $v)
  (local $0 i32)
  (call $check
   (i32.const 0)
  )
  (if
   (i32.const 55)
   (block
    (call $check
     (i32.const 1)
    )
   )
   (block
    (call $check
     (i32.const 2)
    )
   )
  )
 )
 (func $split-plus-code (; 7 ;) (type $v)
  (local $0 i32)
  (call $check
   (i32.const 0)
  )
  (if
   (i32.const 55)
   (block
    (drop
     (i32.const 10)
    )
    (block
     (call $check
      (i32.const 1)
     )
    )
   )
   (block
    (drop
     (i32.const 20)
    )
    (block
     (call $check
      (i32.const 2)
     )
    )
   )
  )
 )
 (func $if (; 8 ;) (type $v)
  (local $0 i32)
  (block $block$3$break
   (call $check
    (i32.const 0)
   )
   (if
    (i32.const 55)
    (block
     (call $check
      (i32.const 1)
     )
     (block
      (br $block$3$break)
     )
    )
    (br $block$3$break)
   )
  )
  (block
   (call $check
    (i32.const 2)
   )
  )
 )
 (func $if-plus-code (; 9 ;) (type $v)
  (local $0 i32)
  (block $block$3$break
   (call $check
    (i32.const 0)
   )
   (if
    (i32.const 55)
    (block
     (drop
      (i32.const -1)
     )
     (block
      (call $check
       (i32.const 1)
      )
      (block
       (drop
        (i32.const -3)
       )
       (br $block$3$break)
      )
     )
    )
    (block
     (drop
      (i32.const -2)
     )
     (br $block$3$break)
    )
   )
  )
  (block
   (call $check
    (i32.const 2)
   )
  )
 )
 (func $if-else (; 10 ;) (type $v)
  (local $0 i32)
  (block $block$4$break
   (call $check
    (i32.const 0)
   )
   (if
    (i32.const 55)
    (block
     (call $check
      (i32.const 1)
     )
     (block
      (br $block$4$break)
     )
    )
    (block
     (call $check
      (i32.const 2)
     )
     (block
      (br $block$4$break)
     )
    )
   )
  )
  (block
   (call $check
    (i32.const 3)
   )
  )
 )
 (func $loop-tail (; 11 ;) (type $v)
  (local $0 i32)
  (block $block$3$break
   (loop $shape$0$continue
    (block
     (call $check
      (i32.const 0)
     )
     (call $check
      (i32.const 1)
     )
    )
    (if
     (i32.const 10)
     (br $shape$0$continue)
     (br $block$3$break)
    )
   )
  )
  (block
   (call $check
    (i32.const 2)
   )
  )
 )
 (func $nontrivial-loop-plus-phi-to-head (; 12 ;) (type $v)
  (local $0 i32)
  (block $block$2$break
   (call $check
    (i32.const 0)
   )
   (block
    (drop
     (i32.const 10)
    )
    (br $block$2$break)
   )
  )
  (block
   (block $block$7$break
    (block $block$4$break
     (loop $shape$1$continue
      (block $block$3$break
       (call $check
        (i32.const 1)
       )
       (if
        (i32.const -2)
        (br $block$3$break)
        (block
         (drop
          (i32.const 20)
         )
         (br $block$7$break)
        )
       )
      )
      (block
       (call $check
        (i32.const 2)
       )
       (if
        (i32.const -6)
        (br $block$4$break)
        (block
         (drop
          (i32.const 30)
         )
         (br $shape$1$continue)
        )
       )
      )
     )
    )
    (block
     (block $block$6$break
      (call $check
       (i32.const 3)
      )
      (if
       (i32.const -10)
       (block
        (call $check
         (i32.const 4)
        )
        (block
         (br $block$6$break)
        )
       )
       (br $block$6$break)
      )
     )
     (block
      (call $check
       (i32.const 5)
      )
      (block
       (drop
        (i32.const 40)
       )
       (br $block$7$break)
      )
     )
    )
   )
   (block
    (call $check
     (i32.const 6)
    )
   )
  )
 )
 (func $switch (; 13 ;) (type $v)
  (local $0 i32)
  (call $check
   (i32.const 0)
  )
  (block $switch$1$leave
   (block $switch$1$default
    (block $switch$1$case$3
     (block $switch$1$case$2
      (br_table $switch$1$default $switch$1$default $switch$1$case$2 $switch$1$default $switch$1$case$3 $switch$1$case$2 $switch$1$default
       (i32.const -99)
      )
     )
     (block
      (block
       (call $check
        (i32.const 1)
       )
      )
     )
     (br $switch$1$leave)
    )
    (block
     (drop
      (i32.const 55)
     )
     (block
      (call $check
       (i32.const 2)
      )
     )
    )
    (br $switch$1$leave)
   )
   (block
    (block
     (call $check
      (i32.const 3)
     )
    )
   )
   (br $switch$1$leave)
  )
 )
 (func $duffs-device (; 14 ;) (type $v)
  (local $0 i32)
  (local $1 i32)
  (local $2 i64)
  (local $3 i32)
  (local $4 f32)
  (local $5 f64)
  (local $6 i32)
  (block
   (block $block$3$break
    (block $block$2$break
     (call $check
      (i32.const 0)
     )
     (if
      (i32.const 10)
      (block
       (local.set $3
        (i32.const 2)
       )
       (br $block$2$break)
      )
      (block
       (local.set $3
        (i32.const 3)
       )
       (br $block$3$break)
      )
     )
    )
   )
  )
  (loop $shape$1$continue
   (if
    (i32.eq
     (local.get $3)
     (i32.const 2)
    )
    (block
     (local.set $3
      (i32.const 0)
     )
     (call $check
      (i32.const 1)
     )
     (block
      (local.set $3
       (i32.const 3)
      )
      (br $shape$1$continue)
     )
    )
    (if
     (i32.eq
      (local.get $3)
      (i32.const 3)
     )
     (block
      (local.set $3
       (i32.const 0)
      )
      (call $check
       (i32.const 2)
      )
      (block
       (local.set $3
        (i32.const 2)
       )
       (br $shape$1$continue)
      )
     )
    )
   )
  )
 )
 (func $return (; 15 ;) (type $i) (result i32)
  (local $0 i32)
  (block
   (call $check
    (i32.const 42)
   )
   (return
    (i32.const 1337)
   )
  )
 )
)
  BinaryenModuleValidate(the_module);
  BinaryenModuleOptimize(the_module);
  BinaryenModuleValidate(the_module);
optimized:
  BinaryenModulePrint(the_module);
(module
)
  BinaryenModuleDispose(the_module);
  functionTypes.clear();
  expressions.clear();
  functions.clear();
  globals.clear();
  events.clear();
  exports.clear();
  relooperBlocks.clear();
  return 0;
}
