7258a40dd2930e2cafd53fed60d9c84d32a9de5d
[platform/framework/web/lwnode.git] /
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")