[all-commits] [llvm/llvm-project] 4b5a4d: [X86] Cleanup reduction cost table names. NFC.

Simon Pilgrim via All-commits all-commits at lists.llvm.org
Wed Apr 12 07:33:33 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 4b5a4d48145d32cf4939ac59c030cd2cac3fe64c
      https://github.com/llvm/llvm-project/commit/4b5a4d48145d32cf4939ac59c030cd2cac3fe64c
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2023-04-12 (Wed, 12 Apr 2023)

  Changed paths:
    M llvm/lib/Target/X86/X86TargetTransformInfo.cpp

  Log Message:
  -----------
  [X86] Cleanup reduction cost table names. NFC.

We merged the costs for split/pairwise reductions sometime ago.


  Commit: d5143827956a89f7fd05a44b42ed947db4a07e3b
      https://github.com/llvm/llvm-project/commit/d5143827956a89f7fd05a44b42ed947db4a07e3b
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2023-04-12 (Wed, 12 Apr 2023)

  Changed paths:
    M llvm/lib/Target/X86/X86ISelLowering.cpp
    M llvm/test/CodeGen/X86/combine-ptest.ll

  Log Message:
  -----------
  [X86] combinePTESTCC - attempt to use TESTPS/TESTPD instead of MOVMSKPS/MOVMSKPD for all-of cases with all-sign values.

We can probably be more aggressive with TESTPS/TESTPD (instead of relying on the SimplifyMultipleUseDemandedBits call) - I've updated an existing TODO to suggest this for now.

Part of Issue #60007


  Commit: 63c3895327839ba5b57f5b99ec9e888abf976ac6
      https://github.com/llvm/llvm-project/commit/63c3895327839ba5b57f5b99ec9e888abf976ac6
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2023-04-12 (Wed, 12 Apr 2023)

  Changed paths:
    M llvm/lib/Target/X86/X86TargetTransformInfo.cpp
    M llvm/lib/Target/X86/X86TargetTransformInfo.h
    M llvm/test/Analysis/CostModel/X86/reduce-smax.ll
    M llvm/test/Analysis/CostModel/X86/reduce-smin.ll
    M llvm/test/Analysis/CostModel/X86/reduce-umax.ll
    M llvm/test/Analysis/CostModel/X86/reduce-umin.ll
    M llvm/test/Transforms/SLPVectorizer/X86/horizontal-minmax.ll
    M llvm/test/Transforms/SLPVectorizer/X86/horizontal-smax.ll

  Log Message:
  -----------
  [TTI][X86] getMinMaxCost - use existing integer min/max intrinsic cost values instead of maintaining a duplicate cost table

getMinMaxCost has an alternative set of min/max costs to getIntrinsicInstrCost that are only used by getMinMaxReductionCost, but are a lot less thorough and fallback to an expansion in most cases resulting in cost overestimations - we're better off just using getIntrinsicInstrCost.

getIntrinsicInstrCost is still missing complete FMINNUM/FMAXNUM costs, so until then getMinMaxCost will still be used for these, after that we can remove getMinMaxCost and have getMinMaxReductionCost call getIntrinsicInstrCost directly.

Fixes regression noticed in D148036


Compare: https://github.com/llvm/llvm-project/compare/6e78fd58cd06...63c389532783


More information about the All-commits mailing list