...
1;; Load and Extend test cases
2
3(module
4 (memory 1)
5 (data (i32.const 0) "\00\01\02\03\04\05\06\07\08\09\0A\0B\0C\0D\0E\0F\80\81\82\83\84\85\86\87\88\89")
6 (data (i32.const 65520) "\0A\0B\0C\0D\0E\0F\80\81\82\83\84\85\86\87\88\89")
7
8 (func (export "v128.load8x8_s") (param $0 i32) (result v128)
9 (v128.load8x8_s (local.get $0))
10 )
11 (func (export "v128.load8x8_u") (param $0 i32) (result v128)
12 (v128.load8x8_u (local.get $0))
13 )
14 (func (export "v128.load16x4_s") (param $0 i32) (result v128)
15 (v128.load16x4_s (local.get $0))
16 )
17 (func (export "v128.load16x4_u") (param $0 i32) (result v128)
18 (v128.load16x4_u (local.get $0))
19 )
20 (func (export "v128.load32x2_s") (param $0 i32) (result v128)
21 (v128.load32x2_s (local.get $0))
22 )
23 (func (export "v128.load32x2_u") (param $0 i32) (result v128)
24 (v128.load32x2_u (local.get $0))
25 )
26
27 ;; load by a constant amount
28 (func (export "v128.load8x8_s_const0") (result v128)
29 (v128.load8x8_s (i32.const 0))
30 )
31 (func (export "v128.load8x8_u_const8") (result v128)
32 (v128.load8x8_u (i32.const 8))
33 )
34 (func (export "v128.load16x4_s_const10") (result v128)
35 (v128.load16x4_s (i32.const 10))
36 )
37 (func (export "v128.load16x4_u_const20") (result v128)
38 (v128.load16x4_u (i32.const 20))
39 )
40 (func (export "v128.load32x2_s_const65520") (result v128)
41 (v128.load32x2_s (i32.const 65520))
42 )
43 (func (export "v128.load32x2_u_const65526") (result v128)
44 (v128.load32x2_u (i32.const 65526))
45 )
46
47 ;; load data with different offset/align arguments
48 ;; i16x8
49 (func (export "v128.load8x8_s_offset0") (param $0 i32) (result v128)
50 (v128.load8x8_s offset=0 (local.get $0))
51 )
52 (func (export "v128.load8x8_s_align1") (param $0 i32) (result v128)
53 (v128.load8x8_s align=1 (local.get $0))
54 )
55 (func (export "v128.load8x8_s_offset0_align1") (param $0 i32) (result v128)
56 (v128.load8x8_s offset=0 align=1 (local.get $0))
57 )
58 (func (export "v128.load8x8_s_offset1_align1") (param $0 i32) (result v128)
59 (v128.load8x8_s offset=1 align=1 (local.get $0))
60 )
61 (func (export "v128.load8x8_s_offset10_align4") (param $0 i32) (result v128)
62 (v128.load8x8_s offset=10 align=4 (local.get $0))
63 )
64 (func (export "v128.load8x8_s_offset20_align8") (param $0 i32) (result v128)
65 (v128.load8x8_s offset=20 align=8 (local.get $0))
66 )
67 (func (export "v128.load8x8_u_offset0") (param $0 i32) (result v128)
68 (v128.load8x8_u offset=0 (local.get $0))
69 )
70 (func (export "v128.load8x8_u_align1") (param $0 i32) (result v128)
71 (v128.load8x8_u align=1 (local.get $0))
72 )
73 (func (export "v128.load8x8_u_offset0_align1") (param $0 i32) (result v128)
74 (v128.load8x8_u offset=0 align=1 (local.get $0))
75 )
76 (func (export "v128.load8x8_u_offset1_align1") (param $0 i32) (result v128)
77 (v128.load8x8_u offset=1 align=1 (local.get $0))
78 )
79 (func (export "v128.load8x8_u_offset10_align4") (param $0 i32) (result v128)
80 (v128.load8x8_u offset=10 align=4 (local.get $0))
81 )
82 (func (export "v128.load8x8_u_offset20_align8") (param $0 i32) (result v128)
83 (v128.load8x8_u offset=20 align=8 (local.get $0))
84 )
85 ;; i32x4
86 (func (export "v128.load16x4_s_offset0") (param $0 i32) (result v128)
87 (v128.load16x4_s offset=0 (local.get $0))
88 )
89 (func (export "v128.load16x4_s_align1") (param $0 i32) (result v128)
90 (v128.load16x4_s align=1 (local.get $0))
91 )
92 (func (export "v128.load16x4_s_offset0_align1") (param $0 i32) (result v128)
93 (v128.load16x4_s offset=0 align=1 (local.get $0))
94 )
95 (func (export "v128.load16x4_s_offset1_align1") (param $0 i32) (result v128)
96 (v128.load16x4_s offset=1 align=1 (local.get $0))
97 )
98 (func (export "v128.load16x4_s_offset10_align4") (param $0 i32) (result v128)
99 (v128.load16x4_s offset=10 align=4 (local.get $0))
100 )
101 (func (export "v128.load16x4_s_offset20_align8") (param $0 i32) (result v128)
102 (v128.load16x4_s offset=20 align=8 (local.get $0))
103 )
104 (func (export "v128.load16x4_u_offset0") (param $0 i32) (result v128)
105 (v128.load16x4_u offset=0 (local.get $0))
106 )
107 (func (export "v128.load16x4_u_align1") (param $0 i32) (result v128)
108 (v128.load16x4_u align=1 (local.get $0))
109 )
110 (func (export "v128.load16x4_u_offset0_align1") (param $0 i32) (result v128)
111 (v128.load16x4_u offset=0 align=1 (local.get $0))
112 )
113 (func (export "v128.load16x4_u_offset1_align1") (param $0 i32) (result v128)
114 (v128.load16x4_u offset=1 align=1 (local.get $0))
115 )
116 (func (export "v128.load16x4_u_offset10_align4") (param $0 i32) (result v128)
117 (v128.load16x4_u offset=10 align=4 (local.get $0))
118 )
119 (func (export "v128.load16x4_u_offset20_align8") (param $0 i32) (result v128)
120 (v128.load16x4_u offset=20 align=8 (local.get $0))
121 )
122 ;; i64x2
123 (func (export "v128.load32x2_s_offset0") (param $0 i32) (result v128)
124 (v128.load32x2_s offset=0 (local.get $0))
125 )
126 (func (export "v128.load32x2_s_align1") (param $0 i32) (result v128)
127 (v128.load32x2_s align=1 (local.get $0))
128 )
129 (func (export "v128.load32x2_s_offset0_align1") (param $0 i32) (result v128)
130 (v128.load32x2_s offset=0 align=1 (local.get $0))
131 )
132 (func (export "v128.load32x2_s_offset1_align1") (param $0 i32) (result v128)
133 (v128.load32x2_s offset=1 align=1 (local.get $0))
134 )
135 (func (export "v128.load32x2_s_offset10_align4") (param $0 i32) (result v128)
136 (v128.load32x2_s offset=10 align=4 (local.get $0))
137 )
138 (func (export "v128.load32x2_s_offset20_align8") (param $0 i32) (result v128)
139 (v128.load32x2_s offset=20 align=8 (local.get $0))
140 )
141 (func (export "v128.load32x2_u_offset0") (param $0 i32) (result v128)
142 (v128.load32x2_u offset=0 (local.get $0))
143 )
144 (func (export "v128.load32x2_u_align1") (param $0 i32) (result v128)
145 (v128.load32x2_u align=1 (local.get $0))
146 )
147 (func (export "v128.load32x2_u_offset0_align1") (param $0 i32) (result v128)
148 (v128.load32x2_u offset=0 align=1 (local.get $0))
149 )
150 (func (export "v128.load32x2_u_offset1_align1") (param $0 i32) (result v128)
151 (v128.load32x2_u offset=1 align=1 (local.get $0))
152 )
153 (func (export "v128.load32x2_u_offset10_align4") (param $0 i32) (result v128)
154 (v128.load32x2_u offset=10 align=4 (local.get $0))
155 )
156 (func (export "v128.load32x2_u_offset20_align8") (param $0 i32) (result v128)
157 (v128.load32x2_u offset=20 align=8 (local.get $0))
158 )
159)
160
161
162;; normal
163(assert_return (invoke "v128.load8x8_s" (i32.const 0)) (v128.const i16x8 0x0000 0x0001 0x0002 0x0003 0x0004 0x0005 0x0006 0x0007))
164(assert_return (invoke "v128.load8x8_u" (i32.const 0)) (v128.const i16x8 0x0000 0x0001 0x0002 0x0003 0x0004 0x0005 0x0006 0x0007))
165(assert_return (invoke "v128.load16x4_s" (i32.const 0)) (v128.const i32x4 0x00000100 0x00000302 0x00000504 0x00000706))
166(assert_return (invoke "v128.load16x4_u" (i32.const 0)) (v128.const i32x4 0x00000100 0x00000302 0x00000504 0x00000706))
167(assert_return (invoke "v128.load32x2_s" (i32.const 0)) (v128.const i64x2 0x0000000003020100 0x0000000007060504))
168(assert_return (invoke "v128.load32x2_u" (i32.const 0)) (v128.const i64x2 0x0000000003020100 0x0000000007060504))
169(assert_return (invoke "v128.load8x8_s" (i32.const 10)) (v128.const i16x8 0x000A 0x000B 0x000C 0x000D 0x000E 0x000F 0xFF80 0xFF81))
170(assert_return (invoke "v128.load8x8_u" (i32.const 10)) (v128.const i16x8 0x000A 0x000B 0x000C 0x000D 0x000E 0x000F 0x0080 0x0081))
171(assert_return (invoke "v128.load16x4_s" (i32.const 10)) (v128.const i32x4 0x00000B0A 0x00000D0C 0x00000F0E 0xFFFF8180))
172(assert_return (invoke "v128.load16x4_u" (i32.const 10)) (v128.const i32x4 0x00000B0A 0x00000D0C 0x00000F0E 0x00008180))
173(assert_return (invoke "v128.load32x2_s" (i32.const 10)) (v128.const i64x2 0x000000000D0C0B0A 0xFFFFFFFF81800F0E))
174(assert_return (invoke "v128.load32x2_u" (i32.const 10)) (v128.const i64x2 0x000000000D0C0B0A 0x0000000081800F0E))
175(assert_return (invoke "v128.load8x8_s" (i32.const 20)) (v128.const i16x8 0xff84 0xff85 0xff86 0xff87 0xff88 0xff89 0x0000 0x0000))
176(assert_return (invoke "v128.load8x8_u" (i32.const 20)) (v128.const i16x8 0x0084 0x0085 0x0086 0x0087 0x0088 0x0089 0x0000 0x0000))
177(assert_return (invoke "v128.load16x4_s" (i32.const 20)) (v128.const i32x4 0xffff8584 0xffff8786 0xffff8988 0x00000000))
178(assert_return (invoke "v128.load16x4_u" (i32.const 20)) (v128.const i32x4 0x00008584 0x00008786 0x00008988 0x00000000))
179(assert_return (invoke "v128.load32x2_s" (i32.const 20)) (v128.const i64x2 0xFFFFFFFF87868584 0x0000000000008988))
180(assert_return (invoke "v128.load32x2_u" (i32.const 20)) (v128.const i64x2 0x0000000087868584 0x0000000000008988))
181
182;; load by a constant amount
183(assert_return (invoke "v128.load8x8_s_const0") (v128.const i16x8 0x0000 0x0001 0x0002 0x0003 0x0004 0x0005 0x0006 0x0007))
184(assert_return (invoke "v128.load8x8_u_const8") (v128.const i16x8 0x0008 0x0009 0x000A 0x000B 0x000C 0x000D 0x000E 0x000F))
185(assert_return (invoke "v128.load16x4_s_const10") (v128.const i32x4 0x00000B0A 0x00000D0C 0x00000F0E 0xFFFF8180))
186(assert_return (invoke "v128.load16x4_u_const20") (v128.const i32x4 0x00008584 0x00008786 0x00008988 0x00000000))
187(assert_return (invoke "v128.load32x2_s_const65520") (v128.const i64x2 0x000000000D0C0B0A 0xFFFFFFFF81800F0E))
188(assert_return (invoke "v128.load32x2_u_const65526") (v128.const i64x2 0x0000000083828180 0x0000000087868584))
189
190;; load data with different offset/align arguments
191;; i16x8
192(assert_return (invoke "v128.load8x8_s_offset0" (i32.const 0)) (v128.const i16x8 0x0000 0x0001 0x0002 0x0003 0x0004 0x0005 0x0006 0x0007))
193(assert_return (invoke "v128.load8x8_s_align1" (i32.const 1)) (v128.const i16x8 0x0001 0x0002 0x0003 0x0004 0x0005 0x0006 0x0007 0x0008))
194(assert_return (invoke "v128.load8x8_s_offset0_align1" (i32.const 2)) (v128.const i16x8 0x0002 0x0003 0x0004 0x0005 0x0006 0x0007 0x0008 0x0009))
195(assert_return (invoke "v128.load8x8_s_offset10_align4" (i32.const 3)) (v128.const i16x8 0x000D 0x000E 0x000F 0xFF80 0xFF81 0xFF82 0xFF83 0xFF84))
196(assert_return (invoke "v128.load8x8_s_offset20_align8" (i32.const 4)) (v128.const i16x8 0xFF88 0xFF89 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000))
197(assert_return (invoke "v128.load8x8_u_offset0" (i32.const 0)) (v128.const i16x8 0x0000 0x0001 0x0002 0x0003 0x0004 0x0005 0x0006 0x0007))
198(assert_return (invoke "v128.load8x8_u_align1" (i32.const 1)) (v128.const i16x8 0x0001 0x0002 0x0003 0x0004 0x0005 0x0006 0x0007 0x0008))
199(assert_return (invoke "v128.load8x8_u_offset0_align1" (i32.const 2)) (v128.const i16x8 0x0002 0x0003 0x0004 0x0005 0x0006 0x0007 0x0008 0x0009))
200(assert_return (invoke "v128.load8x8_u_offset10_align4" (i32.const 3)) (v128.const i16x8 0x000D 0x000E 0x000F 0x0080 0x0081 0x0082 0x0083 0x0084))
201(assert_return (invoke "v128.load8x8_u_offset20_align8" (i32.const 4)) (v128.const i16x8 0x0088 0x0089 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000))
202;; i32x4
203(assert_return (invoke "v128.load16x4_s_offset0" (i32.const 0)) (v128.const i32x4 0x00000100 0x00000302 0x00000504 0x00000706))
204(assert_return (invoke "v128.load16x4_s_align1" (i32.const 1)) (v128.const i32x4 0x00000201 0x00000403 0x00000605 0x00000807))
205(assert_return (invoke "v128.load16x4_s_offset0_align1" (i32.const 2)) (v128.const i32x4 0x00000302 0x00000504 0x00000706 0x00000908))
206(assert_return (invoke "v128.load16x4_s_offset10_align4" (i32.const 3)) (v128.const i32x4 0x00000E0D 0xFFFF800F 0xFFFF8281 0xFFFF8483))
207(assert_return (invoke "v128.load16x4_s_offset20_align8" (i32.const 4)) (v128.const i32x4 0xFFFF8988 0x00000000 0x00000000 0x00000000))
208(assert_return (invoke "v128.load16x4_u_offset0" (i32.const 0)) (v128.const i32x4 0x00000100 0x00000302 0x00000504 0x00000706))
209(assert_return (invoke "v128.load16x4_u_align1" (i32.const 1)) (v128.const i32x4 0x00000201 0x00000403 0x00000605 0x00000807))
210(assert_return (invoke "v128.load16x4_u_offset0_align1" (i32.const 2)) (v128.const i32x4 0x00000302 0x00000504 0x00000706 0x00000908))
211(assert_return (invoke "v128.load16x4_u_offset10_align4" (i32.const 3)) (v128.const i32x4 0x00000E0D 0x0000800F 0x00008281 0x00008483))
212(assert_return (invoke "v128.load16x4_u_offset20_align8" (i32.const 4)) (v128.const i32x4 0x00008988 0x00000000 0x00000000 0x00000000))
213;; i64x2
214(assert_return (invoke "v128.load32x2_s_offset0" (i32.const 0)) (v128.const i64x2 0x0000000003020100 0x0000000007060504))
215(assert_return (invoke "v128.load32x2_s_align1" (i32.const 1)) (v128.const i64x2 0x0000000004030201 0x0000000008070605))
216(assert_return (invoke "v128.load32x2_s_offset0_align1" (i32.const 2)) (v128.const i64x2 0x0000000005040302 0x0000000009080706))
217(assert_return (invoke "v128.load32x2_s_offset10_align4" (i32.const 3)) (v128.const i64x2 0xFFFFFFFF800F0E0D 0xFFFFFFFF84838281))
218(assert_return (invoke "v128.load32x2_s_offset20_align8" (i32.const 4)) (v128.const i64x2 0x0000000000008988 0x0000000000000000))
219(assert_return (invoke "v128.load32x2_u_offset0" (i32.const 0)) (v128.const i64x2 0x0000000003020100 0x0000000007060504))
220(assert_return (invoke "v128.load32x2_u_align1" (i32.const 1)) (v128.const i64x2 0x0000000004030201 0x0000000008070605))
221(assert_return (invoke "v128.load32x2_u_offset0_align1" (i32.const 2)) (v128.const i64x2 0x0000000005040302 0x0000000009080706))
222(assert_return (invoke "v128.load32x2_u_offset10_align4" (i32.const 3)) (v128.const i64x2 0x00000000800F0E0D 0x0000000084838281))
223(assert_return (invoke "v128.load32x2_u_offset20_align8" (i32.const 4)) (v128.const i64x2 0x0000000000008988 0x0000000000000000))
224
225;; out of bounds memory access
226(assert_trap (invoke "v128.load8x8_s" (i32.const -1)) "out of bounds memory access")
227(assert_trap (invoke "v128.load8x8_u" (i32.const -1)) "out of bounds memory access")
228(assert_trap (invoke "v128.load16x4_s" (i32.const 65536)) "out of bounds memory access")
229(assert_trap (invoke "v128.load16x4_u" (i32.const 65536)) "out of bounds memory access")
230(assert_trap (invoke "v128.load32x2_s" (i32.const 65529)) "out of bounds memory access")
231(assert_trap (invoke "v128.load32x2_u" (i32.const 65529)) "out of bounds memory access")
232
233(assert_trap (invoke "v128.load8x8_s_offset1_align1" (i32.const -1)) "out of bounds memory access")
234(assert_trap (invoke "v128.load8x8_u_offset1_align1" (i32.const -1)) "out of bounds memory access")
235(assert_trap (invoke "v128.load16x4_s_offset1_align1" (i32.const -1)) "out of bounds memory access")
236(assert_trap (invoke "v128.load16x4_u_offset1_align1" (i32.const -1)) "out of bounds memory access")
237(assert_trap (invoke "v128.load32x2_s_offset1_align1" (i32.const -1)) "out of bounds memory access")
238(assert_trap (invoke "v128.load32x2_u_offset1_align1" (i32.const -1)) "out of bounds memory access")
239
240;; type check
241(assert_invalid (module (memory 0) (func (result v128) (v128.load8x8_s (f32.const 0)))) "type mismatch")
242(assert_invalid (module (memory 0) (func (result v128) (v128.load8x8_u (f32.const 0)))) "type mismatch")
243(assert_invalid (module (memory 0) (func (result v128) (v128.load16x4_s (f64.const 0)))) "type mismatch")
244(assert_invalid (module (memory 0) (func (result v128) (v128.load16x4_u (f64.const 0)))) "type mismatch")
245(assert_invalid (module (memory 0) (func (result v128) (v128.load32x2_s (v128.const i32x4 0 0 0 0)))) "type mismatch")
246(assert_invalid (module (memory 0) (func (result v128) (v128.load32x2_u (v128.const i32x4 0 0 0 0)))) "type mismatch")
247
248;; Test operation with empty argument
249
250(assert_invalid
251 (module (memory 0)
252 (func $v128.load8x8_s-arg-empty (result v128)
253 (v128.load8x8_s)
254 )
255 )
256 "type mismatch"
257)
258(assert_invalid
259 (module (memory 0)
260 (func $v128.load8x8_u-arg-empty (result v128)
261 (v128.load8x8_u)
262 )
263 )
264 "type mismatch"
265)
266(assert_invalid
267 (module (memory 0)
268 (func $v128.load16x4_s-arg-empty (result v128)
269 (v128.load16x4_s)
270 )
271 )
272 "type mismatch"
273)
274(assert_invalid
275 (module (memory 0)
276 (func $v128.load16x4_u-arg-empty (result v128)
277 (v128.load16x4_u)
278 )
279 )
280 "type mismatch"
281)
282(assert_invalid
283 (module (memory 0)
284 (func $v128.load32x2_s-arg-empty (result v128)
285 (v128.load32x2_s)
286 )
287 )
288 "type mismatch"
289)
290(assert_invalid
291 (module (memory 0)
292 (func $v128.load32x2_u-arg-empty (result v128)
293 (v128.load32x2_u)
294 )
295 )
296 "type mismatch"
297)
298
299;; Unknown operator
300
301(assert_malformed (module quote "(memory 1) (func (drop (i16x8.load16x4_s (i32.const 0))))") "unknown operator")
302(assert_malformed (module quote "(memory 1) (func (drop (i16x8.load16x4_u (i32.const 0))))") "unknown operator")
303(assert_malformed (module quote "(memory 1) (func (drop (i32x4.load32x2_s (i32.const 0))))") "unknown operator")
304(assert_malformed (module quote "(memory 1) (func (drop (i32x4.load32x2_u (i32.const 0))))") "unknown operator")
305(assert_malformed (module quote "(memory 1) (func (drop (i64x2.load64x1_s (i32.const 0))))") "unknown operator")
306(assert_malformed (module quote "(memory 1) (func (drop (i64x2.load64x1_u (i32.const 0))))") "unknown operator")
307
308;; combination
309(module
310 (memory 1)
311 (data (i32.const 0) "\00\01\02\03\04\05\06\07\08\09\0A\0B\0C\0D\0E\0F\80\81\82\83\84\85\86\87\88\89")
312 (func (export "v128.load8x8_s-in-block") (result v128)
313 (block (result v128) (block (result v128) (v128.load8x8_s (i32.const 0))))
314 )
315 (func (export "v128.load8x8_u-in-block") (result v128)
316 (block (result v128) (block (result v128) (v128.load8x8_u (i32.const 1))))
317 )
318 (func (export "v128.load16x4_s-in-block") (result v128)
319 (block (result v128) (block (result v128) (v128.load16x4_s (i32.const 2))))
320 )
321 (func (export "v128.load16x4_u-in-block") (result v128)
322 (block (result v128) (block (result v128) (v128.load16x4_u (i32.const 3))))
323 )
324 (func (export "v128.load32x2_s-in-block") (result v128)
325 (block (result v128) (block (result v128) (v128.load32x2_s (i32.const 4))))
326 )
327 (func (export "v128.load32x2_u-in-block") (result v128)
328 (block (result v128) (block (result v128) (v128.load32x2_u (i32.const 5))))
329 )
330 (func (export "v128.load8x8_s-as-br-value") (result v128)
331 (block (result v128) (br 0 (v128.load8x8_s (i32.const 6))))
332 )
333 (func (export "v128.load8x8_u-as-br-value") (result v128)
334 (block (result v128) (br 0 (v128.load8x8_u (i32.const 7))))
335 )
336 (func (export "v128.load16x4_s-as-br-value") (result v128)
337 (block (result v128) (br 0 (v128.load16x4_s (i32.const 8))))
338 )
339 (func (export "v128.load16x4_u-as-br-value") (result v128)
340 (block (result v128) (br 0 (v128.load16x4_u (i32.const 9))))
341 )
342 (func (export "v128.load32x2_s-as-br-value") (result v128)
343 (block (result v128) (br 0 (v128.load32x2_s (i32.const 10))))
344 )
345 (func (export "v128.load32x2_u-as-br-value") (result v128)
346 (block (result v128) (br 0 (v128.load32x2_u (i32.const 11))))
347 )
348 (func (export "v128.load8x8_s-extract_lane_s-operand") (result i32)
349 (i8x16.extract_lane_s 0 (v128.load8x8_s (i32.const 12)))
350 )
351 (func (export "v128.load8x8_u-extract_lane_s-operand") (result i32)
352 (i8x16.extract_lane_s 0 (v128.load8x8_u (i32.const 13)))
353 )
354 (func (export "v128.load16x4_s-extract_lane_s-operand") (result i32)
355 (i8x16.extract_lane_s 0 (v128.load16x4_s (i32.const 14)))
356 )
357 (func (export "v128.load16x4_u-extract_lane_s-operand") (result i32)
358 (i8x16.extract_lane_s 0 (v128.load16x4_u (i32.const 15)))
359 )
360 (func (export "v128.load32x2_s-extract_lane_s-operand") (result i32)
361 (i8x16.extract_lane_s 0 (v128.load32x2_s (i32.const 16)))
362 )
363 (func (export "v128.load32x2_u-extract_lane_s-operand") (result i32)
364 (i8x16.extract_lane_s 0 (v128.load32x2_u (i32.const 17)))
365 )
366)
367(assert_return (invoke "v128.load8x8_s-in-block") (v128.const i16x8 0x0000 0x0001 0x0002 0x0003 0x0004 0x0005 0x0006 0x0007))
368(assert_return (invoke "v128.load8x8_u-in-block") (v128.const i16x8 0x0001 0x0002 0x0003 0x0004 0x0005 0x0006 0x0007 0x0008))
369(assert_return (invoke "v128.load16x4_s-in-block") (v128.const i32x4 0x00000302 0x00000504 0x00000706 0x00000908))
370(assert_return (invoke "v128.load16x4_u-in-block") (v128.const i32x4 0x00000403 0x00000605 0x00000807 0x00000A09))
371(assert_return (invoke "v128.load32x2_s-in-block") (v128.const i64x2 0x0000000007060504 0x000000000B0A0908))
372(assert_return (invoke "v128.load32x2_u-in-block") (v128.const i64x2 0x0000000008070605 0x000000000C0B0A09))
373(assert_return (invoke "v128.load8x8_s-as-br-value") (v128.const i16x8 0x0006 0x0007 0x0008 0x0009 0x000A 0x000B 0x000C 0x000D))
374(assert_return (invoke "v128.load8x8_u-as-br-value") (v128.const i16x8 0x0007 0x0008 0x0009 0x000A 0x000B 0x000C 0x000D 0x000E))
375(assert_return (invoke "v128.load16x4_s-as-br-value") (v128.const i32x4 0x00000908 0x00000B0A 0x00000D0C 0x00000F0E))
376(assert_return (invoke "v128.load16x4_u-as-br-value") (v128.const i32x4 0x00000A09 0x00000C0B 0x00000E0D 0x0000800F))
377(assert_return (invoke "v128.load32x2_s-as-br-value") (v128.const i64x2 0x000000000D0C0B0A 0xFFFFFFFF81800F0E))
378(assert_return (invoke "v128.load32x2_u-as-br-value") (v128.const i64x2 0x000000000E0D0C0B 0x000000008281800F))
379(assert_return (invoke "v128.load8x8_s-extract_lane_s-operand") (i32.const 12))
380(assert_return (invoke "v128.load8x8_u-extract_lane_s-operand") (i32.const 13))
381(assert_return (invoke "v128.load16x4_s-extract_lane_s-operand") (i32.const 14))
382(assert_return (invoke "v128.load16x4_u-extract_lane_s-operand") (i32.const 15))
383(assert_return (invoke "v128.load32x2_s-extract_lane_s-operand") (i32.const -128))
384(assert_return (invoke "v128.load32x2_u-extract_lane_s-operand") (i32.const -127))
View as plain text