[all-commits] [llvm/llvm-project] 038f59: [SLP]Cost-based choice of the i1 reduction form

Alexey Bataev via All-commits all-commits at lists.llvm.org
Mon Sep 21 05:16:04 PDT 2026


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 038f5968616a3b466e790084bc72eab62d6a6743
      https://github.com/llvm/llvm-project/commit/038f5968616a3b466e790084bc72eab62d6a6743
  Author: Alexey Bataev <a.bataev at outlook.com>
  Date:   2026-09-21 (Mon, 21 Sep 2026)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
    M llvm/lib/Transforms/Vectorize/SLPVectorizer/SLPCostAnalysis.cpp
    M llvm/lib/Transforms/Vectorize/SLPVectorizer/SLPCostAnalysis.h
    M llvm/test/Transforms/PhaseOrdering/X86/vector-reductions.ll
    M llvm/test/Transforms/SLPVectorizer/AArch64/externally-used-copyables.ll
    M llvm/test/Transforms/SLPVectorizer/AArch64/non-power-of-2-with-adjusted-gathers.ll
    M llvm/test/Transforms/SLPVectorizer/AArch64/revec-non-pow2.ll
    M llvm/test/Transforms/SLPVectorizer/AMDGPU/reduction-i1-mask.ll
    M llvm/test/Transforms/SLPVectorizer/RISCV/remark-zext-incoming-for-neg-icmp.ll
    M llvm/test/Transforms/SLPVectorizer/SystemZ/cmp-ptr-minmax.ll
    M llvm/test/Transforms/SLPVectorizer/X86/alternate-cmp-swapped-pred.ll
    M llvm/test/Transforms/SLPVectorizer/X86/entries-different-vf.ll
    M llvm/test/Transforms/SLPVectorizer/X86/fabs-cost-softfp.ll
    M llvm/test/Transforms/SLPVectorizer/X86/reduction-logical.ll
    M llvm/test/Transforms/SLPVectorizer/X86/reduction2.ll
    M llvm/test/Transforms/SLPVectorizer/X86/reorder-vf-to-resize.ll
    M llvm/test/Transforms/SLPVectorizer/zext-incoming-for-neg-icmp.ll

  Log Message:
  -----------
  [SLP]Cost-based choice of the i1 reduction form

i1 reductions (and/or of <n x i1>, add of zexted <n x i1>) can be
emitted as the plain target reduction or in the bitcast-based form
(bitcast to the scalar int type plus a compare for and/or, plus ctpop
for add). Choose the cheaper form by cost, estimating the bitcast-based
form from its emitted components; the ctpop form is estimated as the
cheaper of the scalar bitcast+ctpop and the vector ctpop on the mask
type.

Fixes #40657

Reviewers: michaelselehov, RKSimon, bababuck

Pull Request: https://github.com/llvm/llvm-project/pull/223163



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list