[all-commits] [llvm/llvm-project] 69ee65: [LoopVectorize] Take vscale into account when deci...

david-arm via All-commits all-commits at lists.llvm.org
Mon Apr 17 03:50:46 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 69ee6533131d030bc724193bfc1b91fcc99a81d2
      https://github.com/llvm/llvm-project/commit/69ee6533131d030bc724193bfc1b91fcc99a81d2
  Author: David Sherwood <david.sherwood at arm.com>
  Date:   2023-04-17 (Mon, 17 Apr 2023)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
    M llvm/test/Transforms/LoopVectorize/AArch64/runtime-check-size-based-threshold.ll
    A llvm/test/Transforms/LoopVectorize/AArch64/sve-epilog-vect-vscale-tune.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/sve-fneg.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/type-shrinkage-zext-costs.ll

  Log Message:
  -----------
  [LoopVectorize] Take vscale into account when deciding to create epilogues

In LoopVectorizationCostModel::isEpilogueVectorizationProfitable we
check to see if the chosen main vector loop VF >= 16. If so, we
decide to create a vector epilogue loop. However, this doesn't
take VScaleForTuning into account because we could be targeting a
CPU where vscale > 1, and hence the runtime VF would be a multiple
of the known minimum value.

This patch multiplies scalable VFs by VScaleForTuning and several
tests have been updated that now produce vector epilogues.

Differential Revision: https://reviews.llvm.org/D147522




More information about the All-commits mailing list