Skip to content

Commit fa8b737

Browse files
committed
[SLP][RISCV] Add test for 3 element build vector feeding reduce
Our costs for build vectors are currently a bit off which inhibits vectorization. Fix forthcoming.
1 parent aa60a3e commit fa8b737

File tree

1 file changed

+19
-0
lines changed

1 file changed

+19
-0
lines changed

llvm/test/Transforms/SLPVectorizer/RISCV/vec3-base.ll

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -793,6 +793,25 @@ entry:
793793
ret double %add
794794
}
795795

796+
define float @reduce_fadd_after_fmul_of_buildvec(float %a, float %b, float %c) {
797+
; CHECK-LABEL: @reduce_fadd_after_fmul_of_buildvec(
798+
; CHECK-NEXT: [[MUL_0:%.*]] = fmul fast float [[A:%.*]], 1.000000e+01
799+
; CHECK-NEXT: [[MUL_1:%.*]] = fmul fast float [[B:%.*]], 1.000000e+01
800+
; CHECK-NEXT: [[MUL_2:%.*]] = fmul fast float [[C:%.*]], 1.000000e+01
801+
; CHECK-NEXT: [[ADD_0:%.*]] = fadd fast float [[MUL_0]], [[MUL_1]]
802+
; CHECK-NEXT: [[ADD_1:%.*]] = fadd fast float [[ADD_0]], [[MUL_2]]
803+
; CHECK-NEXT: ret float [[ADD_1]]
804+
;
805+
%mul.0 = fmul fast float %a, 10.0
806+
%mul.1 = fmul fast float %b, 10.0
807+
%mul.2 = fmul fast float %c, 10.0
808+
809+
%add.0 = fadd fast float %mul.0, %mul.1
810+
%add.1 = fadd fast float %add.0, %mul.2
811+
ret float %add.1
812+
}
813+
814+
796815
declare float @llvm.fmuladd.f32(float, float, float)
797816

798817
declare double @llvm.fmuladd.f64(double, double, double)

0 commit comments

Comments
 (0)