[PATCH] D137285: [LV] Account for minimum vscale when rejecting scalable vectorization of short loops
    David Sherwood via Phabricator via llvm-commits 
    llvm-commits at lists.llvm.org
       
    Tue Dec  6 06:49:42 PST 2022
    
    
  
david-arm added inline comments.
================
Comment at: llvm/lib/Transforms/Vectorize/LoopVectorize.cpp:5207
+  unsigned WidestRegisterMinEC = MaxVectorElementCount.getKnownMinValue();
+  if (MaxVectorElementCount.isScalable()) {
+    if (TheFunction->hasFnAttribute(Attribute::VScaleRange)) {
----------------
nit: I think you can combine these two if statements into one, i.e.
  if (MaxVectorElementCount.isScalable() && TheFunction->hasFnAttribute(Attribute::VScaleRange)) {
    auto Attr = TheFunction->getFnAttribute(Attribute::VScaleRange);
    auto Min = Attr.getVScaleRangeMin();
    WidestRegisterMinEC *= Min;
  }
================
Comment at: llvm/test/Transforms/LoopVectorize/RISCV/short-trip-count.ll:4
 
 ; FIXME: Using a <4 x i32> would be strictly better than tail folded
 ; scalable vectorization in this case.
----------------
I think this comment is no longer valid.
================
Comment at: llvm/test/Transforms/LoopVectorize/RISCV/short-trip-count.ll:6
 ; scalable vectorization in this case.
 define void @small_trip_count(i32* nocapture %a) nounwind vscale_range(4,1024) {
 ; CHECK-LABEL: @small_trip_count(
----------------
Perhaps it's better to have two tests now - one with min vscale = 4, and one with min vscale = 1, so that you can demonstrate the expected behaviour of using tail-folded loops for the latter as well?
Repository:
  rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D137285/new/
https://reviews.llvm.org/D137285
    
    
More information about the llvm-commits
mailing list