@@ -309,6 +309,26 @@ define <8 x i16> @extmul_high_u_v8i16(<16 x i8> %x, <16 x i8> %y) {
309
309
ret <8 x i16 > %a
310
310
}
311
311
312
+ ; CHECK-LABEL: extadd_pairwise_s_v8i16:
313
+ ; SIMD128-NEXT: .functype extadd_pairwise_s_v8i16 (v128) -> (v128){{$}}
314
+ ; SIMD128-NEXT: i16x8.extadd_pairwise_i8x16_s $push[[R:[0-9]+]]=, $0{{$}}
315
+ ; SIMD128-NEXT: return $pop[[R]]{{$}}
316
+ declare <8 x i16 > @llvm.wasm.extadd.pairwise.signed.v8i16 (<16 x i8 >)
317
+ define <8 x i16 > @extadd_pairwise_s_v8i16 (<16 x i8 > %x ) {
318
+ %a = call <8 x i16 > @llvm.wasm.extadd.pairwise.signed.v8i16 (<16 x i8 > %x )
319
+ ret <8 x i16 > %a
320
+ }
321
+
322
+ ; CHECK-LABEL: extadd_pairwise_u_v8i16:
323
+ ; SIMD128-NEXT: .functype extadd_pairwise_u_v8i16 (v128) -> (v128){{$}}
324
+ ; SIMD128-NEXT: i16x8.extadd_pairwise_i8x16_u $push[[R:[0-9]+]]=, $0{{$}}
325
+ ; SIMD128-NEXT: return $pop[[R]]{{$}}
326
+ declare <8 x i16 > @llvm.wasm.extadd.pairwise.unsigned.v8i16 (<16 x i8 >)
327
+ define <8 x i16 > @extadd_pairwise_u_v8i16 (<16 x i8 > %x ) {
328
+ %a = call <8 x i16 > @llvm.wasm.extadd.pairwise.unsigned.v8i16 (<16 x i8 > %x )
329
+ ret <8 x i16 > %a
330
+ }
331
+
312
332
; CHECK-LABEL: any_v8i16:
313
333
; SIMD128-NEXT: .functype any_v8i16 (v128) -> (i32){{$}}
314
334
; SIMD128-NEXT: i16x8.any_true $push[[R:[0-9]+]]=, $0{{$}}
@@ -449,6 +469,27 @@ define <4 x i32> @extmul_high_u_v4i32(<8 x i16> %x, <8 x i16> %y) {
449
469
ret <4 x i32 > %a
450
470
}
451
471
472
+ ; CHECK-LABEL: extadd_pairwise_s_v4i32:
473
+ ; SIMD128-NEXT: .functype extadd_pairwise_s_v4i32 (v128) -> (v128){{$}}
474
+ ; SIMD128-NEXT: i32x4.extadd_pairwise_i16x8_s $push[[R:[0-9]+]]=, $0{{$}}
475
+ ; SIMD128-NEXT: return $pop[[R]]{{$}}
476
+ declare <4 x i32 > @llvm.wasm.extadd.pairwise.signed.v4i32 (<8 x i16 >)
477
+ define <4 x i32 > @extadd_pairwise_s_v4i32 (<8 x i16 > %x ) {
478
+ %a = call <4 x i32 > @llvm.wasm.extadd.pairwise.signed.v4i32 (<8 x i16 > %x )
479
+ ret <4 x i32 > %a
480
+ }
481
+
482
+ ; CHECK-LABEL: extadd_pairwise_u_v4i32:
483
+ ; SIMD128-NEXT: .functype extadd_pairwise_u_v4i32 (v128) -> (v128){{$}}
484
+ ; SIMD128-NEXT: i32x4.extadd_pairwise_i16x8_u $push[[R:[0-9]+]]=, $0{{$}}
485
+ ; SIMD128-NEXT: return $pop[[R]]{{$}}
486
+ declare <4 x i32 > @llvm.wasm.extadd.pairwise.unsigned.v4i32 (<8 x i16 >)
487
+ define <4 x i32 > @extadd_pairwise_u_v4i32 (<8 x i16 > %x ) {
488
+ %a = call <4 x i32 > @llvm.wasm.extadd.pairwise.unsigned.v4i32 (<8 x i16 > %x )
489
+ ret <4 x i32 > %a
490
+ }
491
+
492
+
452
493
; CHECK-LABEL: any_v4i32:
453
494
; SIMD128-NEXT: .functype any_v4i32 (v128) -> (i32){{$}}
454
495
; SIMD128-NEXT: i32x4.any_true $push[[R:[0-9]+]]=, $0{{$}}
0 commit comments