[llvm] fa8b737 - [SLP][RISCV] Add test for 3 element build vector feeding reduce
Philip Reames via llvm-commits
llvm-commits at lists.llvm.org
Wed Sep 11 15:57:00 PDT 2024
Author: Philip Reames
Date: 2024-09-11T15:56:53-07:00
New Revision: fa8b737a81c310b297d1120dae1f915c63486498
URL: https://github.com/llvm/llvm-project/commit/fa8b737a81c310b297d1120dae1f915c63486498
DIFF: https://github.com/llvm/llvm-project/commit/fa8b737a81c310b297d1120dae1f915c63486498.diff
LOG: [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.
Added:
Modified:
llvm/test/Transforms/SLPVectorizer/RISCV/vec3-base.ll
Removed:
################################################################################
diff --git a/llvm/test/Transforms/SLPVectorizer/RISCV/vec3-base.ll b/llvm/test/Transforms/SLPVectorizer/RISCV/vec3-base.ll
index faffe16f8e9cd9..6dd9242989b627 100644
--- a/llvm/test/Transforms/SLPVectorizer/RISCV/vec3-base.ll
+++ b/llvm/test/Transforms/SLPVectorizer/RISCV/vec3-base.ll
@@ -793,6 +793,25 @@ entry:
ret double %add
}
+define float @reduce_fadd_after_fmul_of_buildvec(float %a, float %b, float %c) {
+; CHECK-LABEL: @reduce_fadd_after_fmul_of_buildvec(
+; CHECK-NEXT: [[MUL_0:%.*]] = fmul fast float [[A:%.*]], 1.000000e+01
+; CHECK-NEXT: [[MUL_1:%.*]] = fmul fast float [[B:%.*]], 1.000000e+01
+; CHECK-NEXT: [[MUL_2:%.*]] = fmul fast float [[C:%.*]], 1.000000e+01
+; CHECK-NEXT: [[ADD_0:%.*]] = fadd fast float [[MUL_0]], [[MUL_1]]
+; CHECK-NEXT: [[ADD_1:%.*]] = fadd fast float [[ADD_0]], [[MUL_2]]
+; CHECK-NEXT: ret float [[ADD_1]]
+;
+ %mul.0 = fmul fast float %a, 10.0
+ %mul.1 = fmul fast float %b, 10.0
+ %mul.2 = fmul fast float %c, 10.0
+
+ %add.0 = fadd fast float %mul.0, %mul.1
+ %add.1 = fadd fast float %add.0, %mul.2
+ ret float %add.1
+}
+
+
declare float @llvm.fmuladd.f32(float, float, float)
declare double @llvm.fmuladd.f64(double, double, double)
More information about the llvm-commits
mailing list