[all-commits] [llvm/llvm-project] 095fae: [SLP] Fix assertion "Deleting out-of-tree value" f...

Alexey Bataev via All-commits all-commits at lists.llvm.org
Tue May 26 06:33:25 PDT 2026


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 095faea999a2adaff9c54a5d7b7b1ef431db92ff
      https://github.com/llvm/llvm-project/commit/095faea999a2adaff9c54a5d7b7b1ef431db92ff
  Author: Alexey Bataev <a.bataev at outlook.com>
  Date:   2026-05-26 (Tue, 26 May 2026)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
    A llvm/test/Transforms/SLPVectorizer/AArch64/slp-extval-struct-operand-no-scalar-reuse.ll

  Log Message:
  -----------
  [SLP] Fix assertion "Deleting out-of-tree value" for struct-typed vectorized operands

When an external-use scalar had a struct-typed vectorized operand, OperandIsScalar
incorrectly returned true (because the struct scalar was in ValueToExtUses), causing
the scalar to be cloned into ExternalUsesAsOriginalScalar. The clone used the struct
scalar directly, but struct-typed vectorized scalars are deleted after vectorization
- their external-use handling erases the extractvalue user rather than replacing the
struct value via replaceAllUsesWith.

Reviewers: 

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



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