github.com/tetratelabs/wazero@v1.7.3-0.20240513003603-48f702e154b5/internal/integration_test/spectest/v2/testdata/simd_store8_lane.wast (about)

     1  ;; Tests for store lane operations.
     2  
     3  
     4  (module
     5    (memory 1)
     6    (global $zero (mut v128) (v128.const i32x4 0 0 0 0))
     7    (func (export "v128.store8_lane_0")
     8      (param $address i32) (param $x v128) (result i64) (local $ret i64)
     9      (v128.store8_lane 0 (local.get $address) (local.get $x))
    10      (local.set $ret (i64.load (local.get $address)))
    11      (v128.store (local.get $address) (global.get $zero))    (local.get $ret))
    12    (func (export "v128.store8_lane_1")
    13      (param $address i32) (param $x v128) (result i64) (local $ret i64)
    14      (v128.store8_lane 1 (local.get $address) (local.get $x))
    15      (local.set $ret (i64.load (local.get $address)))
    16      (v128.store (local.get $address) (global.get $zero))    (local.get $ret))
    17    (func (export "v128.store8_lane_2")
    18      (param $address i32) (param $x v128) (result i64) (local $ret i64)
    19      (v128.store8_lane 2 (local.get $address) (local.get $x))
    20      (local.set $ret (i64.load (local.get $address)))
    21      (v128.store (local.get $address) (global.get $zero))    (local.get $ret))
    22    (func (export "v128.store8_lane_3")
    23      (param $address i32) (param $x v128) (result i64) (local $ret i64)
    24      (v128.store8_lane 3 (local.get $address) (local.get $x))
    25      (local.set $ret (i64.load (local.get $address)))
    26      (v128.store (local.get $address) (global.get $zero))    (local.get $ret))
    27    (func (export "v128.store8_lane_4")
    28      (param $address i32) (param $x v128) (result i64) (local $ret i64)
    29      (v128.store8_lane 4 (local.get $address) (local.get $x))
    30      (local.set $ret (i64.load (local.get $address)))
    31      (v128.store (local.get $address) (global.get $zero))    (local.get $ret))
    32    (func (export "v128.store8_lane_5")
    33      (param $address i32) (param $x v128) (result i64) (local $ret i64)
    34      (v128.store8_lane 5 (local.get $address) (local.get $x))
    35      (local.set $ret (i64.load (local.get $address)))
    36      (v128.store (local.get $address) (global.get $zero))    (local.get $ret))
    37    (func (export "v128.store8_lane_6")
    38      (param $address i32) (param $x v128) (result i64) (local $ret i64)
    39      (v128.store8_lane 6 (local.get $address) (local.get $x))
    40      (local.set $ret (i64.load (local.get $address)))
    41      (v128.store (local.get $address) (global.get $zero))    (local.get $ret))
    42    (func (export "v128.store8_lane_7")
    43      (param $address i32) (param $x v128) (result i64) (local $ret i64)
    44      (v128.store8_lane 7 (local.get $address) (local.get $x))
    45      (local.set $ret (i64.load (local.get $address)))
    46      (v128.store (local.get $address) (global.get $zero))    (local.get $ret))
    47    (func (export "v128.store8_lane_8")
    48      (param $address i32) (param $x v128) (result i64) (local $ret i64)
    49      (v128.store8_lane 8 (local.get $address) (local.get $x))
    50      (local.set $ret (i64.load (local.get $address)))
    51      (v128.store (local.get $address) (global.get $zero))    (local.get $ret))
    52    (func (export "v128.store8_lane_9")
    53      (param $address i32) (param $x v128) (result i64) (local $ret i64)
    54      (v128.store8_lane 9 (local.get $address) (local.get $x))
    55      (local.set $ret (i64.load (local.get $address)))
    56      (v128.store (local.get $address) (global.get $zero))    (local.get $ret))
    57    (func (export "v128.store8_lane_10")
    58      (param $address i32) (param $x v128) (result i64) (local $ret i64)
    59      (v128.store8_lane 10 (local.get $address) (local.get $x))
    60      (local.set $ret (i64.load (local.get $address)))
    61      (v128.store (local.get $address) (global.get $zero))    (local.get $ret))
    62    (func (export "v128.store8_lane_11")
    63      (param $address i32) (param $x v128) (result i64) (local $ret i64)
    64      (v128.store8_lane 11 (local.get $address) (local.get $x))
    65      (local.set $ret (i64.load (local.get $address)))
    66      (v128.store (local.get $address) (global.get $zero))    (local.get $ret))
    67    (func (export "v128.store8_lane_12")
    68      (param $address i32) (param $x v128) (result i64) (local $ret i64)
    69      (v128.store8_lane 12 (local.get $address) (local.get $x))
    70      (local.set $ret (i64.load (local.get $address)))
    71      (v128.store (local.get $address) (global.get $zero))    (local.get $ret))
    72    (func (export "v128.store8_lane_13")
    73      (param $address i32) (param $x v128) (result i64) (local $ret i64)
    74      (v128.store8_lane 13 (local.get $address) (local.get $x))
    75      (local.set $ret (i64.load (local.get $address)))
    76      (v128.store (local.get $address) (global.get $zero))    (local.get $ret))
    77    (func (export "v128.store8_lane_14")
    78      (param $address i32) (param $x v128) (result i64) (local $ret i64)
    79      (v128.store8_lane 14 (local.get $address) (local.get $x))
    80      (local.set $ret (i64.load (local.get $address)))
    81      (v128.store (local.get $address) (global.get $zero))    (local.get $ret))
    82    (func (export "v128.store8_lane_15")
    83      (param $address i32) (param $x v128) (result i64) (local $ret i64)
    84      (v128.store8_lane 15 (local.get $address) (local.get $x))
    85      (local.set $ret (i64.load (local.get $address)))
    86      (v128.store (local.get $address) (global.get $zero))    (local.get $ret))
    87    (func (export "v128.store8_lane_0_offset_0")
    88      (param $x v128) (result i64) (local $ret i64)
    89      (v128.store8_lane offset=0 0 (i32.const 0) (local.get $x))
    90      (local.set $ret (i64.load offset=0 (i32.const 0)))
    91      (v128.store offset=0 (i32.const 0) (global.get $zero))
    92      (local.get $ret))
    93    (func (export "v128.store8_lane_1_offset_1")
    94      (param $x v128) (result i64) (local $ret i64)
    95      (v128.store8_lane offset=1 1 (i32.const 0) (local.get $x))
    96      (local.set $ret (i64.load offset=1 (i32.const 0)))
    97      (v128.store offset=1 (i32.const 0) (global.get $zero))
    98      (local.get $ret))
    99    (func (export "v128.store8_lane_2_offset_2")
   100      (param $x v128) (result i64) (local $ret i64)
   101      (v128.store8_lane offset=2 2 (i32.const 0) (local.get $x))
   102      (local.set $ret (i64.load offset=2 (i32.const 0)))
   103      (v128.store offset=2 (i32.const 0) (global.get $zero))
   104      (local.get $ret))
   105    (func (export "v128.store8_lane_3_offset_3")
   106      (param $x v128) (result i64) (local $ret i64)
   107      (v128.store8_lane offset=3 3 (i32.const 0) (local.get $x))
   108      (local.set $ret (i64.load offset=3 (i32.const 0)))
   109      (v128.store offset=3 (i32.const 0) (global.get $zero))
   110      (local.get $ret))
   111    (func (export "v128.store8_lane_4_offset_4")
   112      (param $x v128) (result i64) (local $ret i64)
   113      (v128.store8_lane offset=4 4 (i32.const 0) (local.get $x))
   114      (local.set $ret (i64.load offset=4 (i32.const 0)))
   115      (v128.store offset=4 (i32.const 0) (global.get $zero))
   116      (local.get $ret))
   117    (func (export "v128.store8_lane_5_offset_5")
   118      (param $x v128) (result i64) (local $ret i64)
   119      (v128.store8_lane offset=5 5 (i32.const 0) (local.get $x))
   120      (local.set $ret (i64.load offset=5 (i32.const 0)))
   121      (v128.store offset=5 (i32.const 0) (global.get $zero))
   122      (local.get $ret))
   123    (func (export "v128.store8_lane_6_offset_6")
   124      (param $x v128) (result i64) (local $ret i64)
   125      (v128.store8_lane offset=6 6 (i32.const 0) (local.get $x))
   126      (local.set $ret (i64.load offset=6 (i32.const 0)))
   127      (v128.store offset=6 (i32.const 0) (global.get $zero))
   128      (local.get $ret))
   129    (func (export "v128.store8_lane_7_offset_7")
   130      (param $x v128) (result i64) (local $ret i64)
   131      (v128.store8_lane offset=7 7 (i32.const 0) (local.get $x))
   132      (local.set $ret (i64.load offset=7 (i32.const 0)))
   133      (v128.store offset=7 (i32.const 0) (global.get $zero))
   134      (local.get $ret))
   135    (func (export "v128.store8_lane_8_offset_8")
   136      (param $x v128) (result i64) (local $ret i64)
   137      (v128.store8_lane offset=8 8 (i32.const 0) (local.get $x))
   138      (local.set $ret (i64.load offset=8 (i32.const 0)))
   139      (v128.store offset=8 (i32.const 0) (global.get $zero))
   140      (local.get $ret))
   141    (func (export "v128.store8_lane_9_offset_9")
   142      (param $x v128) (result i64) (local $ret i64)
   143      (v128.store8_lane offset=9 9 (i32.const 0) (local.get $x))
   144      (local.set $ret (i64.load offset=9 (i32.const 0)))
   145      (v128.store offset=9 (i32.const 0) (global.get $zero))
   146      (local.get $ret))
   147    (func (export "v128.store8_lane_10_offset_10")
   148      (param $x v128) (result i64) (local $ret i64)
   149      (v128.store8_lane offset=10 10 (i32.const 0) (local.get $x))
   150      (local.set $ret (i64.load offset=10 (i32.const 0)))
   151      (v128.store offset=10 (i32.const 0) (global.get $zero))
   152      (local.get $ret))
   153    (func (export "v128.store8_lane_11_offset_11")
   154      (param $x v128) (result i64) (local $ret i64)
   155      (v128.store8_lane offset=11 11 (i32.const 0) (local.get $x))
   156      (local.set $ret (i64.load offset=11 (i32.const 0)))
   157      (v128.store offset=11 (i32.const 0) (global.get $zero))
   158      (local.get $ret))
   159    (func (export "v128.store8_lane_12_offset_12")
   160      (param $x v128) (result i64) (local $ret i64)
   161      (v128.store8_lane offset=12 12 (i32.const 0) (local.get $x))
   162      (local.set $ret (i64.load offset=12 (i32.const 0)))
   163      (v128.store offset=12 (i32.const 0) (global.get $zero))
   164      (local.get $ret))
   165    (func (export "v128.store8_lane_13_offset_13")
   166      (param $x v128) (result i64) (local $ret i64)
   167      (v128.store8_lane offset=13 13 (i32.const 0) (local.get $x))
   168      (local.set $ret (i64.load offset=13 (i32.const 0)))
   169      (v128.store offset=13 (i32.const 0) (global.get $zero))
   170      (local.get $ret))
   171    (func (export "v128.store8_lane_14_offset_14")
   172      (param $x v128) (result i64) (local $ret i64)
   173      (v128.store8_lane offset=14 14 (i32.const 0) (local.get $x))
   174      (local.set $ret (i64.load offset=14 (i32.const 0)))
   175      (v128.store offset=14 (i32.const 0) (global.get $zero))
   176      (local.get $ret))
   177    (func (export "v128.store8_lane_15_offset_15")
   178      (param $x v128) (result i64) (local $ret i64)
   179      (v128.store8_lane offset=15 15 (i32.const 0) (local.get $x))
   180      (local.set $ret (i64.load offset=15 (i32.const 0)))
   181      (v128.store offset=15 (i32.const 0) (global.get $zero))
   182      (local.get $ret))
   183    (func (export "v128.store8_lane_0_align_1")
   184      (param $address i32) (param $x v128) (result i64) (local $ret i64)
   185      (v128.store8_lane align=1 0 (local.get $address) (local.get $x))
   186      (local.set $ret (i64.load (local.get $address)))
   187      (v128.store offset=0 (i32.const 0) (global.get $zero))
   188      (local.get $ret))
   189    (func (export "v128.store8_lane_1_align_1")
   190      (param $address i32) (param $x v128) (result i64) (local $ret i64)
   191      (v128.store8_lane align=1 1 (local.get $address) (local.get $x))
   192      (local.set $ret (i64.load (local.get $address)))
   193      (v128.store offset=1 (i32.const 0) (global.get $zero))
   194      (local.get $ret))
   195    (func (export "v128.store8_lane_2_align_1")
   196      (param $address i32) (param $x v128) (result i64) (local $ret i64)
   197      (v128.store8_lane align=1 2 (local.get $address) (local.get $x))
   198      (local.set $ret (i64.load (local.get $address)))
   199      (v128.store offset=2 (i32.const 0) (global.get $zero))
   200      (local.get $ret))
   201    (func (export "v128.store8_lane_3_align_1")
   202      (param $address i32) (param $x v128) (result i64) (local $ret i64)
   203      (v128.store8_lane align=1 3 (local.get $address) (local.get $x))
   204      (local.set $ret (i64.load (local.get $address)))
   205      (v128.store offset=3 (i32.const 0) (global.get $zero))
   206      (local.get $ret))
   207    (func (export "v128.store8_lane_4_align_1")
   208      (param $address i32) (param $x v128) (result i64) (local $ret i64)
   209      (v128.store8_lane align=1 4 (local.get $address) (local.get $x))
   210      (local.set $ret (i64.load (local.get $address)))
   211      (v128.store offset=4 (i32.const 0) (global.get $zero))
   212      (local.get $ret))
   213    (func (export "v128.store8_lane_5_align_1")
   214      (param $address i32) (param $x v128) (result i64) (local $ret i64)
   215      (v128.store8_lane align=1 5 (local.get $address) (local.get $x))
   216      (local.set $ret (i64.load (local.get $address)))
   217      (v128.store offset=5 (i32.const 0) (global.get $zero))
   218      (local.get $ret))
   219    (func (export "v128.store8_lane_6_align_1")
   220      (param $address i32) (param $x v128) (result i64) (local $ret i64)
   221      (v128.store8_lane align=1 6 (local.get $address) (local.get $x))
   222      (local.set $ret (i64.load (local.get $address)))
   223      (v128.store offset=6 (i32.const 0) (global.get $zero))
   224      (local.get $ret))
   225    (func (export "v128.store8_lane_7_align_1")
   226      (param $address i32) (param $x v128) (result i64) (local $ret i64)
   227      (v128.store8_lane align=1 7 (local.get $address) (local.get $x))
   228      (local.set $ret (i64.load (local.get $address)))
   229      (v128.store offset=7 (i32.const 0) (global.get $zero))
   230      (local.get $ret))
   231    (func (export "v128.store8_lane_8_align_1")
   232      (param $address i32) (param $x v128) (result i64) (local $ret i64)
   233      (v128.store8_lane align=1 8 (local.get $address) (local.get $x))
   234      (local.set $ret (i64.load (local.get $address)))
   235      (v128.store offset=8 (i32.const 0) (global.get $zero))
   236      (local.get $ret))
   237    (func (export "v128.store8_lane_9_align_1")
   238      (param $address i32) (param $x v128) (result i64) (local $ret i64)
   239      (v128.store8_lane align=1 9 (local.get $address) (local.get $x))
   240      (local.set $ret (i64.load (local.get $address)))
   241      (v128.store offset=9 (i32.const 0) (global.get $zero))
   242      (local.get $ret))
   243    (func (export "v128.store8_lane_10_align_1")
   244      (param $address i32) (param $x v128) (result i64) (local $ret i64)
   245      (v128.store8_lane align=1 10 (local.get $address) (local.get $x))
   246      (local.set $ret (i64.load (local.get $address)))
   247      (v128.store offset=10 (i32.const 0) (global.get $zero))
   248      (local.get $ret))
   249    (func (export "v128.store8_lane_11_align_1")
   250      (param $address i32) (param $x v128) (result i64) (local $ret i64)
   251      (v128.store8_lane align=1 11 (local.get $address) (local.get $x))
   252      (local.set $ret (i64.load (local.get $address)))
   253      (v128.store offset=11 (i32.const 0) (global.get $zero))
   254      (local.get $ret))
   255    (func (export "v128.store8_lane_12_align_1")
   256      (param $address i32) (param $x v128) (result i64) (local $ret i64)
   257      (v128.store8_lane align=1 12 (local.get $address) (local.get $x))
   258      (local.set $ret (i64.load (local.get $address)))
   259      (v128.store offset=12 (i32.const 0) (global.get $zero))
   260      (local.get $ret))
   261    (func (export "v128.store8_lane_13_align_1")
   262      (param $address i32) (param $x v128) (result i64) (local $ret i64)
   263      (v128.store8_lane align=1 13 (local.get $address) (local.get $x))
   264      (local.set $ret (i64.load (local.get $address)))
   265      (v128.store offset=13 (i32.const 0) (global.get $zero))
   266      (local.get $ret))
   267    (func (export "v128.store8_lane_14_align_1")
   268      (param $address i32) (param $x v128) (result i64) (local $ret i64)
   269      (v128.store8_lane align=1 14 (local.get $address) (local.get $x))
   270      (local.set $ret (i64.load (local.get $address)))
   271      (v128.store offset=14 (i32.const 0) (global.get $zero))
   272      (local.get $ret))
   273    (func (export "v128.store8_lane_15_align_1")
   274      (param $address i32) (param $x v128) (result i64) (local $ret i64)
   275      (v128.store8_lane align=1 15 (local.get $address) (local.get $x))
   276      (local.set $ret (i64.load (local.get $address)))
   277      (v128.store offset=15 (i32.const 0) (global.get $zero))
   278      (local.get $ret))
   279  )
   280  
   281  (assert_return (invoke "v128.store8_lane_0" (i32.const 0)
   282                                              (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0))
   283                                              (i64.const 0))
   284  (assert_return (invoke "v128.store8_lane_1" (i32.const 1)
   285                                              (v128.const i8x16 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0))
   286                                              (i64.const 1))
   287  (assert_return (invoke "v128.store8_lane_2" (i32.const 2)
   288                                              (v128.const i8x16 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0))
   289                                              (i64.const 2))
   290  (assert_return (invoke "v128.store8_lane_3" (i32.const 3)
   291                                              (v128.const i8x16 0 0 0 3 0 0 0 0 0 0 0 0 0 0 0 0))
   292                                              (i64.const 3))
   293  (assert_return (invoke "v128.store8_lane_4" (i32.const 4)
   294                                              (v128.const i8x16 0 0 0 0 4 0 0 0 0 0 0 0 0 0 0 0))
   295                                              (i64.const 4))
   296  (assert_return (invoke "v128.store8_lane_5" (i32.const 5)
   297                                              (v128.const i8x16 0 0 0 0 0 5 0 0 0 0 0 0 0 0 0 0))
   298                                              (i64.const 5))
   299  (assert_return (invoke "v128.store8_lane_6" (i32.const 6)
   300                                              (v128.const i8x16 0 0 0 0 0 0 6 0 0 0 0 0 0 0 0 0))
   301                                              (i64.const 6))
   302  (assert_return (invoke "v128.store8_lane_7" (i32.const 7)
   303                                              (v128.const i8x16 0 0 0 0 0 0 0 7 0 0 0 0 0 0 0 0))
   304                                              (i64.const 7))
   305  (assert_return (invoke "v128.store8_lane_8" (i32.const 8)
   306                                              (v128.const i8x16 0 0 0 0 0 0 0 0 8 0 0 0 0 0 0 0))
   307                                              (i64.const 8))
   308  (assert_return (invoke "v128.store8_lane_9" (i32.const 9)
   309                                              (v128.const i8x16 0 0 0 0 0 0 0 0 0 9 0 0 0 0 0 0))
   310                                              (i64.const 9))
   311  (assert_return (invoke "v128.store8_lane_10" (i32.const 10)
   312                                               (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 10 0 0 0 0 0))
   313                                               (i64.const 10))
   314  (assert_return (invoke "v128.store8_lane_11" (i32.const 11)
   315                                               (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 11 0 0 0 0))
   316                                               (i64.const 11))
   317  (assert_return (invoke "v128.store8_lane_12" (i32.const 12)
   318                                               (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 12 0 0 0))
   319                                               (i64.const 12))
   320  (assert_return (invoke "v128.store8_lane_13" (i32.const 13)
   321                                               (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 13 0 0))
   322                                               (i64.const 13))
   323  (assert_return (invoke "v128.store8_lane_14" (i32.const 14)
   324                                               (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 14 0))
   325                                               (i64.const 14))
   326  (assert_return (invoke "v128.store8_lane_15" (i32.const 15)
   327                                               (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15))
   328                                               (i64.const 15))
   329  (assert_return (invoke "v128.store8_lane_0_offset_0" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0))
   330                                                       (i64.const 0))
   331  (assert_return (invoke "v128.store8_lane_1_offset_1" (v128.const i8x16 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0))
   332                                                       (i64.const 1))
   333  (assert_return (invoke "v128.store8_lane_2_offset_2" (v128.const i8x16 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0))
   334                                                       (i64.const 2))
   335  (assert_return (invoke "v128.store8_lane_3_offset_3" (v128.const i8x16 0 0 0 3 0 0 0 0 0 0 0 0 0 0 0 0))
   336                                                       (i64.const 3))
   337  (assert_return (invoke "v128.store8_lane_4_offset_4" (v128.const i8x16 0 0 0 0 4 0 0 0 0 0 0 0 0 0 0 0))
   338                                                       (i64.const 4))
   339  (assert_return (invoke "v128.store8_lane_5_offset_5" (v128.const i8x16 0 0 0 0 0 5 0 0 0 0 0 0 0 0 0 0))
   340                                                       (i64.const 5))
   341  (assert_return (invoke "v128.store8_lane_6_offset_6" (v128.const i8x16 0 0 0 0 0 0 6 0 0 0 0 0 0 0 0 0))
   342                                                       (i64.const 6))
   343  (assert_return (invoke "v128.store8_lane_7_offset_7" (v128.const i8x16 0 0 0 0 0 0 0 7 0 0 0 0 0 0 0 0))
   344                                                       (i64.const 7))
   345  (assert_return (invoke "v128.store8_lane_8_offset_8" (v128.const i8x16 0 0 0 0 0 0 0 0 8 0 0 0 0 0 0 0))
   346                                                       (i64.const 8))
   347  (assert_return (invoke "v128.store8_lane_9_offset_9" (v128.const i8x16 0 0 0 0 0 0 0 0 0 9 0 0 0 0 0 0))
   348                                                       (i64.const 9))
   349  (assert_return (invoke "v128.store8_lane_10_offset_10" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 10 0 0 0 0 0))
   350                                                         (i64.const 10))
   351  (assert_return (invoke "v128.store8_lane_11_offset_11" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 11 0 0 0 0))
   352                                                         (i64.const 11))
   353  (assert_return (invoke "v128.store8_lane_12_offset_12" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 12 0 0 0))
   354                                                         (i64.const 12))
   355  (assert_return (invoke "v128.store8_lane_13_offset_13" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 13 0 0))
   356                                                         (i64.const 13))
   357  (assert_return (invoke "v128.store8_lane_14_offset_14" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 14 0))
   358                                                         (i64.const 14))
   359  (assert_return (invoke "v128.store8_lane_15_offset_15" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15))
   360                                                         (i64.const 15))
   361  (assert_return (invoke "v128.store8_lane_0_align_1" (i32.const 0)
   362                                                      (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0))
   363                                                      (i64.const 0))
   364  (assert_return (invoke "v128.store8_lane_1_align_1" (i32.const 1)
   365                                                      (v128.const i8x16 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0))
   366                                                      (i64.const 1))
   367  (assert_return (invoke "v128.store8_lane_2_align_1" (i32.const 2)
   368                                                      (v128.const i8x16 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0))
   369                                                      (i64.const 2))
   370  (assert_return (invoke "v128.store8_lane_3_align_1" (i32.const 3)
   371                                                      (v128.const i8x16 0 0 0 3 0 0 0 0 0 0 0 0 0 0 0 0))
   372                                                      (i64.const 3))
   373  (assert_return (invoke "v128.store8_lane_4_align_1" (i32.const 4)
   374                                                      (v128.const i8x16 0 0 0 0 4 0 0 0 0 0 0 0 0 0 0 0))
   375                                                      (i64.const 4))
   376  (assert_return (invoke "v128.store8_lane_5_align_1" (i32.const 5)
   377                                                      (v128.const i8x16 0 0 0 0 0 5 0 0 0 0 0 0 0 0 0 0))
   378                                                      (i64.const 5))
   379  (assert_return (invoke "v128.store8_lane_6_align_1" (i32.const 6)
   380                                                      (v128.const i8x16 0 0 0 0 0 0 6 0 0 0 0 0 0 0 0 0))
   381                                                      (i64.const 6))
   382  (assert_return (invoke "v128.store8_lane_7_align_1" (i32.const 7)
   383                                                      (v128.const i8x16 0 0 0 0 0 0 0 7 0 0 0 0 0 0 0 0))
   384                                                      (i64.const 7))
   385  (assert_return (invoke "v128.store8_lane_8_align_1" (i32.const 8)
   386                                                      (v128.const i8x16 0 0 0 0 0 0 0 0 8 0 0 0 0 0 0 0))
   387                                                      (i64.const 8))
   388  (assert_return (invoke "v128.store8_lane_9_align_1" (i32.const 9)
   389                                                      (v128.const i8x16 0 0 0 0 0 0 0 0 0 9 0 0 0 0 0 0))
   390                                                      (i64.const 9))
   391  (assert_return (invoke "v128.store8_lane_10_align_1" (i32.const 10)
   392                                                       (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 10 0 0 0 0 0))
   393                                                       (i64.const 10))
   394  (assert_return (invoke "v128.store8_lane_11_align_1" (i32.const 11)
   395                                                       (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 11 0 0 0 0))
   396                                                       (i64.const 11))
   397  (assert_return (invoke "v128.store8_lane_12_align_1" (i32.const 12)
   398                                                       (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 12 0 0 0))
   399                                                       (i64.const 12))
   400  (assert_return (invoke "v128.store8_lane_13_align_1" (i32.const 13)
   401                                                       (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 13 0 0))
   402                                                       (i64.const 13))
   403  (assert_return (invoke "v128.store8_lane_14_align_1" (i32.const 14)
   404                                                       (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 14 0))
   405                                                       (i64.const 14))
   406  (assert_return (invoke "v128.store8_lane_15_align_1" (i32.const 15)
   407                                                       (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15))
   408                                                       (i64.const 15))
   409  
   410  ;; type check
   411  (assert_invalid  (module (memory 1)
   412            (func (param $x v128) (result v128)
   413              (v128.store8_lane 0 (local.get $x) (i32.const 0))))
   414    "type mismatch")
   415  
   416  ;; invalid lane index
   417  (assert_invalid  (module (memory 1)
   418            (func (param $x v128) (result v128)
   419              (v128.store8_lane 16 (i32.const 0) (local.get $x))))
   420    "invalid lane index")
   421  
   422  ;; invalid memarg alignment
   423  (assert_invalid
   424    (module (memory 1)
   425            (func (param $x v128) (result v128)
   426            (v128.store8_lane align=2 0 (i32.const 0) (local.get $x))))
   427    "alignment must not be larger than natural")