(module
 (type $i32_=>_v128 (func (param i32) (result v128)))
 (type $i32_v128_=>_none (func (param i32 v128)))
 (type $i32_v128_=>_v128 (func (param i32 v128) (result v128)))
 (memory $memorya 1 1)
 (memory $memoryb 1 1)
 (memory $memoryc 1 1)
 (memory $memoryd 1 1)
 (func $v128.load (param $0 i32) (result v128)
  (v128.load $memorya
   (local.get $0)
  )
 )
 (func $v128.load2 (param $0 i32) (result v128)
  (v128.load $memoryb
   (local.get $0)
  )
 )
 (func $v128.load8x8_s (param $0 i32) (result v128)
  (v128.load8x8_s $memoryc
   (local.get $0)
  )
 )
 (func $v128.load8x8_s2 (param $0 i32) (result v128)
  (v128.load8x8_s $memoryb
   (local.get $0)
  )
 )
 (func $v128.load8x8_u (param $0 i32) (result v128)
  (v128.load8x8_u $memoryd
   (local.get $0)
  )
 )
 (func $v128.load8x8_u2 (param $0 i32) (result v128)
  (v128.load8x8_u $memoryd
   (local.get $0)
  )
 )
 (func $v128.load16x4_s (param $0 i32) (result v128)
  (v128.load16x4_s $memorya
   (local.get $0)
  )
 )
 (func $v128.load16x4_s2 (param $0 i32) (result v128)
  (v128.load16x4_s $memoryb
   (local.get $0)
  )
 )
 (func $v128.load16x4_u (param $0 i32) (result v128)
  (v128.load16x4_u $memorya
   (local.get $0)
  )
 )
 (func $v128.load16x4_u2 (param $0 i32) (result v128)
  (v128.load16x4_u $memorya
   (local.get $0)
  )
 )
 (func $v128.load32x2_s (param $0 i32) (result v128)
  (v128.load32x2_s $memoryc
   (local.get $0)
  )
 )
 (func $v128.load32x2_s2 (param $0 i32) (result v128)
  (v128.load32x2_s $memoryb
   (local.get $0)
  )
 )
 (func $v128.load32x2_u (param $0 i32) (result v128)
  (v128.load32x2_u $memoryb
   (local.get $0)
  )
 )
 (func $v128.load32x2_u2 (param $0 i32) (result v128)
  (v128.load32x2_u $memoryc
   (local.get $0)
  )
 )
 (func $v128.load8_splat (param $0 i32) (result v128)
  (v128.load8_splat $memoryb
   (local.get $0)
  )
 )
 (func $v128.load8_splat2 (param $0 i32) (result v128)
  (v128.load8_splat $memoryb
   (local.get $0)
  )
 )
 (func $v128.load16_splat (param $0 i32) (result v128)
  (v128.load16_splat $memorya
   (local.get $0)
  )
 )
 (func $v128.load16_splat2 (param $0 i32) (result v128)
  (v128.load16_splat $memorya
   (local.get $0)
  )
 )
 (func $v128.load32_splat (param $0 i32) (result v128)
  (v128.load32_splat $memoryb
   (local.get $0)
  )
 )
 (func $v128.load32_splat2 (param $0 i32) (result v128)
  (v128.load32_splat $memoryd
   (local.get $0)
  )
 )
 (func $v128.load64_splat (param $0 i32) (result v128)
  (v128.load64_splat $memoryb
   (local.get $0)
  )
 )
 (func $v128.load64_splat2 (param $0 i32) (result v128)
  (v128.load64_splat $memorya
   (local.get $0)
  )
 )
 (func $v128.store (param $0 i32) (param $1 v128)
  (v128.store $memorya
   (local.get $0)
   (local.get $1)
  )
 )
 (func $v128.store2 (param $0 i32) (param $1 v128)
  (v128.store $memoryb
   (local.get $0)
   (local.get $1)
  )
 )
 (func $v128.load8_lane (param $0 i32) (param $1 v128) (result v128)
  (v128.load8_lane $memorya 0
   (local.get $0)
   (local.get $1)
  )
 )
 (func $v128.load8_lane2 (param $0 i32) (param $1 v128) (result v128)
  (v128.load8_lane $memoryb 0
   (local.get $0)
   (local.get $1)
  )
 )
 (func $v128.load16_lane (param $0 i32) (param $1 v128) (result v128)
  (v128.load16_lane $memoryb 0
   (local.get $0)
   (local.get $1)
  )
 )
 (func $v128.load16_lane2 (param $0 i32) (param $1 v128) (result v128)
  (v128.load16_lane $memoryd 0
   (local.get $0)
   (local.get $1)
  )
 )
 (func $v128.load32_lane (param $0 i32) (param $1 v128) (result v128)
  (v128.load32_lane $memorya 0
   (local.get $0)
   (local.get $1)
  )
 )
 (func $v128.load32_lane2 (param $0 i32) (param $1 v128) (result v128)
  (v128.load32_lane $memoryb 0
   (local.get $0)
   (local.get $1)
  )
 )
 (func $v128.load64_lane (param $0 i32) (param $1 v128) (result v128)
  (v128.load64_lane $memoryd 0
   (local.get $0)
   (local.get $1)
  )
 )
 (func $v128.load64_lane2 (param $0 i32) (param $1 v128) (result v128)
  (v128.load64_lane $memoryb 0
   (local.get $0)
   (local.get $1)
  )
 )
 (func $v128.load64_lane_align (param $0 i32) (param $1 v128) (result v128)
  (v128.load64_lane $memorya align=1 0
   (local.get $0)
   (local.get $1)
  )
 )
 (func $v128.load64_lane_align2 (param $0 i32) (param $1 v128) (result v128)
  (v128.load64_lane $memoryb align=1 0
   (local.get $0)
   (local.get $1)
  )
 )
 (func $v128.load64_lane_offset (param $0 i32) (param $1 v128) (result v128)
  (v128.load64_lane $memoryc offset=32 0
   (local.get $0)
   (local.get $1)
  )
 )
 (func $v128.load64_lane_offset2 (param $0 i32) (param $1 v128) (result v128)
  (v128.load64_lane $memoryb offset=32 0
   (local.get $0)
   (local.get $1)
  )
 )
 (func $v128.load64_lane_align_offset (param $0 i32) (param $1 v128) (result v128)
  (v128.load64_lane $memorya offset=32 align=1 0
   (local.get $0)
   (local.get $1)
  )
 )
 (func $v128.load64_lane_align_offset2 (param $0 i32) (param $1 v128) (result v128)
  (v128.load64_lane $memoryd offset=32 align=1 0
   (local.get $0)
   (local.get $1)
  )
 )
 (func $v128.store8_lane (param $0 i32) (param $1 v128)
  (v128.store8_lane $memorya 0
   (local.get $0)
   (local.get $1)
  )
 )
 (func $v128.store8_lane2 (param $0 i32) (param $1 v128)
  (v128.store8_lane $memoryd 0
   (local.get $0)
   (local.get $1)
  )
 )
 (func $v128.store16_lane (param $0 i32) (param $1 v128)
  (v128.store16_lane $memorya 0
   (local.get $0)
   (local.get $1)
  )
 )
 (func $v128.store16_lane2 (param $0 i32) (param $1 v128)
  (v128.store16_lane $memoryb 0
   (local.get $0)
   (local.get $1)
  )
 )
 (func $v128.store32_lane (param $0 i32) (param $1 v128)
  (v128.store32_lane $memoryb 0
   (local.get $0)
   (local.get $1)
  )
 )
 (func $v128.store32_lane2 (param $0 i32) (param $1 v128)
  (v128.store32_lane $memoryc 0
   (local.get $0)
   (local.get $1)
  )
 )
 (func $v128.store64_lane (param $0 i32) (param $1 v128)
  (v128.store64_lane $memoryc 0
   (local.get $0)
   (local.get $1)
  )
 )
 (func $v128.store64_lane2 (param $0 i32) (param $1 v128)
  (v128.store64_lane $memoryb 0
   (local.get $0)
   (local.get $1)
  )
 )
 (func $v128.store64_lane_align (param $0 i32) (param $1 v128)
  (v128.store64_lane $memoryb align=1 0
   (local.get $0)
   (local.get $1)
  )
 )
 (func $v128.store64_lane_align2 (param $0 i32) (param $1 v128)
  (v128.store64_lane $memorya align=1 0
   (local.get $0)
   (local.get $1)
  )
 )
 (func $v128.store64_lane_offset (param $0 i32) (param $1 v128)
  (v128.store64_lane $memoryd offset=32 0
   (local.get $0)
   (local.get $1)
  )
 )
 (func $v128.store64_lane_offset2 (param $0 i32) (param $1 v128)
  (v128.store64_lane $memorya offset=32 0
   (local.get $0)
   (local.get $1)
  )
 )
 (func $v128.store64_lane_align_offset (param $0 i32) (param $1 v128)
  (v128.store64_lane $memoryb offset=32 align=1 0
   (local.get $0)
   (local.get $1)
  )
 )
 (func $v128.store64_lane_align_offset2 (param $0 i32) (param $1 v128)
  (v128.store64_lane $memoryd offset=32 align=1 0
   (local.get $0)
   (local.get $1)
  )
 )
 (func $v128.load32_zero (param $0 i32) (result v128)
  (v128.load32_zero $memorya
   (local.get $0)
  )
 )
 (func $v128.load32_zero2 (param $0 i32) (result v128)
  (v128.load32_zero $memoryb
   (local.get $0)
  )
 )
 (func $v128.load64_zero (param $0 i32) (result v128)
  (v128.load64_zero $memoryb
   (local.get $0)
  )
 )
 (func $v128.load64_zero2 (param $0 i32) (result v128)
  (v128.load64_zero $memoryc
   (local.get $0)
  )
 )
)

