[all-commits] [llvm/llvm-project] ee7521: [AArch64] Cost-model i8 vector loads/stores

sjoerdmeijer via All-commits all-commits at lists.llvm.org
Mon Jul 5 03:25:30 PDT 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: ee752134ace3418ed088c86aa62111667eba6776
      https://github.com/llvm/llvm-project/commit/ee752134ace3418ed088c86aa62111667eba6776
  Author: Sjoerd Meijer <sjoerd.meijer at arm.com>
  Date:   2021-07-05 (Mon, 05 Jul 2021)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp
    M llvm/test/Analysis/CostModel/AArch64/cast.ll
    M llvm/test/Analysis/CostModel/AArch64/mem-op-cost-model.ll
    M llvm/test/Analysis/CostModel/AArch64/store.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/extend-vectorization-factor-for-unprofitable-memops.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/interleaved-vs-scalar.ll
    M llvm/test/Transforms/SLPVectorizer/AArch64/gather-root.ll
    M llvm/test/Transforms/SLPVectorizer/AArch64/loadi8.ll

  Log Message:
  -----------
  [AArch64] Cost-model i8 vector loads/stores

Loads of <4 x i8> vectors were modeled as extremely expensive. And while we
don't have a load instruction that supports this, it isn't that expensive to
create a vector of i8 elements. The codegen for this was fixed/optimised in
D105110. This now tweaks the cost model and enables SLP vectorisation of my
motivating case loadi8.ll.

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




More information about the All-commits mailing list