@@ -533,13 +533,12 @@ define double @vpreduce_ord_fadd_fpext_vp_fpext_nxv1f32_nxv1f64(double %s, <vsca
533
533
define float @vpreduce_fadd_fpext_nxv1f16_nxv1f32 (float %s , <vscale x 1 x half > %v , <vscale x 1 x i1 > %m , i32 zeroext %evl ) {
534
534
; CHECK-LABEL: vpreduce_fadd_fpext_nxv1f16_nxv1f32:
535
535
; CHECK: # %bb.0:
536
+ ; CHECK-NEXT: vsetivli zero, 1, e32, m1, ta, ma
537
+ ; CHECK-NEXT: vfmv.s.f v9, fa0
536
538
; CHECK-NEXT: vsetvli zero, a0, e16, mf4, ta, ma
537
- ; CHECK-NEXT: vfwcvt.f.f.v v9, v8
538
- ; CHECK-NEXT: vsetivli zero, 1, e32, mf2, ta, ma
539
- ; CHECK-NEXT: vfmv.s.f v8, fa0
540
- ; CHECK-NEXT: vsetvli zero, a0, e32, mf2, ta, ma
541
- ; CHECK-NEXT: vfredusum.vs v8, v9, v8, v0.t
542
- ; CHECK-NEXT: vfmv.f.s fa0, v8
539
+ ; CHECK-NEXT: vfwredusum.vs v9, v8, v9, v0.t
540
+ ; CHECK-NEXT: vsetvli zero, zero, e32, mf2, ta, ma
541
+ ; CHECK-NEXT: vfmv.f.s fa0, v9
543
542
; CHECK-NEXT: ret
544
543
%w = fpext <vscale x 1 x half > %v to <vscale x 1 x float >
545
544
%r = call reassoc float @llvm.vp.reduce.fadd (float %s , <vscale x 1 x float > %w , <vscale x 1 x i1 > %m , i32 %evl )
@@ -549,13 +548,12 @@ define float @vpreduce_fadd_fpext_nxv1f16_nxv1f32(float %s, <vscale x 1 x half>
549
548
define float @vpreduce_ord_fadd_fpext_nxv1f16_nxv1f32 (float %s , <vscale x 1 x half > %v , <vscale x 1 x i1 > %m , i32 zeroext %evl ) {
550
549
; CHECK-LABEL: vpreduce_ord_fadd_fpext_nxv1f16_nxv1f32:
551
550
; CHECK: # %bb.0:
551
+ ; CHECK-NEXT: vsetivli zero, 1, e32, m1, ta, ma
552
+ ; CHECK-NEXT: vfmv.s.f v9, fa0
552
553
; CHECK-NEXT: vsetvli zero, a0, e16, mf4, ta, ma
553
- ; CHECK-NEXT: vfwcvt.f.f.v v9, v8
554
- ; CHECK-NEXT: vsetivli zero, 1, e32, mf2, ta, ma
555
- ; CHECK-NEXT: vfmv.s.f v8, fa0
556
- ; CHECK-NEXT: vsetvli zero, a0, e32, mf2, ta, ma
557
- ; CHECK-NEXT: vfredosum.vs v8, v9, v8, v0.t
558
- ; CHECK-NEXT: vfmv.f.s fa0, v8
554
+ ; CHECK-NEXT: vfwredosum.vs v9, v8, v9, v0.t
555
+ ; CHECK-NEXT: vsetvli zero, zero, e32, mf2, ta, ma
556
+ ; CHECK-NEXT: vfmv.f.s fa0, v9
559
557
; CHECK-NEXT: ret
560
558
%w = fpext <vscale x 1 x half > %v to <vscale x 1 x float >
561
559
%r = call float @llvm.vp.reduce.fadd (float %s , <vscale x 1 x float > %w , <vscale x 1 x i1 > %m , i32 %evl )
@@ -565,13 +563,12 @@ define float @vpreduce_ord_fadd_fpext_nxv1f16_nxv1f32(float %s, <vscale x 1 x ha
565
563
define double @vpreduce_fadd_fpext_nxv1f32_nxv1f64 (double %s , <vscale x 1 x float > %v , <vscale x 1 x i1 > %m , i32 zeroext %evl ) {
566
564
; CHECK-LABEL: vpreduce_fadd_fpext_nxv1f32_nxv1f64:
567
565
; CHECK: # %bb.0:
568
- ; CHECK-NEXT: vsetvli zero, a0, e32, mf2, ta, ma
569
- ; CHECK-NEXT: vfwcvt.f.f.v v9, v8
570
566
; CHECK-NEXT: vsetivli zero, 1, e64, m1, ta, ma
571
- ; CHECK-NEXT: vfmv.s.f v8, fa0
572
- ; CHECK-NEXT: vsetvli zero, a0, e64, m1, ta, ma
573
- ; CHECK-NEXT: vfredusum.vs v8, v9, v8, v0.t
574
- ; CHECK-NEXT: vfmv.f.s fa0, v8
567
+ ; CHECK-NEXT: vfmv.s.f v9, fa0
568
+ ; CHECK-NEXT: vsetvli zero, a0, e32, mf2, ta, ma
569
+ ; CHECK-NEXT: vfwredusum.vs v9, v8, v9, v0.t
570
+ ; CHECK-NEXT: vsetvli zero, zero, e64, m1, ta, ma
571
+ ; CHECK-NEXT: vfmv.f.s fa0, v9
575
572
; CHECK-NEXT: ret
576
573
%w = fpext <vscale x 1 x float > %v to <vscale x 1 x double >
577
574
%r = call reassoc double @llvm.vp.reduce.fadd (double %s , <vscale x 1 x double > %w , <vscale x 1 x i1 > %m , i32 %evl )
@@ -581,13 +578,12 @@ define double @vpreduce_fadd_fpext_nxv1f32_nxv1f64(double %s, <vscale x 1 x floa
581
578
define double @vpreduce_ord_fadd_fpext_nxv1f32_nxv1f64 (double %s , <vscale x 1 x float > %v , <vscale x 1 x i1 > %m , i32 zeroext %evl ) {
582
579
; CHECK-LABEL: vpreduce_ord_fadd_fpext_nxv1f32_nxv1f64:
583
580
; CHECK: # %bb.0:
584
- ; CHECK-NEXT: vsetvli zero, a0, e32, mf2, ta, ma
585
- ; CHECK-NEXT: vfwcvt.f.f.v v9, v8
586
581
; CHECK-NEXT: vsetivli zero, 1, e64, m1, ta, ma
587
- ; CHECK-NEXT: vfmv.s.f v8, fa0
588
- ; CHECK-NEXT: vsetvli zero, a0, e64, m1, ta, ma
589
- ; CHECK-NEXT: vfredosum.vs v8, v9, v8, v0.t
590
- ; CHECK-NEXT: vfmv.f.s fa0, v8
582
+ ; CHECK-NEXT: vfmv.s.f v9, fa0
583
+ ; CHECK-NEXT: vsetvli zero, a0, e32, mf2, ta, ma
584
+ ; CHECK-NEXT: vfwredosum.vs v9, v8, v9, v0.t
585
+ ; CHECK-NEXT: vsetvli zero, zero, e64, m1, ta, ma
586
+ ; CHECK-NEXT: vfmv.f.s fa0, v9
591
587
; CHECK-NEXT: ret
592
588
%w = fpext <vscale x 1 x float > %v to <vscale x 1 x double >
593
589
%r = call double @llvm.vp.reduce.fadd (double %s , <vscale x 1 x double > %w , <vscale x 1 x i1 > %m , i32 %evl )
0 commit comments