[PATCH] D100763: [LoopVectorize] Don't create unnecessary vscale intrinsic calls
David Sherwood via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue Apr 20 01:30:24 PDT 2021
david-arm added inline comments.
================
Comment at: llvm/lib/Transforms/Vectorize/LoopVectorize.cpp:1116
+ ConstantInt::get(Step->getType(), StepVal * VF.getKnownMinValue());
+ return VF.isScalable() ? B.CreateVScale(NewStep) : NewStep;
}
----------------
frasercrmck wrote:
> frasercrmck wrote:
> > Not that this is wrong, but would it be inappropriate to make `CreateVScale` detect a zero step and return zero?
> Sorry I just realised that's what you've done. Do we need to make this change, then?
It's not really necessary as the end result is the same - I was just trying to avoid the compiler doing more work for the Step=0 case, i.e. the creation of a ConstantInt, etc. I noticed there are a few places in the vectoriser where we call this function with a Step of 0 - it happens when widening a PHI instruction or vectorising induction variables.
If you prefer I can just revert this code?
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D100763/new/
https://reviews.llvm.org/D100763
More information about the llvm-commits
mailing list