@@ -528,6 +528,46 @@ define <4 x i32> @trunc_sat_u_v4i32(<4 x float> %x) {
528
528
; ==============================================================================
529
529
; 2 x i64
530
530
; ==============================================================================
531
+ ; CHECK-LABEL: widen_low_s_v2i64:
532
+ ; SIMD128-NEXT: .functype widen_low_s_v2i64 (v128) -> (v128){{$}}
533
+ ; SIMD128-NEXT: i64x2.widen_low_i32x4_s $push[[R:[0-9]+]]=, $0{{$}}
534
+ ; SIMD128-NEXT: return $pop[[R]]{{$}}
535
+ declare <2 x i64 > @llvm.wasm.widen.low.signed (<4 x i32 >)
536
+ define <2 x i64 > @widen_low_s_v2i64 (<4 x i32 > %x ) {
537
+ %a = call <2 x i64 > @llvm.wasm.widen.low.signed (<4 x i32 > %x )
538
+ ret <2 x i64 > %a
539
+ }
540
+
541
+ ; CHECK-LABEL: widen_high_s_v2i64:
542
+ ; SIMD128-NEXT: .functype widen_high_s_v2i64 (v128) -> (v128){{$}}
543
+ ; SIMD128-NEXT: i64x2.widen_high_i32x4_s $push[[R:[0-9]+]]=, $0{{$}}
544
+ ; SIMD128-NEXT: return $pop[[R]]{{$}}
545
+ declare <2 x i64 > @llvm.wasm.widen.high.signed (<4 x i32 >)
546
+ define <2 x i64 > @widen_high_s_v2i64 (<4 x i32 > %x ) {
547
+ %a = call <2 x i64 > @llvm.wasm.widen.high.signed (<4 x i32 > %x )
548
+ ret <2 x i64 > %a
549
+ }
550
+
551
+ ; CHECK-LABEL: widen_low_u_v2i64:
552
+ ; SIMD128-NEXT: .functype widen_low_u_v2i64 (v128) -> (v128){{$}}
553
+ ; SIMD128-NEXT: i64x2.widen_low_i32x4_u $push[[R:[0-9]+]]=, $0{{$}}
554
+ ; SIMD128-NEXT: return $pop[[R]]{{$}}
555
+ declare <2 x i64 > @llvm.wasm.widen.low.unsigned (<4 x i32 >)
556
+ define <2 x i64 > @widen_low_u_v2i64 (<4 x i32 > %x ) {
557
+ %a = call <2 x i64 > @llvm.wasm.widen.low.unsigned (<4 x i32 > %x )
558
+ ret <2 x i64 > %a
559
+ }
560
+
561
+ ; CHECK-LABEL: widen_high_u_v2i64:
562
+ ; SIMD128-NEXT: .functype widen_high_u_v2i64 (v128) -> (v128){{$}}
563
+ ; SIMD128-NEXT: i64x2.widen_high_i32x4_u $push[[R:[0-9]+]]=, $0{{$}}
564
+ ; SIMD128-NEXT: return $pop[[R]]{{$}}
565
+ declare <2 x i64 > @llvm.wasm.widen.high.unsigned (<4 x i32 >)
566
+ define <2 x i64 > @widen_high_u_v2i64 (<4 x i32 > %x ) {
567
+ %a = call <2 x i64 > @llvm.wasm.widen.high.unsigned (<4 x i32 > %x )
568
+ ret <2 x i64 > %a
569
+ }
570
+
531
571
; CHECK-LABEL: extmul_low_s_v2i64:
532
572
; SIMD128-NEXT: .functype extmul_low_s_v2i64 (v128, v128) -> (v128){{$}}
533
573
; SIMD128-NEXT: i64x2.extmul_low_i32x4_s $push[[R:[0-9]+]]=, $0, $1{{$}}
0 commit comments