[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