(module
 (type $i64_=>_v128 (func (param i64) (result v128)))
 (type $i64_v128_=>_none (func (param i64 v128)))
 (memory $0 i64 1 1)
 (func $0 (type $i64_=>_v128) (param $0 i64) (result v128)
  (v128.load
   (local.get $0)
  )
 )
 (func $1 (type $i64_v128_=>_none) (param $0 i64) (param $1 v128)
  (v128.store
   (local.get $0)
   (local.get $1)
  )
 )
 (func $2 (type $i64_=>_v128) (param $0 i64) (result v128)
  (v128.load8_splat
   (local.get $0)
  )
 )
 (func $3 (type $i64_=>_v128) (param $0 i64) (result v128)
  (v128.load16_splat
   (local.get $0)
  )
 )
 (func $4 (type $i64_=>_v128) (param $0 i64) (result v128)
  (v128.load32_splat
   (local.get $0)
  )
 )
 (func $5 (type $i64_=>_v128) (param $0 i64) (result v128)
  (v128.load64_splat
   (local.get $0)
  )
 )
 (func $6 (type $i64_=>_v128) (param $0 i64) (result v128)
  (v128.load8x8_u
   (local.get $0)
  )
 )
 (func $7 (type $i64_=>_v128) (param $0 i64) (result v128)
  (v128.load8x8_s
   (local.get $0)
  )
 )
 (func $8 (type $i64_=>_v128) (param $0 i64) (result v128)
  (v128.load16x4_s
   (local.get $0)
  )
 )
 (func $9 (type $i64_=>_v128) (param $0 i64) (result v128)
  (v128.load16x4_u
   (local.get $0)
  )
 )
 (func $10 (type $i64_=>_v128) (param $0 i64) (result v128)
  (v128.load32x2_s
   (local.get $0)
  )
 )
 (func $11 (type $i64_=>_v128) (param $0 i64) (result v128)
  (v128.load32x2_u
   (local.get $0)
  )
 )
 (func $12 (type $i64_=>_v128) (param $0 i64) (result v128)
  (v128.load32_zero
   (local.get $0)
  )
 )
 (func $13 (type $i64_=>_v128) (param $0 i64) (result v128)
  (v128.load64_zero
   (local.get $0)
  )
 )
)

