[all-commits] [llvm/llvm-project] a2e031: [ARM] Tone down the MVE scalarization overhead

David Green via All-commits all-commits at lists.llvm.org
Fri Mar 19 11:30:40 PDT 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: a2e0312cda40efc6cbfd7533e162120ce9cd68b8
      https://github.com/llvm/llvm-project/commit/a2e0312cda40efc6cbfd7533e162120ce9cd68b8
  Author: David Green <david.green at arm.com>
  Date:   2021-03-19 (Fri, 19 Mar 2021)

  Changed paths:
    M llvm/lib/Target/ARM/ARMTargetTransformInfo.cpp
    M llvm/test/Analysis/CostModel/ARM/arith-overflow.ll
    M llvm/test/Analysis/CostModel/ARM/arith-ssat.ll
    M llvm/test/Analysis/CostModel/ARM/arith-usat.ll
    M llvm/test/Analysis/CostModel/ARM/arith.ll
    M llvm/test/Analysis/CostModel/ARM/cast.ll
    M llvm/test/Analysis/CostModel/ARM/cast_ldst.ll
    M llvm/test/Analysis/CostModel/ARM/cmps.ll
    M llvm/test/Analysis/CostModel/ARM/divrem.ll
    M llvm/test/Analysis/CostModel/ARM/fparith.ll
    M llvm/test/Analysis/CostModel/ARM/intrinsic-cost-kinds.ll
    M llvm/test/Analysis/CostModel/ARM/load_store.ll
    M llvm/test/Analysis/CostModel/ARM/mve-abs.ll
    M llvm/test/Analysis/CostModel/ARM/mve-cmp.ll
    M llvm/test/Analysis/CostModel/ARM/mve-gather-scatter-cost.ll
    M llvm/test/Analysis/CostModel/ARM/mve-minmax.ll
    M llvm/test/Analysis/CostModel/ARM/mve-vecreduce-add.ll
    M llvm/test/Analysis/CostModel/ARM/reduce-smax.ll
    M llvm/test/Analysis/CostModel/ARM/reduce-smin.ll
    M llvm/test/Analysis/CostModel/ARM/reduce-umax.ll
    M llvm/test/Analysis/CostModel/ARM/reduce-umin.ll
    M llvm/test/Analysis/CostModel/ARM/select.ll
    M llvm/test/Analysis/CostModel/ARM/shuffle.ll
    M llvm/test/Transforms/LoopVectorize/ARM/mve-icmpcost.ll
    M llvm/test/Transforms/LoopVectorize/ARM/mve-interleaved-cost.ll
    M llvm/test/Transforms/LoopVectorize/ARM/mve-saddsatcost.ll
    M llvm/test/Transforms/LoopVectorize/ARM/pointer_iv.ll
    M llvm/test/Transforms/LoopVectorize/ARM/tail-folding-not-allowed.ll

  Log Message:
  -----------
  [ARM] Tone down the MVE scalarization overhead

The scalarization overhead was set deliberately high for MVE, whilst the
codegen was new. It helps protect us against the negative ramifications
of mixing scalar and vector instructions. This decreases that,
especially for floating point where the cost of extracting/inserting
lane elements can be low. For integer the cost is still fairly high due
to the cross-register-bank copy, but is no longer n^2 in the length of
the vector.

In general, this will decrease the cost of scalarizing floats and long
integer vectors. i64 increase in cost, having a high cost before and
after this patch. For floats this allows up to start doing things like
vectorizing fdiv instructions, even if they are scalarized.

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




More information about the All-commits mailing list