'Widen' recipe are only used when actual vector values are generated.
Fix tryToWidenCall to do not create VPWidenCallRecipes for scalar vector
factors.
This was exposed by D123720, because the widened recipes are considered
vector users.
Paths
| Differential D124718
[VPlan] Do not create VPWidenCall recipes for scalar vector factors. ClosedPublic Authored by fhahn on Apr 30 2022, 12:46 PM.
Details Summary 'Widen' recipe are only used when actual vector values are generated. This was exposed by D123720, because the widened recipes are considered
Diff Detail
Event TimelineComment Actions Looks good to me, adding a couple of nits.
This revision is now accepted and ready to land.May 2 2022, 4:50 AM Closed by commit rG0ef8ca6d88aa: [VPlan] Do not create VPWidenCall recipes for scalar vector factors. (authored by fhahn). · Explain WhyMay 2 2022, 11:47 AM This revision was automatically updated to reflect the committed changes. Comment Actions Thanks Ayal!
Revision Contents
Diff 426468 llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
llvm/test/Transforms/LoopVectorize/AArch64/strict-fadd.ll
llvm/test/Transforms/LoopVectorize/interleave-with-call.ll
|
Early exit here as done in tryToWidenMemory's willWiden?
(Perhaps recipe creation for VF.isScalar() should be handled more systematically rather than individually by each try-to-widen/will-widen.)