[all-commits] [llvm/llvm-project] e79fac: [AArch64] Adjust costs of i1 and/or/xor reductions

David Green via All-commits all-commits at lists.llvm.org
Thu Jun 1 01:29:01 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: e79fac2968dcf0ed819fd374ce17845150344758
      https://github.com/llvm/llvm-project/commit/e79fac2968dcf0ed819fd374ce17845150344758
  Author: David Green <david.green at arm.com>
  Date:   2023-06-01 (Thu, 01 Jun 2023)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp
    M llvm/test/Analysis/CostModel/AArch64/reduce-and.ll
    M llvm/test/Analysis/CostModel/AArch64/reduce-or.ll
    M llvm/test/Analysis/CostModel/AArch64/reduce-xor.ll

  Log Message:
  -----------
  [AArch64] Adjust costs of i1 and/or/xor reductions

This expands the reduction cost of i1 and/or/xor, so that larger type sizes get
handled by the existing code. For i1 reductions - and will use maxv, or will use
minv and xor will use addv, plus the cost of legalizing the type for larger
vectors using and/or/xor. The i1 vectors will be legalized to higher width
integers (say v16i8), which this overrides the cost of. As with all i1 vectors
there is a chance that the types the i1 vector is created with and how it is
used will not match, introducing extra extends that are not necessarily
costmodelled.
https://godbolt.org/z/6Gc9K6b7T

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




More information about the All-commits mailing list