(module
 (type $i64_=>_v128 (func (param i64) (result v128)))
 (type $i64_v128_=>_none (func (param i64 v128)))
 (memory $0 i64 1 1)
 (func $v128.load (type $i64_=>_v128) (param $0 i64) (result v128)
  (v128.load
   (local.get $0)
  )
 )
 (func $v128.store (type $i64_v128_=>_none) (param $0 i64) (param $1 v128)
  (v128.store
   (local.get $0)
   (local.get $1)
  )
 )
 (func $v128.load8_splat (type $i64_=>_v128) (param $0 i64) (result v128)
  (v128.load8_splat
   (local.get $0)
  )
 )
 (func $v128.load16_splat (type $i64_=>_v128) (param $0 i64) (result v128)
  (v128.load16_splat
   (local.get $0)
  )
 )
 (func $v128.load32_splat (type $i64_=>_v128) (param $0 i64) (result v128)
  (v128.load32_splat
   (local.get $0)
  )
 )
 (func $v128.load64_splat (type $i64_=>_v128) (param $0 i64) (result v128)
  (v128.load64_splat
   (local.get $0)
  )
 )
 (func $v128.load8x8_u (type $i64_=>_v128) (param $0 i64) (result v128)
  (v128.load8x8_u
   (local.get $0)
  )
 )
 (func $v128.load8x8_s (type $i64_=>_v128) (param $0 i64) (result v128)
  (v128.load8x8_s
   (local.get $0)
  )
 )
 (func $v128.load16x4_s (type $i64_=>_v128) (param $0 i64) (result v128)
  (v128.load16x4_s
   (local.get $0)
  )
 )
 (func $v128.load16x4_u (type $i64_=>_v128) (param $0 i64) (result v128)
  (v128.load16x4_u
   (local.get $0)
  )
 )
 (func $v128.load32x2_s (type $i64_=>_v128) (param $0 i64) (result v128)
  (v128.load32x2_s
   (local.get $0)
  )
 )
 (func $v128.load32x2_u (type $i64_=>_v128) (param $0 i64) (result v128)
  (v128.load32x2_u
   (local.get $0)
  )
 )
 (func $v128.load32_zero (type $i64_=>_v128) (param $0 i64) (result v128)
  (v128.load32_zero
   (local.get $0)
  )
 )
 (func $v128.load64_zero (type $i64_=>_v128) (param $0 i64) (result v128)
  (v128.load64_zero
   (local.get $0)
  )
 )
)

