[PATCH] D59710: [SLP] remove lower limit for forming reduction patterns
Alexey Bataev via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Nov 6 07:59:27 PST 2019
ABataev added inline comments.
================
Comment at: llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp:7135
+ for (auto *V : LastInst->operand_values()) {
+ Changed |= vectorizeRootInstruction(nullptr, V, BB, R, TTI, 2);
+ }
----------------
The only problem with this solution that it may increase the compiler time. It would be good to limit it strictly only to try to vectorize 2-vals reductions. Thoughts?
================
Comment at: llvm/test/Transforms/SLPVectorizer/X86/hadd.ll:93
+; SLM-NEXT: [[R01:%.*]] = shufflevector <2 x i64> [[BIN_RDX2]], <2 x i64> [[BIN_RDX]], <2 x i32> <i32 0, i32 2>
; SLM-NEXT: ret <2 x i64> [[R01]]
;
----------------
RKSimon wrote:
> SLM has really poor v2i64 add costs - so I'm surprised this happened - we may need SLM special handling in getArithmeticReductionCost?
I think it is the problem of the cost model, maybe SLM cost model is not aware of very expensive 2i64 add cost?
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D59710/new/
https://reviews.llvm.org/D59710
More information about the llvm-commits
mailing list