// |jit-test| skip-if: !wasmSimdEnabled()

/* Copyright 2021 Mozilla Foundation
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

// ./test/core/simd/simd_store8_lane.wast

// ./test/core/simd/simd_store8_lane.wast:4
let $0 = instantiate(`(module
  (memory 1)
  (global $$zero (mut v128) (v128.const i32x4 0 0 0 0))
  (func (export "v128.store8_lane_0")
    (param $$address i32) (param $$x v128) (result i64) (local $$ret i64)
    (v128.store8_lane 0 (local.get $$address) (local.get $$x))
    (local.set $$ret (i64.load (local.get $$address)))
    (v128.store (local.get $$address) (global.get $$zero))    (local.get $$ret))
  (func (export "v128.store8_lane_1")
    (param $$address i32) (param $$x v128) (result i64) (local $$ret i64)
    (v128.store8_lane 1 (local.get $$address) (local.get $$x))
    (local.set $$ret (i64.load (local.get $$address)))
    (v128.store (local.get $$address) (global.get $$zero))    (local.get $$ret))
  (func (export "v128.store8_lane_2")
    (param $$address i32) (param $$x v128) (result i64) (local $$ret i64)
    (v128.store8_lane 2 (local.get $$address) (local.get $$x))
    (local.set $$ret (i64.load (local.get $$address)))
    (v128.store (local.get $$address) (global.get $$zero))    (local.get $$ret))
  (func (export "v128.store8_lane_3")
    (param $$address i32) (param $$x v128) (result i64) (local $$ret i64)
    (v128.store8_lane 3 (local.get $$address) (local.get $$x))
    (local.set $$ret (i64.load (local.get $$address)))
    (v128.store (local.get $$address) (global.get $$zero))    (local.get $$ret))
  (func (export "v128.store8_lane_4")
    (param $$address i32) (param $$x v128) (result i64) (local $$ret i64)
    (v128.store8_lane 4 (local.get $$address) (local.get $$x))
    (local.set $$ret (i64.load (local.get $$address)))
    (v128.store (local.get $$address) (global.get $$zero))    (local.get $$ret))
  (func (export "v128.store8_lane_5")
    (param $$address i32) (param $$x v128) (result i64) (local $$ret i64)
    (v128.store8_lane 5 (local.get $$address) (local.get $$x))
    (local.set $$ret (i64.load (local.get $$address)))
    (v128.store (local.get $$address) (global.get $$zero))    (local.get $$ret))
  (func (export "v128.store8_lane_6")
    (param $$address i32) (param $$x v128) (result i64) (local $$ret i64)
    (v128.store8_lane 6 (local.get $$address) (local.get $$x))
    (local.set $$ret (i64.load (local.get $$address)))
    (v128.store (local.get $$address) (global.get $$zero))    (local.get $$ret))
  (func (export "v128.store8_lane_7")
    (param $$address i32) (param $$x v128) (result i64) (local $$ret i64)
    (v128.store8_lane 7 (local.get $$address) (local.get $$x))
    (local.set $$ret (i64.load (local.get $$address)))
    (v128.store (local.get $$address) (global.get $$zero))    (local.get $$ret))
  (func (export "v128.store8_lane_8")
    (param $$address i32) (param $$x v128) (result i64) (local $$ret i64)
    (v128.store8_lane 8 (local.get $$address) (local.get $$x))
    (local.set $$ret (i64.load (local.get $$address)))
    (v128.store (local.get $$address) (global.get $$zero))    (local.get $$ret))
  (func (export "v128.store8_lane_9")
    (param $$address i32) (param $$x v128) (result i64) (local $$ret i64)
    (v128.store8_lane 9 (local.get $$address) (local.get $$x))
    (local.set $$ret (i64.load (local.get $$address)))
    (v128.store (local.get $$address) (global.get $$zero))    (local.get $$ret))
  (func (export "v128.store8_lane_10")
    (param $$address i32) (param $$x v128) (result i64) (local $$ret i64)
    (v128.store8_lane 10 (local.get $$address) (local.get $$x))
    (local.set $$ret (i64.load (local.get $$address)))
    (v128.store (local.get $$address) (global.get $$zero))    (local.get $$ret))
  (func (export "v128.store8_lane_11")
    (param $$address i32) (param $$x v128) (result i64) (local $$ret i64)
    (v128.store8_lane 11 (local.get $$address) (local.get $$x))
    (local.set $$ret (i64.load (local.get $$address)))
    (v128.store (local.get $$address) (global.get $$zero))    (local.get $$ret))
  (func (export "v128.store8_lane_12")
    (param $$address i32) (param $$x v128) (result i64) (local $$ret i64)
    (v128.store8_lane 12 (local.get $$address) (local.get $$x))
    (local.set $$ret (i64.load (local.get $$address)))
    (v128.store (local.get $$address) (global.get $$zero))    (local.get $$ret))
  (func (export "v128.store8_lane_13")
    (param $$address i32) (param $$x v128) (result i64) (local $$ret i64)
    (v128.store8_lane 13 (local.get $$address) (local.get $$x))
    (local.set $$ret (i64.load (local.get $$address)))
    (v128.store (local.get $$address) (global.get $$zero))    (local.get $$ret))
  (func (export "v128.store8_lane_14")
    (param $$address i32) (param $$x v128) (result i64) (local $$ret i64)
    (v128.store8_lane 14 (local.get $$address) (local.get $$x))
    (local.set $$ret (i64.load (local.get $$address)))
    (v128.store (local.get $$address) (global.get $$zero))    (local.get $$ret))
  (func (export "v128.store8_lane_15")
    (param $$address i32) (param $$x v128) (result i64) (local $$ret i64)
    (v128.store8_lane 15 (local.get $$address) (local.get $$x))
    (local.set $$ret (i64.load (local.get $$address)))
    (v128.store (local.get $$address) (global.get $$zero))    (local.get $$ret))
  (func (export "v128.store8_lane_0_offset_0")
    (param $$x v128) (result i64) (local $$ret i64)
    (v128.store8_lane offset=0 0 (i32.const 0) (local.get $$x))
    (local.set $$ret (i64.load offset=0 (i32.const 0)))
    (v128.store offset=0 (i32.const 0) (global.get $$zero))
    (local.get $$ret))
  (func (export "v128.store8_lane_1_offset_1")
    (param $$x v128) (result i64) (local $$ret i64)
    (v128.store8_lane offset=1 1 (i32.const 0) (local.get $$x))
    (local.set $$ret (i64.load offset=1 (i32.const 0)))
    (v128.store offset=1 (i32.const 0) (global.get $$zero))
    (local.get $$ret))
  (func (export "v128.store8_lane_2_offset_2")
    (param $$x v128) (result i64) (local $$ret i64)
    (v128.store8_lane offset=2 2 (i32.const 0) (local.get $$x))
    (local.set $$ret (i64.load offset=2 (i32.const 0)))
    (v128.store offset=2 (i32.const 0) (global.get $$zero))
    (local.get $$ret))
  (func (export "v128.store8_lane_3_offset_3")
    (param $$x v128) (result i64) (local $$ret i64)
    (v128.store8_lane offset=3 3 (i32.const 0) (local.get $$x))
    (local.set $$ret (i64.load offset=3 (i32.const 0)))
    (v128.store offset=3 (i32.const 0) (global.get $$zero))
    (local.get $$ret))
  (func (export "v128.store8_lane_4_offset_4")
    (param $$x v128) (result i64) (local $$ret i64)
    (v128.store8_lane offset=4 4 (i32.const 0) (local.get $$x))
    (local.set $$ret (i64.load offset=4 (i32.const 0)))
    (v128.store offset=4 (i32.const 0) (global.get $$zero))
    (local.get $$ret))
  (func (export "v128.store8_lane_5_offset_5")
    (param $$x v128) (result i64) (local $$ret i64)
    (v128.store8_lane offset=5 5 (i32.const 0) (local.get $$x))
    (local.set $$ret (i64.load offset=5 (i32.const 0)))
    (v128.store offset=5 (i32.const 0) (global.get $$zero))
    (local.get $$ret))
  (func (export "v128.store8_lane_6_offset_6")
    (param $$x v128) (result i64) (local $$ret i64)
    (v128.store8_lane offset=6 6 (i32.const 0) (local.get $$x))
    (local.set $$ret (i64.load offset=6 (i32.const 0)))
    (v128.store offset=6 (i32.const 0) (global.get $$zero))
    (local.get $$ret))
  (func (export "v128.store8_lane_7_offset_7")
    (param $$x v128) (result i64) (local $$ret i64)
    (v128.store8_lane offset=7 7 (i32.const 0) (local.get $$x))
    (local.set $$ret (i64.load offset=7 (i32.const 0)))
    (v128.store offset=7 (i32.const 0) (global.get $$zero))
    (local.get $$ret))
  (func (export "v128.store8_lane_8_offset_8")
    (param $$x v128) (result i64) (local $$ret i64)
    (v128.store8_lane offset=8 8 (i32.const 0) (local.get $$x))
    (local.set $$ret (i64.load offset=8 (i32.const 0)))
    (v128.store offset=8 (i32.const 0) (global.get $$zero))
    (local.get $$ret))
  (func (export "v128.store8_lane_9_offset_9")
    (param $$x v128) (result i64) (local $$ret i64)
    (v128.store8_lane offset=9 9 (i32.const 0) (local.get $$x))
    (local.set $$ret (i64.load offset=9 (i32.const 0)))
    (v128.store offset=9 (i32.const 0) (global.get $$zero))
    (local.get $$ret))
  (func (export "v128.store8_lane_10_offset_10")
    (param $$x v128) (result i64) (local $$ret i64)
    (v128.store8_lane offset=10 10 (i32.const 0) (local.get $$x))
    (local.set $$ret (i64.load offset=10 (i32.const 0)))
    (v128.store offset=10 (i32.const 0) (global.get $$zero))
    (local.get $$ret))
  (func (export "v128.store8_lane_11_offset_11")
    (param $$x v128) (result i64) (local $$ret i64)
    (v128.store8_lane offset=11 11 (i32.const 0) (local.get $$x))
    (local.set $$ret (i64.load offset=11 (i32.const 0)))
    (v128.store offset=11 (i32.const 0) (global.get $$zero))
    (local.get $$ret))
  (func (export "v128.store8_lane_12_offset_12")
    (param $$x v128) (result i64) (local $$ret i64)
    (v128.store8_lane offset=12 12 (i32.const 0) (local.get $$x))
    (local.set $$ret (i64.load offset=12 (i32.const 0)))
    (v128.store offset=12 (i32.const 0) (global.get $$zero))
    (local.get $$ret))
  (func (export "v128.store8_lane_13_offset_13")
    (param $$x v128) (result i64) (local $$ret i64)
    (v128.store8_lane offset=13 13 (i32.const 0) (local.get $$x))
    (local.set $$ret (i64.load offset=13 (i32.const 0)))
    (v128.store offset=13 (i32.const 0) (global.get $$zero))
    (local.get $$ret))
  (func (export "v128.store8_lane_14_offset_14")
    (param $$x v128) (result i64) (local $$ret i64)
    (v128.store8_lane offset=14 14 (i32.const 0) (local.get $$x))
    (local.set $$ret (i64.load offset=14 (i32.const 0)))
    (v128.store offset=14 (i32.const 0) (global.get $$zero))
    (local.get $$ret))
  (func (export "v128.store8_lane_15_offset_15")
    (param $$x v128) (result i64) (local $$ret i64)
    (v128.store8_lane offset=15 15 (i32.const 0) (local.get $$x))
    (local.set $$ret (i64.load offset=15 (i32.const 0)))
    (v128.store offset=15 (i32.const 0) (global.get $$zero))
    (local.get $$ret))
  (func (export "v128.store8_lane_0_align_1")
    (param $$address i32) (param $$x v128) (result i64) (local $$ret i64)
    (v128.store8_lane align=1 0 (local.get $$address) (local.get $$x))
    (local.set $$ret (i64.load (local.get $$address)))
    (v128.store offset=0 (i32.const 0) (global.get $$zero))
    (local.get $$ret))
  (func (export "v128.store8_lane_1_align_1")
    (param $$address i32) (param $$x v128) (result i64) (local $$ret i64)
    (v128.store8_lane align=1 1 (local.get $$address) (local.get $$x))
    (local.set $$ret (i64.load (local.get $$address)))
    (v128.store offset=1 (i32.const 0) (global.get $$zero))
    (local.get $$ret))
  (func (export "v128.store8_lane_2_align_1")
    (param $$address i32) (param $$x v128) (result i64) (local $$ret i64)
    (v128.store8_lane align=1 2 (local.get $$address) (local.get $$x))
    (local.set $$ret (i64.load (local.get $$address)))
    (v128.store offset=2 (i32.const 0) (global.get $$zero))
    (local.get $$ret))
  (func (export "v128.store8_lane_3_align_1")
    (param $$address i32) (param $$x v128) (result i64) (local $$ret i64)
    (v128.store8_lane align=1 3 (local.get $$address) (local.get $$x))
    (local.set $$ret (i64.load (local.get $$address)))
    (v128.store offset=3 (i32.const 0) (global.get $$zero))
    (local.get $$ret))
  (func (export "v128.store8_lane_4_align_1")
    (param $$address i32) (param $$x v128) (result i64) (local $$ret i64)
    (v128.store8_lane align=1 4 (local.get $$address) (local.get $$x))
    (local.set $$ret (i64.load (local.get $$address)))
    (v128.store offset=4 (i32.const 0) (global.get $$zero))
    (local.get $$ret))
  (func (export "v128.store8_lane_5_align_1")
    (param $$address i32) (param $$x v128) (result i64) (local $$ret i64)
    (v128.store8_lane align=1 5 (local.get $$address) (local.get $$x))
    (local.set $$ret (i64.load (local.get $$address)))
    (v128.store offset=5 (i32.const 0) (global.get $$zero))
    (local.get $$ret))
  (func (export "v128.store8_lane_6_align_1")
    (param $$address i32) (param $$x v128) (result i64) (local $$ret i64)
    (v128.store8_lane align=1 6 (local.get $$address) (local.get $$x))
    (local.set $$ret (i64.load (local.get $$address)))
    (v128.store offset=6 (i32.const 0) (global.get $$zero))
    (local.get $$ret))
  (func (export "v128.store8_lane_7_align_1")
    (param $$address i32) (param $$x v128) (result i64) (local $$ret i64)
    (v128.store8_lane align=1 7 (local.get $$address) (local.get $$x))
    (local.set $$ret (i64.load (local.get $$address)))
    (v128.store offset=7 (i32.const 0) (global.get $$zero))
    (local.get $$ret))
  (func (export "v128.store8_lane_8_align_1")
    (param $$address i32) (param $$x v128) (result i64) (local $$ret i64)
    (v128.store8_lane align=1 8 (local.get $$address) (local.get $$x))
    (local.set $$ret (i64.load (local.get $$address)))
    (v128.store offset=8 (i32.const 0) (global.get $$zero))
    (local.get $$ret))
  (func (export "v128.store8_lane_9_align_1")
    (param $$address i32) (param $$x v128) (result i64) (local $$ret i64)
    (v128.store8_lane align=1 9 (local.get $$address) (local.get $$x))
    (local.set $$ret (i64.load (local.get $$address)))
    (v128.store offset=9 (i32.const 0) (global.get $$zero))
    (local.get $$ret))
  (func (export "v128.store8_lane_10_align_1")
    (param $$address i32) (param $$x v128) (result i64) (local $$ret i64)
    (v128.store8_lane align=1 10 (local.get $$address) (local.get $$x))
    (local.set $$ret (i64.load (local.get $$address)))
    (v128.store offset=10 (i32.const 0) (global.get $$zero))
    (local.get $$ret))
  (func (export "v128.store8_lane_11_align_1")
    (param $$address i32) (param $$x v128) (result i64) (local $$ret i64)
    (v128.store8_lane align=1 11 (local.get $$address) (local.get $$x))
    (local.set $$ret (i64.load (local.get $$address)))
    (v128.store offset=11 (i32.const 0) (global.get $$zero))
    (local.get $$ret))
  (func (export "v128.store8_lane_12_align_1")
    (param $$address i32) (param $$x v128) (result i64) (local $$ret i64)
    (v128.store8_lane align=1 12 (local.get $$address) (local.get $$x))
    (local.set $$ret (i64.load (local.get $$address)))
    (v128.store offset=12 (i32.const 0) (global.get $$zero))
    (local.get $$ret))
  (func (export "v128.store8_lane_13_align_1")
    (param $$address i32) (param $$x v128) (result i64) (local $$ret i64)
    (v128.store8_lane align=1 13 (local.get $$address) (local.get $$x))
    (local.set $$ret (i64.load (local.get $$address)))
    (v128.store offset=13 (i32.const 0) (global.get $$zero))
    (local.get $$ret))
  (func (export "v128.store8_lane_14_align_1")
    (param $$address i32) (param $$x v128) (result i64) (local $$ret i64)
    (v128.store8_lane align=1 14 (local.get $$address) (local.get $$x))
    (local.set $$ret (i64.load (local.get $$address)))
    (v128.store offset=14 (i32.const 0) (global.get $$zero))
    (local.get $$ret))
  (func (export "v128.store8_lane_15_align_1")
    (param $$address i32) (param $$x v128) (result i64) (local $$ret i64)
    (v128.store8_lane align=1 15 (local.get $$address) (local.get $$x))
    (local.set $$ret (i64.load (local.get $$address)))
    (v128.store offset=15 (i32.const 0) (global.get $$zero))
    (local.get $$ret))
)`);

// ./test/core/simd/simd_store8_lane.wast:281
assert_return(
  () =>
    invoke($0, `v128.store8_lane_0`, [
      0,
      i8x16([
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
      ]),
    ]),
  [value("i64", 0n)],
);

// ./test/core/simd/simd_store8_lane.wast:284
assert_return(
  () =>
    invoke($0, `v128.store8_lane_1`, [
      1,
      i8x16([
        0x0,
        0x1,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
      ]),
    ]),
  [value("i64", 1n)],
);

// ./test/core/simd/simd_store8_lane.wast:287
assert_return(
  () =>
    invoke($0, `v128.store8_lane_2`, [
      2,
      i8x16([
        0x0,
        0x0,
        0x2,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
      ]),
    ]),
  [value("i64", 2n)],
);

// ./test/core/simd/simd_store8_lane.wast:290
assert_return(
  () =>
    invoke($0, `v128.store8_lane_3`, [
      3,
      i8x16([
        0x0,
        0x0,
        0x0,
        0x3,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
      ]),
    ]),
  [value("i64", 3n)],
);

// ./test/core/simd/simd_store8_lane.wast:293
assert_return(
  () =>
    invoke($0, `v128.store8_lane_4`, [
      4,
      i8x16([
        0x0,
        0x0,
        0x0,
        0x0,
        0x4,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
      ]),
    ]),
  [value("i64", 4n)],
);

// ./test/core/simd/simd_store8_lane.wast:296
assert_return(
  () =>
    invoke($0, `v128.store8_lane_5`, [
      5,
      i8x16([
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x5,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
      ]),
    ]),
  [value("i64", 5n)],
);

// ./test/core/simd/simd_store8_lane.wast:299
assert_return(
  () =>
    invoke($0, `v128.store8_lane_6`, [
      6,
      i8x16([
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x6,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
      ]),
    ]),
  [value("i64", 6n)],
);

// ./test/core/simd/simd_store8_lane.wast:302
assert_return(
  () =>
    invoke($0, `v128.store8_lane_7`, [
      7,
      i8x16([
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x7,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
      ]),
    ]),
  [value("i64", 7n)],
);

// ./test/core/simd/simd_store8_lane.wast:305
assert_return(
  () =>
    invoke($0, `v128.store8_lane_8`, [
      8,
      i8x16([
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x8,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
      ]),
    ]),
  [value("i64", 8n)],
);

// ./test/core/simd/simd_store8_lane.wast:308
assert_return(
  () =>
    invoke($0, `v128.store8_lane_9`, [
      9,
      i8x16([
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x9,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
      ]),
    ]),
  [value("i64", 9n)],
);

// ./test/core/simd/simd_store8_lane.wast:311
assert_return(
  () =>
    invoke($0, `v128.store8_lane_10`, [
      10,
      i8x16([
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0xa,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
      ]),
    ]),
  [value("i64", 10n)],
);

// ./test/core/simd/simd_store8_lane.wast:314
assert_return(
  () =>
    invoke($0, `v128.store8_lane_11`, [
      11,
      i8x16([
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0xb,
        0x0,
        0x0,
        0x0,
        0x0,
      ]),
    ]),
  [value("i64", 11n)],
);

// ./test/core/simd/simd_store8_lane.wast:317
assert_return(
  () =>
    invoke($0, `v128.store8_lane_12`, [
      12,
      i8x16([
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0xc,
        0x0,
        0x0,
        0x0,
      ]),
    ]),
  [value("i64", 12n)],
);

// ./test/core/simd/simd_store8_lane.wast:320
assert_return(
  () =>
    invoke($0, `v128.store8_lane_13`, [
      13,
      i8x16([
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0xd,
        0x0,
        0x0,
      ]),
    ]),
  [value("i64", 13n)],
);

// ./test/core/simd/simd_store8_lane.wast:323
assert_return(
  () =>
    invoke($0, `v128.store8_lane_14`, [
      14,
      i8x16([
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0xe,
        0x0,
      ]),
    ]),
  [value("i64", 14n)],
);

// ./test/core/simd/simd_store8_lane.wast:326
assert_return(
  () =>
    invoke($0, `v128.store8_lane_15`, [
      15,
      i8x16([
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0xf,
      ]),
    ]),
  [value("i64", 15n)],
);

// ./test/core/simd/simd_store8_lane.wast:329
assert_return(
  () =>
    invoke($0, `v128.store8_lane_0_offset_0`, [
      i8x16([
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
      ]),
    ]),
  [value("i64", 0n)],
);

// ./test/core/simd/simd_store8_lane.wast:331
assert_return(
  () =>
    invoke($0, `v128.store8_lane_1_offset_1`, [
      i8x16([
        0x0,
        0x1,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
      ]),
    ]),
  [value("i64", 1n)],
);

// ./test/core/simd/simd_store8_lane.wast:333
assert_return(
  () =>
    invoke($0, `v128.store8_lane_2_offset_2`, [
      i8x16([
        0x0,
        0x0,
        0x2,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
      ]),
    ]),
  [value("i64", 2n)],
);

// ./test/core/simd/simd_store8_lane.wast:335
assert_return(
  () =>
    invoke($0, `v128.store8_lane_3_offset_3`, [
      i8x16([
        0x0,
        0x0,
        0x0,
        0x3,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
      ]),
    ]),
  [value("i64", 3n)],
);

// ./test/core/simd/simd_store8_lane.wast:337
assert_return(
  () =>
    invoke($0, `v128.store8_lane_4_offset_4`, [
      i8x16([
        0x0,
        0x0,
        0x0,
        0x0,
        0x4,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
      ]),
    ]),
  [value("i64", 4n)],
);

// ./test/core/simd/simd_store8_lane.wast:339
assert_return(
  () =>
    invoke($0, `v128.store8_lane_5_offset_5`, [
      i8x16([
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x5,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
      ]),
    ]),
  [value("i64", 5n)],
);

// ./test/core/simd/simd_store8_lane.wast:341
assert_return(
  () =>
    invoke($0, `v128.store8_lane_6_offset_6`, [
      i8x16([
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x6,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
      ]),
    ]),
  [value("i64", 6n)],
);

// ./test/core/simd/simd_store8_lane.wast:343
assert_return(
  () =>
    invoke($0, `v128.store8_lane_7_offset_7`, [
      i8x16([
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x7,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
      ]),
    ]),
  [value("i64", 7n)],
);

// ./test/core/simd/simd_store8_lane.wast:345
assert_return(
  () =>
    invoke($0, `v128.store8_lane_8_offset_8`, [
      i8x16([
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x8,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
      ]),
    ]),
  [value("i64", 8n)],
);

// ./test/core/simd/simd_store8_lane.wast:347
assert_return(
  () =>
    invoke($0, `v128.store8_lane_9_offset_9`, [
      i8x16([
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x9,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
      ]),
    ]),
  [value("i64", 9n)],
);

// ./test/core/simd/simd_store8_lane.wast:349
assert_return(
  () =>
    invoke($0, `v128.store8_lane_10_offset_10`, [
      i8x16([
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0xa,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
      ]),
    ]),
  [value("i64", 10n)],
);

// ./test/core/simd/simd_store8_lane.wast:351
assert_return(
  () =>
    invoke($0, `v128.store8_lane_11_offset_11`, [
      i8x16([
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0xb,
        0x0,
        0x0,
        0x0,
        0x0,
      ]),
    ]),
  [value("i64", 11n)],
);

// ./test/core/simd/simd_store8_lane.wast:353
assert_return(
  () =>
    invoke($0, `v128.store8_lane_12_offset_12`, [
      i8x16([
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0xc,
        0x0,
        0x0,
        0x0,
      ]),
    ]),
  [value("i64", 12n)],
);

// ./test/core/simd/simd_store8_lane.wast:355
assert_return(
  () =>
    invoke($0, `v128.store8_lane_13_offset_13`, [
      i8x16([
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0xd,
        0x0,
        0x0,
      ]),
    ]),
  [value("i64", 13n)],
);

// ./test/core/simd/simd_store8_lane.wast:357
assert_return(
  () =>
    invoke($0, `v128.store8_lane_14_offset_14`, [
      i8x16([
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0xe,
        0x0,
      ]),
    ]),
  [value("i64", 14n)],
);

// ./test/core/simd/simd_store8_lane.wast:359
assert_return(
  () =>
    invoke($0, `v128.store8_lane_15_offset_15`, [
      i8x16([
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0xf,
      ]),
    ]),
  [value("i64", 15n)],
);

// ./test/core/simd/simd_store8_lane.wast:361
assert_return(
  () =>
    invoke($0, `v128.store8_lane_0_align_1`, [
      0,
      i8x16([
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
      ]),
    ]),
  [value("i64", 0n)],
);

// ./test/core/simd/simd_store8_lane.wast:364
assert_return(
  () =>
    invoke($0, `v128.store8_lane_1_align_1`, [
      1,
      i8x16([
        0x0,
        0x1,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
      ]),
    ]),
  [value("i64", 1n)],
);

// ./test/core/simd/simd_store8_lane.wast:367
assert_return(
  () =>
    invoke($0, `v128.store8_lane_2_align_1`, [
      2,
      i8x16([
        0x0,
        0x0,
        0x2,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
      ]),
    ]),
  [value("i64", 2n)],
);

// ./test/core/simd/simd_store8_lane.wast:370
assert_return(
  () =>
    invoke($0, `v128.store8_lane_3_align_1`, [
      3,
      i8x16([
        0x0,
        0x0,
        0x0,
        0x3,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
      ]),
    ]),
  [value("i64", 3n)],
);

// ./test/core/simd/simd_store8_lane.wast:373
assert_return(
  () =>
    invoke($0, `v128.store8_lane_4_align_1`, [
      4,
      i8x16([
        0x0,
        0x0,
        0x0,
        0x0,
        0x4,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
      ]),
    ]),
  [value("i64", 4n)],
);

// ./test/core/simd/simd_store8_lane.wast:376
assert_return(
  () =>
    invoke($0, `v128.store8_lane_5_align_1`, [
      5,
      i8x16([
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x5,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
      ]),
    ]),
  [value("i64", 5n)],
);

// ./test/core/simd/simd_store8_lane.wast:379
assert_return(
  () =>
    invoke($0, `v128.store8_lane_6_align_1`, [
      6,
      i8x16([
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x6,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
      ]),
    ]),
  [value("i64", 6n)],
);

// ./test/core/simd/simd_store8_lane.wast:382
assert_return(
  () =>
    invoke($0, `v128.store8_lane_7_align_1`, [
      7,
      i8x16([
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x7,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
      ]),
    ]),
  [value("i64", 7n)],
);

// ./test/core/simd/simd_store8_lane.wast:385
assert_return(
  () =>
    invoke($0, `v128.store8_lane_8_align_1`, [
      8,
      i8x16([
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x8,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
      ]),
    ]),
  [value("i64", 8n)],
);

// ./test/core/simd/simd_store8_lane.wast:388
assert_return(
  () =>
    invoke($0, `v128.store8_lane_9_align_1`, [
      9,
      i8x16([
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x9,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
      ]),
    ]),
  [value("i64", 9n)],
);

// ./test/core/simd/simd_store8_lane.wast:391
assert_return(
  () =>
    invoke($0, `v128.store8_lane_10_align_1`, [
      10,
      i8x16([
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0xa,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
      ]),
    ]),
  [value("i64", 10n)],
);

// ./test/core/simd/simd_store8_lane.wast:394
assert_return(
  () =>
    invoke($0, `v128.store8_lane_11_align_1`, [
      11,
      i8x16([
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0xb,
        0x0,
        0x0,
        0x0,
        0x0,
      ]),
    ]),
  [value("i64", 11n)],
);

// ./test/core/simd/simd_store8_lane.wast:397
assert_return(
  () =>
    invoke($0, `v128.store8_lane_12_align_1`, [
      12,
      i8x16([
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0xc,
        0x0,
        0x0,
        0x0,
      ]),
    ]),
  [value("i64", 12n)],
);

// ./test/core/simd/simd_store8_lane.wast:400
assert_return(
  () =>
    invoke($0, `v128.store8_lane_13_align_1`, [
      13,
      i8x16([
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0xd,
        0x0,
        0x0,
      ]),
    ]),
  [value("i64", 13n)],
);

// ./test/core/simd/simd_store8_lane.wast:403
assert_return(
  () =>
    invoke($0, `v128.store8_lane_14_align_1`, [
      14,
      i8x16([
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0xe,
        0x0,
      ]),
    ]),
  [value("i64", 14n)],
);

// ./test/core/simd/simd_store8_lane.wast:406
assert_return(
  () =>
    invoke($0, `v128.store8_lane_15_align_1`, [
      15,
      i8x16([
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0x0,
        0xf,
      ]),
    ]),
  [value("i64", 15n)],
);

// ./test/core/simd/simd_store8_lane.wast:411
assert_invalid(
  () =>
    instantiate(`(module (memory 1)
          (func (param $$x v128) (result v128)
            (v128.store8_lane 0 (local.get $$x) (i32.const 0))))`),
  `type mismatch`,
);

// ./test/core/simd/simd_store8_lane.wast:417
assert_invalid(
  () =>
    instantiate(`(module (memory 1)
          (func (param $$x v128) (result v128)
            (v128.store8_lane 16 (i32.const 0) (local.get $$x))))`),
  `invalid lane index`,
);

// ./test/core/simd/simd_store8_lane.wast:423
assert_invalid(
  () =>
    instantiate(`(module (memory 1)
          (func (param $$x v128) (result v128)
          (v128.store8_lane align=2 0 (i32.const 0) (local.get $$x))))`),
  `alignment must not be larger than natural`,
);
