Lines Matching refs:SIMD128

1 …locals -wasm-keep-registers -mattr=+simd128,+sign-ext | FileCheck %s --check-prefixes CHECK,SIMD128
2 …-wasm-disable-explicit-locals -wasm-keep-registers | FileCheck %s --check-prefixes CHECK,NO-SIMD128
4 ; Test that basic SIMD128 vector manipulation operations assemble as expected.
12 ; NO-SIMD128-NOT: i8x16
13 ; SIMD128-NEXT: .functype const_v16i8 () -> (v128){{$}}
14 ; SIMD128-NEXT: v128.const $push[[R:[0-9]+]]=,
15 ; SIMD128-SAME: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15
16 ; SIMD128-NEXT: return $pop[[R]]{{$}}
23 ; NO-SIMD128-NOT: i8x16
24 ; SIMD128-NEXT: .functype splat_v16i8 (i32) -> (v128){{$}}
25 ; SIMD128-NEXT: i8x16.splat $push[[R:[0-9]+]]=, $0{{$}}
26 ; SIMD128-NEXT: return $pop[[R]]{{$}}
36 ; SIMD128: v128.const $push0=, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42{{$}}
43 ; NO-SIMD128-NOT: i8x16
44 ; SIMD128-NEXT: .functype extract_v16i8_s (v128) -> (i32){{$}}
45 ; SIMD128-NEXT: i8x16.extract_lane_s $push[[R:[0-9]+]]=, $0, 13{{$}}
46 ; SIMD128-NEXT: return $pop[[R]]{{$}}
54 ; NO-SIMD128-NOT: i8x16
55 ; SIMD128-NEXT: .functype extract_var_v16i8_s (v128, i32) -> (i32){{$}}
56 ; SIMD128-NEXT: global.get $push[[L0:[0-9]+]]=, __stack_pointer
57 ; SIMD128-NEXT: i32.const $push[[L1:[0-9]+]]=, 16
58 ; SIMD128-NEXT: i32.sub $push[[L2:[0-9]+]]=, $pop[[L0]], $pop[[L1]]
59 ; SIMD128-NEXT: local.tee $push[[L3:[0-9]+]]=, $2=, $pop[[L2]]
60 ; SIMD128-NEXT: v128.store 0($pop[[L3]]), $0
61 ; SIMD128-NEXT: i32.const $push[[L4:[0-9]+]]=, 15
62 ; SIMD128-NEXT: i32.and $push[[L5:[0-9]+]]=, $1, $pop[[L4]]
63 ; SIMD128-NEXT: i32.or $push[[L6:[0-9]+]]=, $2, $pop[[L5]]
64 ; SIMD128-NEXT: i32.load8_s $push[[R:[0-9]+]]=, 0($pop[[L6]])
65 ; SIMD128-NEXT: return $pop[[R]]
73 ; NO-SIMD128-NOT: i8x16
74 ; SIMD128-NEXT: .functype extract_undef_v16i8_s (v128) -> (i32){{$}}
75 ; SIMD128-NEXT: i8x16.extract_lane_s $push[[R:[0-9]+]]=, $0, 0{{$}}
76 ; SIMD128-NEXT: return $pop[[R]]{{$}}
84 ; NO-SIMD128-NOT: i8x16
85 ; SIMD128-NEXT: .functype extract_v16i8_u (v128) -> (i32){{$}}
86 ; SIMD128-NEXT: i8x16.extract_lane_u $push[[R:[0-9]+]]=, $0, 13{{$}}
87 ; SIMD128-NEXT: return $pop[[R]]{{$}}
95 ; NO-SIMD128-NOT: i8x16
96 ; SIMD128-NEXT: .functype extract_var_v16i8_u (v128, i32) -> (i32){{$}}
97 ; SIMD128-NEXT: global.get $push[[L0:[0-9]+]]=, __stack_pointer{{$}}
98 ; SIMD128-NEXT: i32.const $push[[L1:[0-9]+]]=, 16{{$}}
99 ; SIMD128-NEXT: i32.sub $push[[L2:[0-9]+]]=, $pop[[L0]], $pop[[L1]]{{$}}
100 ; SIMD128-NEXT: local.tee $push[[L3:[0-9]+]]=, $2=, $pop[[L2]]{{$}}
101 ; SIMD128-NEXT: v128.store 0($pop[[L3]]), $0{{$}}
102 ; SIMD128-NEXT: i32.const $push[[L4:[0-9]+]]=, 15{{$}}
103 ; SIMD128-NEXT: i32.and $push[[L5:[0-9]+]]=, $1, $pop[[L4]]{{$}}
104 ; SIMD128-NEXT: i32.or $push[[L6:[0-9]+]]=, $2, $pop[[L5]]{{$}}
105 ; SIMD128-NEXT: i32.load8_u $push[[R:[0-9]+]]=, 0($pop[[L6]]){{$}}
106 ; SIMD128-NEXT: return $pop[[R]]{{$}}
114 ; NO-SIMD128-NOT: i8x16
115 ; SIMD128-NEXT: .functype extract_undef_v16i8_u (v128) -> (i32){{$}}
116 ; SIMD128-NEXT: i8x16.extract_lane_u $push[[R:[0-9]+]]=, $0, 0{{$}}
117 ; SIMD128-NEXT: return $pop[[R]]{{$}}
125 ; NO-SIMD128-NOT: i8x16
126 ; SIMD128-NEXT: .functype extract_v16i8 (v128) -> (i32){{$}}
127 ; SIMD128-NEXT: i8x16.extract_lane_u $push[[R:[0-9]+]]=, $0, 13{{$}}
128 ; SIMD128-NEXT: return $pop[[R]]{{$}}
135 ; NO-SIMD128-NOT: i8x16
136 ; SIMD128-NEXT: .functype extract_var_v16i8 (v128, i32) -> (i32){{$}}
137 ; SIMD128-NEXT: global.get $push[[L0:[0-9]+]]=, __stack_pointer{{$}}
138 ; SIMD128-NEXT: i32.const $push[[L1:[0-9]+]]=, 16{{$}}
139 ; SIMD128-NEXT: i32.sub $push[[L2:[0-9]+]]=, $pop[[L0]], $pop[[L1]]{{$}}
140 ; SIMD128-NEXT: local.tee $push[[L3:[0-9]+]]=, $2=, $pop[[L2]]{{$}}
141 ; SIMD128-NEXT: v128.store 0($pop[[L3]]), $0{{$}}
142 ; SIMD128-NEXT: i32.const $push[[L4:[0-9]+]]=, 15{{$}}
143 ; SIMD128-NEXT: i32.and $push[[L5:[0-9]+]]=, $1, $pop[[L4]]{{$}}
144 ; SIMD128-NEXT: i32.or $push[[L6:[0-9]+]]=, $2, $pop[[L5]]{{$}}
145 ; SIMD128-NEXT: i32.load8_u $push[[R:[0-9]+]]=, 0($pop[[L6]]){{$}}
146 ; SIMD128-NEXT: return $pop[[R]]{{$}}
153 ; NO-SIMD128-NOT: i8x16
154 ; SIMD128-NEXT: .functype extract_undef_v16i8 (v128) -> (i32){{$}}
155 ; SIMD128-NEXT: i8x16.extract_lane_u $push[[R:[0-9]+]]=, $0, 0{{$}}
156 ; SIMD128-NEXT: return $pop[[R]]{{$}}
163 ; NO-SIMD128-NOT: i8x16
164 ; SIMD128-NEXT: .functype replace_v16i8 (v128, i32) -> (v128){{$}}
165 ; SIMD128-NEXT: i8x16.replace_lane $push[[R:[0-9]+]]=, $0, 11, $1{{$}}
166 ; SIMD128-NEXT: return $pop[[R]]{{$}}
173 ; NO-SIMD128-NOT: i8x16
174 ; SIMD128-NEXT: .functype replace_var_v16i8 (v128, i32, i32) -> (v128){{$}}
175 ; SIMD128-NEXT: global.get $push[[L0:[0-9]+]]=, __stack_pointer{{$}}
176 ; SIMD128-NEXT: i32.const $push[[L1:[0-9]+]]=, 16{{$}}
177 ; SIMD128-NEXT: i32.sub $push[[L2:[0-9]+]]=, $pop[[L0]], $pop[[L1]]{{$}}
178 ; SIMD128-NEXT: local.tee $push[[L3:[0-9]+]]=, $3=, $pop[[L2]]{{$}}
179 ; SIMD128-NEXT: v128.store 0($pop[[L3]]), $0{{$}}
180 ; SIMD128-NEXT: i32.const $push[[L4:[0-9]+]]=, 15{{$}}
181 ; SIMD128-NEXT: i32.and $push[[L5:[0-9]+]]=, $1, $pop[[L4]]{{$}}
182 ; SIMD128-NEXT: i32.or $push[[L6:[0-9]+]]=, $3, $pop[[L5]]{{$}}
183 ; SIMD128-NEXT: i32.store8 0($pop[[L6]]), $2{{$}}
184 ; SIMD128-NEXT: v128.load $push[[R:[0-9]+]]=, 0($3){{$}}
185 ; SIMD128-NEXT: return $pop[[R]]{{$}}
192 ; NO-SIMD128-NOT: i8x16
193 ; SIMD128-NEXT: .functype replace_zero_v16i8 (v128, i32) -> (v128){{$}}
194 ; SIMD128-NEXT: i8x16.replace_lane $push[[R:[0-9]+]]=, $0, 0, $1{{$}}
195 ; SIMD128-NEXT: return $pop[[R]]{{$}}
202 ; NO-SIMD128-NOT: i8x16
203 ; SIMD128-NEXT: .functype shuffle_v16i8 (v128, v128) -> (v128){{$}}
204 ; SIMD128-NEXT: i8x16.shuffle $push[[R:[0-9]+]]=, $0, $1,
205 ; SIMD128-SAME: 0, 17, 2, 19, 4, 21, 6, 23, 8, 25, 10, 27, 12, 29, 14, 31{{$}}
206 ; SIMD128-NEXT: return $pop[[R]]{{$}}
215 ; NO-SIMD128-NOT: i8x16
216 ; SIMD128-NEXT: .functype shuffle_undef_v16i8 (v128, v128) -> (v128){{$}}
217 ; SIMD128-NEXT: i8x16.shuffle $push[[R:[0-9]+]]=, $0, $0,
218 ; SIMD128-SAME: 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0{{$}}
219 ; SIMD128-NEXT: return $pop[[R]]{{$}}
230 ; NO-SIMD128-NOT: i8x16
231 ; SIMD128-NEXT: .functype build_v16i8 (i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, …
232 ; SIMD128-NEXT: i8x16.splat $push[[L0:[0-9]+]]=, $0{{$}}
233 ; SIMD128-NEXT: i8x16.replace_lane $push[[L1:[0-9]+]]=, $pop[[L0]], 1, $1{{$}}
234 ; SIMD128-NEXT: i8x16.replace_lane $push[[L2:[0-9]+]]=, $pop[[L1]], 2, $2{{$}}
235 ; SIMD128-NEXT: i8x16.replace_lane $push[[L3:[0-9]+]]=, $pop[[L2]], 3, $3{{$}}
236 ; SIMD128-NEXT: i8x16.replace_lane $push[[L4:[0-9]+]]=, $pop[[L3]], 4, $4{{$}}
237 ; SIMD128-NEXT: i8x16.replace_lane $push[[L5:[0-9]+]]=, $pop[[L4]], 5, $5{{$}}
238 ; SIMD128-NEXT: i8x16.replace_lane $push[[L6:[0-9]+]]=, $pop[[L5]], 6, $6{{$}}
239 ; SIMD128-NEXT: i8x16.replace_lane $push[[L7:[0-9]+]]=, $pop[[L6]], 7, $7{{$}}
240 ; SIMD128-NEXT: i8x16.replace_lane $push[[L8:[0-9]+]]=, $pop[[L7]], 8, $8{{$}}
241 ; SIMD128-NEXT: i8x16.replace_lane $push[[L9:[0-9]+]]=, $pop[[L8]], 9, $9{{$}}
242 ; SIMD128-NEXT: i8x16.replace_lane $push[[L10:[0-9]+]]=, $pop[[L9]], 10, $10{{$}}
243 ; SIMD128-NEXT: i8x16.replace_lane $push[[L11:[0-9]+]]=, $pop[[L10]], 11, $11{{$}}
244 ; SIMD128-NEXT: i8x16.replace_lane $push[[L12:[0-9]+]]=, $pop[[L11]], 12, $12{{$}}
245 ; SIMD128-NEXT: i8x16.replace_lane $push[[L13:[0-9]+]]=, $pop[[L12]], 13, $13{{$}}
246 ; SIMD128-NEXT: i8x16.replace_lane $push[[L14:[0-9]+]]=, $pop[[L13]], 14, $14{{$}}
247 ; SIMD128-NEXT: i8x16.replace_lane $push[[R:[0-9]+]]=, $pop[[L14]], 15, $15{{$}}
248 ; SIMD128-NEXT: return $pop[[R]]{{$}}
276 ; NO-SIMD128-NOT: i16x8
277 ; SIMD128-NEXT: .functype const_v8i16 () -> (v128){{$}}
278 ; SIMD128-NEXT: v128.const $push[[R:[0-9]+]]=, 256, 770, 1284, 1798, 2312, 2826, 3340, 3854{{$}}
279 ; SIMD128-NEXT: return $pop[[R]]{{$}}
286 ; NO-SIMD128-NOT: i16x8
287 ; SIMD128-NEXT: .functype splat_v8i16 (i32) -> (v128){{$}}
288 ; SIMD128-NEXT: i16x8.splat $push[[R:[0-9]+]]=, $0{{$}}
289 ; SIMD128-NEXT: return $pop[[R]]{{$}}
298 ; SIMD128: v128.const $push0=, 42, 42, 42, 42, 42, 42, 42, 42{{$}}
304 ; NO-SIMD128-NOT: i16x8
305 ; SIMD128-NEXT: .functype extract_v8i16_s (v128) -> (i32){{$}}
306 ; SIMD128-NEXT: i16x8.extract_lane_s $push[[R:[0-9]+]]=, $0, 5{{$}}
307 ; SIMD128-NEXT: return $pop[[R]]{{$}}
315 ; NO-SIMD128-NOT: i16x8
316 ; SIMD128-NEXT: .functype extract_var_v8i16_s (v128, i32) -> (i32){{$}}
317 ; SIMD128-NEXT: global.get $push[[L0:[0-9]+]]=, __stack_pointer{{$}}
318 ; SIMD128-NEXT: i32.const $push[[L1:[0-9]+]]=, 16{{$}}
319 ; SIMD128-NEXT: i32.sub $push[[L2:[0-9]+]]=, $pop[[L0]], $pop[[L1]]{{$}}
320 ; SIMD128-NEXT: local.tee $push[[L3:[0-9]+]]=, $2=, $pop[[L2]]{{$}}
321 ; SIMD128-NEXT: v128.store 0($pop[[L3]]), $0{{$}}
322 ; SIMD128-NEXT: i32.const $push[[L4:[0-9]+]]=, 7{{$}}
323 ; SIMD128-NEXT: i32.and $push[[L5:[0-9]+]]=, $1, $pop[[L4]]{{$}}
324 ; SIMD128-NEXT: i32.const $push[[L6:[0-9]+]]=, 1{{$}}
325 ; SIMD128-NEXT: i32.shl $push[[L7:[0-9]+]]=, $pop[[L5]], $pop[[L6]]{{$}}
326 ; SIMD128-NEXT: i32.or $push[[L8:[0-9]+]]=, $2, $pop[[L7]]{{$}}
327 ; SIMD128-NEXT: i32.load16_s $push[[R:[0-9]+]]=, 0($pop[[L8]]){{$}}
328 ; SIMD128-NEXT: return $pop[[R]]{{$}}
336 ; NO-SIMD128-NOT: i16x8
337 ; SIMD128-NEXT: .functype extract_undef_v8i16_s (v128) -> (i32){{$}}
338 ; SIMD128-NEXT: i16x8.extract_lane_s $push[[R:[0-9]+]]=, $0, 0{{$}}
339 ; SIMD128-NEXT: return $pop[[R]]{{$}}
347 ; NO-SIMD128-NOT: i16x8
348 ; SIMD128-NEXT: .functype extract_v8i16_u (v128) -> (i32){{$}}
349 ; SIMD128-NEXT: i16x8.extract_lane_u $push[[R:[0-9]+]]=, $0, 5{{$}}
350 ; SIMD128-NEXT: return $pop[[R]]{{$}}
358 ; NO-SIMD128-NOT: i16x8
359 ; SIMD128-NEXT: .functype extract_var_v8i16_u (v128, i32) -> (i32){{$}}
360 ; SIMD128-NEXT: global.get $push[[L0:[0-9]+]]=, __stack_pointer{{$}}
361 ; SIMD128-NEXT: i32.const $push[[L1:[0-9]+]]=, 16{{$}}
362 ; SIMD128-NEXT: i32.sub $push[[L2:[0-9]+]]=, $pop[[L0]], $pop[[L1]]{{$}}
363 ; SIMD128-NEXT: local.tee $push[[L3:[0-9]+]]=, $2=, $pop[[L2]]{{$}}
364 ; SIMD128-NEXT: v128.store 0($pop[[L3]]), $0{{$}}
365 ; SIMD128-NEXT: i32.const $push[[L4:[0-9]+]]=, 7{{$}}
366 ; SIMD128-NEXT: i32.and $push[[L5:[0-9]+]]=, $1, $pop[[L4]]{{$}}
367 ; SIMD128-NEXT: i32.const $push[[L6:[0-9]+]]=, 1{{$}}
368 ; SIMD128-NEXT: i32.shl $push[[L7:[0-9]+]]=, $pop[[L5]], $pop[[L6]]{{$}}
369 ; SIMD128-NEXT: i32.or $push[[L8:[0-9]+]]=, $2, $pop[[L7]]{{$}}
370 ; SIMD128-NEXT: i32.load16_u $push[[R:[0-9]+]]=, 0($pop[[L8]]){{$}}
371 ; SIMD128-NEXT: return $pop[[R]]{{$}}
379 ; NO-SIMD128-NOT: i16x8
380 ; SIMD128-NEXT: .functype extract_undef_v8i16_u (v128) -> (i32){{$}}
381 ; SIMD128-NEXT: i16x8.extract_lane_u $push[[R:[0-9]+]]=, $0, 0{{$}}
382 ; SIMD128-NEXT: return $pop[[R]]{{$}}
390 ; NO-SIMD128-NOT: i16x8
391 ; SIMD128-NEXT: .functype extract_v8i16 (v128) -> (i32){{$}}
392 ; SIMD128-NEXT: i16x8.extract_lane_u $push[[R:[0-9]+]]=, $0, 5{{$}}
393 ; SIMD128-NEXT: return $pop[[R]]{{$}}
400 ; NO-SIMD128-NOT: i16x8
401 ; SIMD128-NEXT: .functype extract_var_v8i16 (v128, i32) -> (i32){{$}}
402 ; SIMD128-NEXT: global.get $push[[L0:[0-9]+]]=, __stack_pointer{{$}}
403 ; SIMD128-NEXT: i32.const $push[[L1:[0-9]+]]=, 16{{$}}
404 ; SIMD128-NEXT: i32.sub $push[[L2:[0-9]+]]=, $pop[[L0]], $pop[[L1]]{{$}}
405 ; SIMD128-NEXT: local.tee $push[[L3:[0-9]+]]=, $2=, $pop[[L2]]{{$}}
406 ; SIMD128-NEXT: v128.store 0($pop[[L3]]), $0{{$}}
407 ; SIMD128-NEXT: i32.const $push[[L4:[0-9]+]]=, 7{{$}}
408 ; SIMD128-NEXT: i32.and $push[[L5:[0-9]+]]=, $1, $pop[[L4]]{{$}}
409 ; SIMD128-NEXT: i32.const $push[[L6:[0-9]+]]=, 1{{$}}
410 ; SIMD128-NEXT: i32.shl $push[[L7:[0-9]+]]=, $pop[[L5]], $pop[[L6]]{{$}}
411 ; SIMD128-NEXT: i32.or $push[[L8:[0-9]+]]=, $2, $pop[[L7]]{{$}}
412 ; SIMD128-NEXT: i32.load16_u $push[[R:[0-9]+]]=, 0($pop[[L8]]){{$}}
413 ; SIMD128-NEXT: return $pop[[R]]{{$}}
420 ; NO-SIMD128-NOT: i16x8
421 ; SIMD128-NEXT: .functype extract_undef_v8i16 (v128) -> (i32){{$}}
422 ; SIMD128-NEXT: i16x8.extract_lane_u $push[[R:[0-9]+]]=, $0, 0{{$}}
423 ; SIMD128-NEXT: return $pop[[R]]{{$}}
430 ; NO-SIMD128-NOT: i16x8
431 ; SIMD128-NEXT: .functype replace_v8i16 (v128, i32) -> (v128){{$}}
432 ; SIMD128-NEXT: i16x8.replace_lane $push[[R:[0-9]+]]=, $0, 7, $1{{$}}
433 ; SIMD128-NEXT: return $pop[[R]]{{$}}
440 ; NO-SIMD128-NOT: i16x8
441 ; SIMD128-NEXT: .functype replace_var_v8i16 (v128, i32, i32) -> (v128){{$}}
442 ; SIMD128-NEXT: global.get $push[[L0:[0-9]+]]=, __stack_pointer{{$}}
443 ; SIMD128-NEXT: i32.const $push[[L1:[0-9]+]]=, 16{{$}}
444 ; SIMD128-NEXT: i32.sub $push[[L2:[0-9]+]]=, $pop[[L0]], $pop[[L1]]{{$}}
445 ; SIMD128-NEXT: local.tee $push[[L3:[0-9]+]]=, $3=, $pop[[L2]]{{$}}
446 ; SIMD128-NEXT: v128.store 0($pop[[L3]]), $0{{$}}
447 ; SIMD128-NEXT: i32.const $push[[L4:[0-9]+]]=, 7{{$}}
448 ; SIMD128-NEXT: i32.and $push[[L5:[0-9]+]]=, $1, $pop[[L4]]{{$}}
449 ; SIMD128-NEXT: i32.const $push[[L6:[0-9]+]]=, 1{{$}}
450 ; SIMD128-NEXT: i32.shl $push[[L7:[0-9]+]]=, $pop[[L5]], $pop[[L6]]{{$}}
451 ; SIMD128-NEXT: i32.or $push[[L8:[0-9]+]]=, $3, $pop[[L7]]{{$}}
452 ; SIMD128-NEXT: i32.store16 0($pop[[L8]]), $2{{$}}
453 ; SIMD128-NEXT: v128.load $push[[R:[0-9]+]]=, 0($3){{$}}
454 ; SIMD128-NEXT: return $pop[[R]]{{$}}
461 ; NO-SIMD128-NOT: i16x8
462 ; SIMD128-NEXT: .functype replace_zero_v8i16 (v128, i32) -> (v128){{$}}
463 ; SIMD128-NEXT: i16x8.replace_lane $push[[R:[0-9]+]]=, $0, 0, $1{{$}}
464 ; SIMD128-NEXT: return $pop[[R]]{{$}}
471 ; NO-SIMD128-NOT: i8x16
472 ; SIMD128-NEXT: .functype shuffle_v8i16 (v128, v128) -> (v128){{$}}
473 ; SIMD128-NEXT: i8x16.shuffle $push[[R:[0-9]+]]=, $0, $1,
474 ; SIMD128-SAME: 0, 1, 18, 19, 4, 5, 22, 23, 8, 9, 26, 27, 12, 13, 30, 31{{$}}
475 ; SIMD128-NEXT: return $pop[[R]]{{$}}
483 ; NO-SIMD128-NOT: i8x16
484 ; SIMD128-NEXT: .functype shuffle_undef_v8i16 (v128, v128) -> (v128){{$}}
485 ; SIMD128-NEXT: i8x16.shuffle $push[[R:[0-9]+]]=, $0, $0,
486 ; SIMD128-SAME: 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0{{$}}
487 ; SIMD128-NEXT: return $pop[[R]]{{$}}
496 ; NO-SIMD128-NOT: i16x8
497 ; SIMD128-NEXT: .functype build_v8i16 (i32, i32, i32, i32, i32, i32, i32, i32) -> (v128){{$}}
498 ; SIMD128-NEXT: i16x8.splat $push[[L0:[0-9]+]]=, $0{{$}}
499 ; SIMD128-NEXT: i16x8.replace_lane $push[[L1:[0-9]+]]=, $pop[[L0]], 1, $1{{$}}
500 ; SIMD128-NEXT: i16x8.replace_lane $push[[L2:[0-9]+]]=, $pop[[L1]], 2, $2{{$}}
501 ; SIMD128-NEXT: i16x8.replace_lane $push[[L3:[0-9]+]]=, $pop[[L2]], 3, $3{{$}}
502 ; SIMD128-NEXT: i16x8.replace_lane $push[[L4:[0-9]+]]=, $pop[[L3]], 4, $4{{$}}
503 ; SIMD128-NEXT: i16x8.replace_lane $push[[L5:[0-9]+]]=, $pop[[L4]], 5, $5{{$}}
504 ; SIMD128-NEXT: i16x8.replace_lane $push[[L6:[0-9]+]]=, $pop[[L5]], 6, $6{{$}}
505 ; SIMD128-NEXT: i16x8.replace_lane $push[[R:[0-9]+]]=, $pop[[L6]], 7, $7{{$}}
506 ; SIMD128-NEXT: return $pop[[R]]{{$}}
524 ; NO-SIMD128-NOT: i32x4
525 ; SIMD128-NEXT: .functype const_v4i32 () -> (v128){{$}}
526 ; SIMD128-NEXT: v128.const $push[[R:[0-9]+]]=, 50462976, 117835012, 185207048, 252579084{{$}}
527 ; SIMD128-NEXT: return $pop[[R]]{{$}}
533 ; NO-SIMD128-NOT: i32x4
534 ; SIMD128-NEXT: .functype splat_v4i32 (i32) -> (v128){{$}}
535 ; SIMD128-NEXT: i32x4.splat $push[[R:[0-9]+]]=, $0{{$}}
536 ; SIMD128-NEXT: return $pop[[R]]{{$}}
545 ; SIMD128: v128.const $push0=, 42, 42, 42, 42{{$}}
551 ; NO-SIMD128-NOT: i32x4
552 ; SIMD128-NEXT: .functype extract_v4i32 (v128) -> (i32){{$}}
553 ; SIMD128-NEXT: i32x4.extract_lane $push[[R:[0-9]+]]=, $0, 3{{$}}
554 ; SIMD128-NEXT: return $pop[[R]]{{$}}
561 ; NO-SIMD128-NOT: i32x4
562 ; SIMD128-NEXT: .functype extract_var_v4i32 (v128, i32) -> (i32){{$}}
563 ; SIMD128-NEXT: global.get $push[[L0:[0-9]+]]=, __stack_pointer{{$}}
564 ; SIMD128-NEXT: i32.const $push[[L1:[0-9]+]]=, 16{{$}}
565 ; SIMD128-NEXT: i32.sub $push[[L2:[0-9]+]]=, $pop[[L0]], $pop[[L1]]{{$}}
566 ; SIMD128-NEXT: local.tee $push[[L3:[0-9]+]]=, $2=, $pop[[L2]]{{$}}
567 ; SIMD128-NEXT: v128.store 0($pop[[L3]]), $0{{$}}
568 ; SIMD128-NEXT: i32.const $push[[L4:[0-9]+]]=, 3{{$}}
569 ; SIMD128-NEXT: i32.and $push[[L5:[0-9]+]]=, $1, $pop[[L4]]{{$}}
570 ; SIMD128-NEXT: i32.const $push[[L6:[0-9]+]]=, 2{{$}}
571 ; SIMD128-NEXT: i32.shl $push[[L7:[0-9]+]]=, $pop[[L5]], $pop[[L6]]{{$}}
572 ; SIMD128-NEXT: i32.or $push[[L4:[0-9]+]]=, $2, $pop[[L7]]{{$}}
573 ; SIMD128-NEXT: i32.load $push[[R:[0-9]+]]=, 0($pop[[L4]]){{$}}
574 ; SIMD128-NEXT: return $pop[[R]]{{$}}
581 ; NO-SIMD128-NOT: i32x4
582 ; SIMD128-NEXT: .functype extract_zero_v4i32 (v128) -> (i32){{$}}
583 ; SIMD128-NEXT: i32x4.extract_lane $push[[R:[0-9]+]]=, $0, 0{{$}}
584 ; SIMD128-NEXT: return $pop[[R]]{{$}}
591 ; NO-SIMD128-NOT: i32x4
592 ; SIMD128-NEXT: .functype replace_v4i32 (v128, i32) -> (v128){{$}}
593 ; SIMD128-NEXT: i32x4.replace_lane $push[[R:[0-9]+]]=, $0, 2, $1{{$}}
594 ; SIMD128-NEXT: return $pop[[R]]{{$}}
601 ; NO-SIMD128-NOT: i32x4
602 ; SIMD128-NEXT: .functype replace_var_v4i32 (v128, i32, i32) -> (v128){{$}}
603 ; SIMD128-NEXT: global.get $push[[L0:[0-9]+]]=, __stack_pointer{{$}}
604 ; SIMD128-NEXT: i32.const $push[[L1:[0-9]+]]=, 16{{$}}
605 ; SIMD128-NEXT: i32.sub $push[[L2:[0-9]+]]=, $pop[[L0]], $pop[[L1]]{{$}}
606 ; SIMD128-NEXT: local.tee $push[[L3:[0-9]+]]=, $3=, $pop[[L2]]{{$}}
607 ; SIMD128-NEXT: v128.store 0($pop[[L3]]), $0{{$}}
608 ; SIMD128-NEXT: i32.const $push[[L4:[0-9]+]]=, 3{{$}}
609 ; SIMD128-NEXT: i32.and $push[[L5:[0-9]+]]=, $1, $pop[[L4]]{{$}}
610 ; SIMD128-NEXT: i32.const $push[[L6:[0-9]+]]=, 2{{$}}
611 ; SIMD128-NEXT: i32.shl $push[[L7:[0-9]+]]=, $pop[[L5]], $pop[[L6]]{{$}}
612 ; SIMD128-NEXT: i32.or $push[[L4:[0-9]+]]=, $3, $pop[[L7]]{{$}}
613 ; SIMD128-NEXT: i32.store 0($pop[[L4]]), $2{{$}}
614 ; SIMD128-NEXT: v128.load $push[[R:[0-9]+]]=, 0($3){{$}}
615 ; SIMD128-NEXT: return $pop[[R]]{{$}}
622 ; NO-SIMD128-NOT: i32x4
623 ; SIMD128-NEXT: .functype replace_zero_v4i32 (v128, i32) -> (v128){{$}}
624 ; SIMD128-NEXT: i32x4.replace_lane $push[[R:[0-9]+]]=, $0, 0, $1{{$}}
625 ; SIMD128-NEXT: return $pop[[R]]{{$}}
632 ; NO-SIMD128-NOT: i8x16
633 ; SIMD128-NEXT: .functype shuffle_v4i32 (v128, v128) -> (v128){{$}}
634 ; SIMD128-NEXT: i8x16.shuffle $push[[R:[0-9]+]]=, $0, $1,
635 ; SIMD128-SAME: 0, 1, 2, 3, 20, 21, 22, 23, 8, 9, 10, 11, 28, 29, 30, 31{{$}}
636 ; SIMD128-NEXT: return $pop[[R]]{{$}}
644 ; NO-SIMD128-NOT: i8x16
645 ; SIMD128-NEXT: .functype shuffle_undef_v4i32 (v128, v128) -> (v128){{$}}
646 ; SIMD128-NEXT: i8x16.shuffle $push[[R:[0-9]+]]=, $0, $0,
647 ; SIMD128-SAME: 4, 5, 6, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0{{$}}
648 ; SIMD128-NEXT: return $pop[[R]]{{$}}
656 ; NO-SIMD128-NOT: i32x4
657 ; SIMD128-NEXT: .functype build_v4i32 (i32, i32, i32, i32) -> (v128){{$}}
658 ; SIMD128-NEXT: i32x4.splat $push[[L0:[0-9]+]]=, $0{{$}}
659 ; SIMD128-NEXT: i32x4.replace_lane $push[[L1:[0-9]+]]=, $pop[[L0]], 1, $1{{$}}
660 ; SIMD128-NEXT: i32x4.replace_lane $push[[L2:[0-9]+]]=, $pop[[L1]], 2, $2{{$}}
661 ; SIMD128-NEXT: i32x4.replace_lane $push[[R:[0-9]+]]=, $pop[[L2]], 3, $3{{$}}
662 ; SIMD128-NEXT: return $pop[[R]]{{$}}
675 ; NO-SIMD128-NOT: i64x2
676 ; SIMD128-NEXT: .functype const_v2i64 () -> (v128){{$}}
677 ; SIMD128-NEXT: v128.const $push[[R:[0-9]+]]=, 506097522914230528, 1084818905618843912{{$}}
678 ; SIMD128-NEXT: return $pop[[R]]{{$}}
684 ; NO-SIMD128-NOT: i64x2
685 ; SIMD128-NEXT: .functype splat_v2i64 (i64) -> (v128){{$}}
686 ; SIMD128-NEXT: i64x2.splat $push[[R:[0-9]+]]=, $0{{$}}
687 ; SIMD128-NEXT: return $pop[[R]]{{$}}
695 ; SIMD128: v128.const $push0=, 42, 42{{$}}
701 ; NO-SIMD128-NOT: i64x2
702 ; SIMD128-NEXT: .functype extract_v2i64 (v128) -> (i64){{$}}
703 ; SIMD128-NEXT: i64x2.extract_lane $push[[R:[0-9]+]]=, $0, 1{{$}}
704 ; SIMD128-NEXT: return $pop[[R]]{{$}}
711 ; NO-SIMD128-NOT: i64x2
712 ; SIMD128-NEXT: .functype extract_var_v2i64 (v128, i32) -> (i64){{$}}
713 ; SIMD128-NEXT: global.get $push[[L0:[0-9]+]]=, __stack_pointer{{$}}
714 ; SIMD128-NEXT: i32.const $push[[L1:[0-9]+]]=, 16{{$}}
715 ; SIMD128-NEXT: i32.sub $push[[L2:[0-9]+]]=, $pop[[L0]], $pop[[L1]]{{$}}
716 ; SIMD128-NEXT: local.tee $push[[L3:[0-9]+]]=, $2=, $pop[[L2]]{{$}}
717 ; SIMD128-NEXT: v128.store 0($pop[[L3]]), $0{{$}}
718 ; SIMD128-NEXT: i32.const $push[[L2:[0-9]+]]=, 1{{$}}
719 ; SIMD128-NEXT: i32.and $push[[L5:[0-9]+]]=, $1, $pop[[L2]]{{$}}
720 ; SIMD128-NEXT: i32.const $push[[L6:[0-9]+]]=, 3{{$}}
721 ; SIMD128-NEXT: i32.shl $push[[L7:[0-9]+]]=, $pop[[L5]], $pop[[L6]]{{$}}
722 ; SIMD128-NEXT: i32.or $push[[L2:[0-9]+]]=, $2, $pop[[L7]]{{$}}
723 ; SIMD128-NEXT: i64.load $push[[R:[0-9]+]]=, 0($pop[[L2]]){{$}}
724 ; SIMD128-NEXT: return $pop[[R]]{{$}}
731 ; NO-SIMD128-NOT: i64x2
732 ; SIMD128-NEXT: .functype extract_zero_v2i64 (v128) -> (i64){{$}}
733 ; SIMD128-NEXT: i64x2.extract_lane $push[[R:[0-9]+]]=, $0, 0{{$}}
734 ; SIMD128-NEXT: return $pop[[R]]{{$}}
741 ; NO-SIMD128-NOT: i64x2
742 ; SIMD128-NEXT: .functype replace_v2i64 (v128, i64) -> (v128){{$}}
743 ; SIMD128-NEXT: i64x2.replace_lane $push[[R:[0-9]+]]=, $0, 0, $1{{$}}
744 ; SIMD128-NEXT: return $pop[[R]]{{$}}
751 ; NO-SIMD128-NOT: i64x2
752 ; SIMD128-NEXT: .functype replace_var_v2i64 (v128, i32, i64) -> (v128){{$}}
753 ; SIMD128-NEXT: global.get $push[[L0:[0-9]+]]=, __stack_pointer{{$}}
754 ; SIMD128-NEXT: i32.const $push[[L1:[0-9]+]]=, 16{{$}}
755 ; SIMD128-NEXT: i32.sub $push[[L2:[0-9]+]]=, $pop[[L0]], $pop[[L1]]{{$}}
756 ; SIMD128-NEXT: local.tee $push[[L3:[0-9]+]]=, $3=, $pop[[L2]]{{$}}
757 ; SIMD128-NEXT: v128.store 0($pop[[L3]]), $0{{$}}
758 ; SIMD128-NEXT: i32.const $push[[L2:[0-9]+]]=, 1{{$}}
759 ; SIMD128-NEXT: i32.and $push[[L5:[0-9]+]]=, $1, $pop[[L2]]{{$}}
760 ; SIMD128-NEXT: i32.const $push[[L6:[0-9]+]]=, 3{{$}}
761 ; SIMD128-NEXT: i32.shl $push[[L7:[0-9]+]]=, $pop[[L5]], $pop[[L6]]{{$}}
762 ; SIMD128-NEXT: i32.or $push[[L2:[0-9]+]]=, $3, $pop[[L7]]{{$}}
763 ; SIMD128-NEXT: i64.store 0($pop[[L2]]), $2{{$}}
764 ; SIMD128-NEXT: v128.load $push[[R:[0-9]+]]=, 0($3){{$}}
765 ; SIMD128-NEXT: return $pop[[R]]{{$}}
772 ; NO-SIMD128-NOT: i64x2
773 ; SIMD128-NEXT: .functype replace_zero_v2i64 (v128, i64) -> (v128){{$}}
774 ; SIMD128-NEXT: i64x2.replace_lane $push[[R:[0-9]+]]=, $0, 0, $1{{$}}
775 ; SIMD128-NEXT: return $pop[[R]]{{$}}
782 ; NO-SIMD128-NOT: i8x16
783 ; SIMD128-NEXT: .functype shuffle_v2i64 (v128, v128) -> (v128){{$}}
784 ; SIMD128-NEXT: i8x16.shuffle $push[[R:[0-9]+]]=, $0, $1,
785 ; SIMD128-SAME: 0, 1, 2, 3, 4, 5, 6, 7, 24, 25, 26, 27, 28, 29, 30, 31{{$}}
786 ; SIMD128-NEXT: return $pop[[R]]{{$}}
793 ; NO-SIMD128-NOT: i8x16
794 ; SIMD128-NEXT: .functype shuffle_undef_v2i64 (v128, v128) -> (v128){{$}}
795 ; SIMD128-NEXT: i8x16.shuffle $push[[R:[0-9]+]]=, $0, $0,
796 ; SIMD128-SAME: 8, 9, 10, 11, 12, 13, 14, 15, 0, 0, 0, 0, 0, 0, 0, 0{{$}}
797 ; SIMD128-NEXT: return $pop[[R]]{{$}}
805 ; NO-SIMD128-NOT: i64x2
806 ; SIMD128-NEXT: .functype build_v2i64 (i64, i64) -> (v128){{$}}
807 ; SIMD128-NEXT: i64x2.splat $push[[L0:[0-9]+]]=, $0{{$}}
808 ; SIMD128-NEXT: i64x2.replace_lane $push[[R:[0-9]+]]=, $pop[[L0]], 1, $1{{$}}
809 ; SIMD128-NEXT: return $pop[[R]]{{$}}
820 ; NO-SIMD128-NOT: f32x4
821 ; SIMD128-NEXT: .functype const_v4f32 () -> (v128){{$}}
822 ; SIMD128-NEXT: v128.const $push[[R:[0-9]+]]=,
823 ; SIMD128-SAME: 0x1.0402p-121, 0x1.0c0a08p-113, 0x1.14121p-105, 0x1.1c1a18p-97{{$}}
824 ; SIMD128-NEXT: return $pop[[R]]{{$}}
831 ; NO-SIMD128-NOT: f32x4
832 ; SIMD128-NEXT: .functype splat_v4f32 (f32) -> (v128){{$}}
833 ; SIMD128-NEXT: f32x4.splat $push[[R:[0-9]+]]=, $0{{$}}
834 ; SIMD128-NEXT: return $pop[[R]]{{$}}
843 ; SIMD128: v128.const $push0=, 0x1.5p5, 0x1.5p5, 0x1.5p5, 0x1.5p5{{$}}
849 ; NO-SIMD128-NOT: f32x4
850 ; SIMD128-NEXT: .functype extract_v4f32 (v128) -> (f32){{$}}
851 ; SIMD128-NEXT: f32x4.extract_lane $push[[R:[0-9]+]]=, $0, 3{{$}}
852 ; SIMD128-NEXT: return $pop[[R]]{{$}}
859 ; NO-SIMD128-NOT: i64x2
860 ; SIMD128-NEXT: .functype extract_var_v4f32 (v128, i32) -> (f32){{$}}
861 ; SIMD128-NEXT: global.get $push[[L0:[0-9]+]]=, __stack_pointer{{$}}
862 ; SIMD128-NEXT: i32.const $push[[L1:[0-9]+]]=, 16{{$}}
863 ; SIMD128-NEXT: i32.sub $push[[L2:[0-9]+]]=, $pop[[L0]], $pop[[L1]]{{$}}
864 ; SIMD128-NEXT: local.tee $push[[L3:[0-9]+]]=, $2=, $pop[[L2]]{{$}}
865 ; SIMD128-NEXT: v128.store 0($pop[[L3]]), $0{{$}}
866 ; SIMD128-NEXT: i32.const $push[[L2:[0-9]+]]=, 3{{$}}
867 ; SIMD128-NEXT: i32.and $push[[L5:[0-9]+]]=, $1, $pop[[L2]]{{$}}
868 ; SIMD128-NEXT: i32.const $push[[L6:[0-9]+]]=, 2{{$}}
869 ; SIMD128-NEXT: i32.shl $push[[L7:[0-9]+]]=, $pop[[L5]], $pop[[L6]]{{$}}
870 ; SIMD128-NEXT: i32.or $push[[L2:[0-9]+]]=, $2, $pop[[L7]]{{$}}
871 ; SIMD128-NEXT: f32.load $push[[R:[0-9]+]]=, 0($pop[[L2]]){{$}}
872 ; SIMD128-NEXT: return $pop[[R]]{{$}}
879 ; NO-SIMD128-NOT: f32x4
880 ; SIMD128-NEXT: .functype extract_zero_v4f32 (v128) -> (f32){{$}}
881 ; SIMD128-NEXT: f32x4.extract_lane $push[[R:[0-9]+]]=, $0, 0{{$}}
882 ; SIMD128-NEXT: return $pop[[R]]{{$}}
889 ; NO-SIMD128-NOT: f32x4
890 ; SIMD128-NEXT: .functype replace_v4f32 (v128, f32) -> (v128){{$}}
891 ; SIMD128-NEXT: f32x4.replace_lane $push[[R:[0-9]+]]=, $0, 2, $1{{$}}
892 ; SIMD128-NEXT: return $pop[[R]]{{$}}
899 ; NO-SIMD128-NOT: f32x4
900 ; SIMD128-NEXT: .functype replace_var_v4f32 (v128, i32, f32) -> (v128){{$}}
901 ; SIMD128-NEXT: global.get $push[[L0:[0-9]+]]=, __stack_pointer{{$}}
902 ; SIMD128-NEXT: i32.const $push[[L1:[0-9]+]]=, 16{{$}}
903 ; SIMD128-NEXT: i32.sub $push[[L2:[0-9]+]]=, $pop[[L0]], $pop[[L1]]{{$}}
904 ; SIMD128-NEXT: local.tee $push[[L3:[0-9]+]]=, $3=, $pop[[L2]]{{$}}
905 ; SIMD128-NEXT: v128.store 0($pop[[L3]]), $0{{$}}
906 ; SIMD128-NEXT: i32.const $push[[L2:[0-9]+]]=, 3{{$}}
907 ; SIMD128-NEXT: i32.and $push[[L5:[0-9]+]]=, $1, $pop[[L2]]{{$}}
908 ; SIMD128-NEXT: i32.const $push[[L6:[0-9]+]]=, 2{{$}}
909 ; SIMD128-NEXT: i32.shl $push[[L7:[0-9]+]]=, $pop[[L5]], $pop[[L6]]{{$}}
910 ; SIMD128-NEXT: i32.or $push[[L2:[0-9]+]]=, $3, $pop[[L7]]{{$}}
911 ; SIMD128-NEXT: f32.store 0($pop[[L2]]), $2{{$}}
912 ; SIMD128-NEXT: v128.load $push[[R:[0-9]+]]=, 0($3){{$}}
913 ; SIMD128-NEXT: return $pop[[R]]{{$}}
920 ; NO-SIMD128-NOT: f32x4
921 ; SIMD128-NEXT: .functype replace_zero_v4f32 (v128, f32) -> (v128){{$}}
922 ; SIMD128-NEXT: f32x4.replace_lane $push[[R:[0-9]+]]=, $0, 0, $1{{$}}
923 ; SIMD128-NEXT: return $pop[[R]]{{$}}
930 ; NO-SIMD128-NOT: i8x16
931 ; SIMD128-NEXT: .functype shuffle_v4f32 (v128, v128) -> (v128){{$}}
932 ; SIMD128-NEXT: i8x16.shuffle $push[[R:[0-9]+]]=, $0, $1,
933 ; SIMD128-SAME: 0, 1, 2, 3, 20, 21, 22, 23, 8, 9, 10, 11, 28, 29, 30, 31{{$}}
934 ; SIMD128-NEXT: return $pop[[R]]{{$}}
942 ; NO-SIMD128-NOT: i8x16
943 ; SIMD128-NEXT: .functype shuffle_undef_v4f32 (v128, v128) -> (v128){{$}}
944 ; SIMD128-NEXT: i8x16.shuffle $push[[R:[0-9]+]]=, $0, $0,
945 ; SIMD128-SAME: 4, 5, 6, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0{{$}}
946 ; SIMD128-NEXT: return $pop[[R]]{{$}}
954 ; NO-SIMD128-NOT: f32x4
955 ; SIMD128-NEXT: .functype build_v4f32 (f32, f32, f32, f32) -> (v128){{$}}
956 ; SIMD128-NEXT: f32x4.splat $push[[L0:[0-9]+]]=, $0{{$}}
957 ; SIMD128-NEXT: f32x4.replace_lane $push[[L1:[0-9]+]]=, $pop[[L0]], 1, $1{{$}}
958 ; SIMD128-NEXT: f32x4.replace_lane $push[[L2:[0-9]+]]=, $pop[[L1]], 2, $2{{$}}
959 ; SIMD128-NEXT: f32x4.replace_lane $push[[R:[0-9]+]]=, $pop[[L2]], 3, $3{{$}}
960 ; SIMD128-NEXT: return $pop[[R]]{{$}}
973 ; NO-SIMD128-NOT: f64x2
974 ; SIMD128-NEXT: .functype const_v2f64 () -> (v128){{$}}
975 ; SIMD128-NEXT: v128.const $push[[R:[0-9]+]]=, 0x1.60504030201p-911, 0x1.e0d0c0b0a0908p-783{{$}}
976 ; SIMD128-NEXT: return $pop[[R]]{{$}}
982 ; NO-SIMD128-NOT: f64x2
983 ; SIMD128-NEXT: .functype splat_v2f64 (f64) -> (v128){{$}}
984 ; SIMD128-NEXT: f64x2.splat $push[[R:[0-9]+]]=, $0{{$}}
985 ; SIMD128-NEXT: return $pop[[R]]{{$}}
993 ; SIMD128: v128.const $push0=, 0x1.5p5, 0x1.5p5{{$}}
999 ; NO-SIMD128-NOT: f64x2
1000 ; SIMD128-NEXT: .functype extract_v2f64 (v128) -> (f64){{$}}
1001 ; SIMD128-NEXT: f64x2.extract_lane $push[[R:[0-9]+]]=, $0, 1{{$}}
1002 ; SIMD128-NEXT: return $pop[[R]]{{$}}
1009 ; NO-SIMD128-NOT: i62x2
1010 ; SIMD128-NEXT: .functype extract_var_v2f64 (v128, i32) -> (f64){{$}}
1011 ; SIMD128-NEXT: global.get $push[[L0:[0-9]+]]=, __stack_pointer{{$}}
1012 ; SIMD128-NEXT: i32.const $push[[L1:[0-9]+]]=, 16{{$}}
1013 ; SIMD128-NEXT: i32.sub $push[[L2:[0-9]+]]=, $pop[[L0]], $pop[[L1]]{{$}}
1014 ; SIMD128-NEXT: local.tee $push[[L3:[0-9]+]]=, $2=, $pop[[L2]]{{$}}
1015 ; SIMD128-NEXT: v128.store 0($pop[[L3]]), $0{{$}}
1016 ; SIMD128-NEXT: i32.const $push[[L2:[0-9]+]]=, 1{{$}}
1017 ; SIMD128-NEXT: i32.and $push[[L5:[0-9]+]]=, $1, $pop[[L2]]{{$}}
1018 ; SIMD128-NEXT: i32.const $push[[L6:[0-9]+]]=, 3{{$}}
1019 ; SIMD128-NEXT: i32.shl $push[[L7:[0-9]+]]=, $pop[[L5]], $pop[[L6]]{{$}}
1020 ; SIMD128-NEXT: i32.or $push[[L2:[0-9]+]]=, $2, $pop[[L7]]{{$}}
1021 ; SIMD128-NEXT: f64.load $push[[R:[0-9]+]]=, 0($pop[[L2]]){{$}}
1022 ; SIMD128-NEXT: return $pop[[R]]{{$}}
1029 ; NO-SIMD128-NOT: f64x2
1030 ; SIMD128-NEXT: .functype extract_zero_v2f64 (v128) -> (f64){{$}}
1031 ; SIMD128-NEXT: f64x2.extract_lane $push[[R:[0-9]+]]=, $0, 0{{$}}
1032 ; SIMD128-NEXT: return $pop[[R]]{{$}}
1039 ; NO-SIMD128-NOT: f64x2
1040 ; SIMD128-NEXT: .functype replace_v2f64 (v128, f64) -> (v128){{$}}
1041 ; SIMD128-NEXT: f64x2.replace_lane $push[[R:[0-9]+]]=, $0, 0, $1{{$}}
1042 ; SIMD128-NEXT: return $pop[[R]]{{$}}
1049 ; NO-SIMD128-NOT: f64x2
1050 ; SIMD128-NEXT: .functype replace_var_v2f64 (v128, i32, f64) -> (v128){{$}}
1051 ; SIMD128-NEXT: global.get $push[[L0:[0-9]+]]=, __stack_pointer{{$}}
1052 ; SIMD128-NEXT: i32.const $push[[L1:[0-9]+]]=, 16{{$}}
1053 ; SIMD128-NEXT: i32.sub $push[[L2:[0-9]+]]=, $pop[[L0]], $pop[[L1]]{{$}}
1054 ; SIMD128-NEXT: local.tee $push[[L3:[0-9]+]]=, $3=, $pop[[L2]]{{$}}
1055 ; SIMD128-NEXT: v128.store 0($pop[[L3]]), $0{{$}}
1056 ; SIMD128-NEXT: i32.const $push[[L2:[0-9]+]]=, 1{{$}}
1057 ; SIMD128-NEXT: i32.and $push[[L5:[0-9]+]]=, $1, $pop[[L2]]{{$}}
1058 ; SIMD128-NEXT: i32.const $push[[L6:[0-9]+]]=, 3{{$}}
1059 ; SIMD128-NEXT: i32.shl $push[[L7:[0-9]+]]=, $pop[[L5]], $pop[[L6]]{{$}}
1060 ; SIMD128-NEXT: i32.or $push[[L2:[0-9]+]]=, $3, $pop[[L7]]{{$}}
1061 ; SIMD128-NEXT: f64.store 0($pop[[L2]]), $2{{$}}
1062 ; SIMD128-NEXT: v128.load $push[[R:[0-9]+]]=, 0($3){{$}}
1063 ; SIMD128-NEXT: return $pop[[R]]{{$}}
1070 ; NO-SIMD128-NOT: f64x2
1071 ; SIMD128-NEXT: .functype replace_zero_v2f64 (v128, f64) -> (v128){{$}}
1072 ; SIMD128-NEXT: f64x2.replace_lane $push[[R:[0-9]+]]=, $0, 0, $1{{$}}
1073 ; SIMD128-NEXT: return $pop[[R]]{{$}}
1080 ; NO-SIMD128-NOT: i8x16
1081 ; SIMD128-NEXT: .functype shuffle_v2f64 (v128, v128) -> (v128){{$}}
1082 ; SIMD128-NEXT: i8x16.shuffle $push[[R:[0-9]+]]=, $0, $1,
1083 ; SIMD128-SAME: 0, 1, 2, 3, 4, 5, 6, 7, 24, 25, 26, 27, 28, 29, 30, 31{{$}}
1084 ; SIMD128-NEXT: return $pop[[R]]{{$}}
1092 ; NO-SIMD128-NOT: i8x16
1093 ; SIMD128-NEXT: .functype shuffle_undef_v2f64 (v128, v128) -> (v128){{$}}
1094 ; SIMD128-NEXT: i8x16.shuffle $push[[R:[0-9]+]]=, $0, $0,
1095 ; SIMD128-SAME: 8, 9, 10, 11, 12, 13, 14, 15, 0, 0, 0, 0, 0, 0, 0, 0{{$}}
1096 ; SIMD128-NEXT: return $pop[[R]]{{$}}
1104 ; NO-SIMD128-NOT: f64x2
1105 ; SIMD128-NEXT: .functype build_v2f64 (f64, f64) -> (v128){{$}}
1106 ; SIMD128-NEXT: f64x2.splat $push[[L0:[0-9]+]]=, $0{{$}}
1107 ; SIMD128-NEXT: f64x2.replace_lane $push[[R:[0-9]+]]=, $pop[[L0]], 1, $1{{$}}
1108 ; SIMD128-NEXT: return $pop[[R]]{{$}}