LLVM/project ba26b8a — llvm/lib/Transforms/Vectorize/SandboxVectorizer/Passes LoadStoreVec.cpp, llvm/test/Transforms/SandboxVectorizer/Passes/LoadStoreVec mixed_types.ll

[SandboxVec][LoadStoreVec] Don't pack non-integral pointer constants (#236984)

This patch fixes `getEquivalentConstantWithType()` by adding a check
that won't vectorize non-integral pointers constants.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+11-4llvm/lib/Transforms/Vectorize/SandboxVectorizer/Passes/LoadStoreVec.cpp
+5-1llvm/test/Transforms/SandboxVectorizer/Passes/LoadStoreVec/mixed_types.ll
+16-52 files

LLVM/project 7b78709 — llvm/include/llvm/CodeGen TargetLowering.h, llvm/lib/CodeGen/SelectionDAG DAGCombiner.cpp

[DAGCombiner] Don't always spill widened dynamic insertelt chains via stack (#232086)

`visitINSERT_VECTOR_ELT` folds a chain of runtime-index inserts
into one stack temporary when `isOperationExpand` says each insert
would spill. That check is true for every illegal type, including
`TypeWidenVector`, so a short vector was spilled even though widening
redoes the insert on the widened type. The predicate now follows
widening and keeps the chain in registers when that insert is
`Legal` or `Promote`.`Custom` action still uses stack, because
that lowering can fall back to a temporary.

On gfx942, the `<9 x double>` tests no longer use scratch. A per-lane
index is lowered with `v_cndmask`, and an index shared by the wave
uses `s_set_gpr_idx`.

It solves https://amd-hub.atlassian.net/browse/ROCM-30603
DeltaFile
+282-0llvm/test/CodeGen/AMDGPU/insertelt-dynamic-chain-widen.ll
+12-4llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
+12-0llvm/include/llvm/CodeGen/TargetLowering.h
+306-43 files

LLVM/project a44e0c4 — llvm/lib/CodeGen MachineLICM.cpp, llvm/test/CodeGen/X86 machinelicm-split-preheader-stale-slot-indexes.mir

MachineLICM: Do not update cached and unpreserved analyses

With the new pass manager, getOrCreatePreheader passed the analysis
manager to SplitCriticalEdge, which updates any cached SlotIndexes or
LiveIntervals. MachineLICM does not maintain these so the split could
update a stale SlotIndexes live from an earlier pass and fail the
"Instr already indexed" assertion. Only pass the analyses MachineLICM
keeps up to date.

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+89-0llvm/test/CodeGen/X86/machinelicm-split-preheader-stale-slot-indexes.mir
+2-2llvm/lib/CodeGen/MachineLICM.cpp
+91-22 files

LLVM/project 77e2f57 — llvm/lib/Transforms/Vectorize SLPVectorizer.cpp, llvm/test/Transforms/SLPVectorizer/X86 copyable-self-use-copyable-columns.ll

[SLP] Do not count copyable user without a direct self-use column

Assisted-by: Cursor

Reviewers: 

Pull Request: https://github.com/llvm/llvm-project/pull/237104
DeltaFile
+75-0llvm/test/Transforms/SLPVectorizer/X86/copyable-self-use-copyable-columns.ll
+6-5llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+81-52 files

LLVM/project 1f0991a — llvm/lib/Transforms/Scalar LoopUnrollPass.cpp

[LoopUnroll] Add `shouldRuntimeUnroll()` (NFC) (#236976)

Move the runtime unrolling heuristics into their own function, as the
other unrolling heuristics do.
DeltaFile
+76-66llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp
+76-661 files

LLVM/project e5d9723 — clang-tools-extra/clang-tidy/bugprone DerivedMethodShadowingBaseMethodCheck.cpp, clang-tools-extra/clang-tidy/modernize UseEqualsDefaultCheck.cpp

[clang-tidy][NFC] Move isOutOfLine matcher into utils::Matchers (#228547)

AI Usage: Assisted by Grok 4.6 (Cursor)

---------

Co-authored-by: Cursor <cursoragent at cursor.com>
DeltaFile
+4-6clang-tools-extra/clang-tidy/performance/TriviallyDestructibleCheck.cpp
+3-6clang-tools-extra/clang-tidy/modernize/UseEqualsDefaultCheck.cpp
+2-4clang-tools-extra/clang-tidy/bugprone/DerivedMethodShadowingBaseMethodCheck.cpp
+2-0clang-tools-extra/clang-tidy/utils/Matchers.h
+11-164 files

LLVM/project 458768e — llvm/test/CodeGen/AArch64 peephole-opt-subreg-to-reg-copy.mir, llvm/test/CodeGen/AArch64/Atomics aarch64-atomicrmw-rcpc.ll aarch64-atomicrmw-lse2.ll

PeepholeOptimizer: Fix value tracking through SUBREG_TO_REG

The tracked source of a SUBREG_TO_REG was reported as the subregister
index of the inserted value, rather than the full inserted value. The
inserted value is never a register class supporting that index, so
this never found a usable source.

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+95-97llvm/test/CodeGen/AArch64/GlobalISel/arm64-pcsections.ll
+75-75llvm/test/CodeGen/X86/vector-compress.ll
+87-0llvm/test/CodeGen/AArch64/peephole-opt-subreg-to-reg-copy.mir
+38-38llvm/test/CodeGen/X86/MergeConsecutiveStores.ll
+30-30llvm/test/CodeGen/AArch64/Atomics/aarch64-atomicrmw-rcpc.ll
+30-30llvm/test/CodeGen/AArch64/Atomics/aarch64-atomicrmw-lse2.ll
+355-27018 files not shown
+562-58724 files

LLVM/project c9ebe2a — llvm/lib/Target/LoongArch LoongArchDeadRegisterDefinitions.cpp

[LoongArch] Remove duplicate addRequired in LoongArchDeadRegisterDefinitions (#236325)

getAnalysisUsage called AU.addRequired<LiveIntervalsWrapperPass>()
twice. Drop the redundant second call.
DeltaFile
+0-1llvm/lib/Target/LoongArch/LoongArchDeadRegisterDefinitions.cpp
+0-11 files

LLVM/project bf9172e — llvm/lib/Target/RISCV RISCVISelLowering.cpp, llvm/test/CodeGen/RISCV/GlobalISel calllowering-zfinx-zhinx.ll

[RISCV][GlobalISel] Fix call lowering for Zfinx and Zhinx (#231981)

I found this crash while doing fuzzing.

With Zfinx/Zhinx, the calling convention assigns f32 and f16 values to
the GPRF32/GPRF16 aliases of the GPRs (e.g. `$x10_w`, `$x10_h`).
GlobalISel keeps these values on the GPR register bank, which only maps
to the full-width `gpr`
class, so call lowering produced copies such as:

>  $x10_w = COPY %0:gpr

After register allocation this becomes `$x10_w = COPY $x10`. The two
registers share no register class and it crashes.

This commit fixes this problem in the outgoing and incoming value
handlers by mapping a GPRF32/GPRF16
location to its containing GPR.


    [2 lines not shown]
DeltaFile
+113-0llvm/test/CodeGen/RISCV/GlobalISel/calllowering-zfinx-zhinx.ll
+2-0llvm/lib/Target/RISCV/RISCVISelLowering.cpp
+115-02 files

LLVM/project 8974f07 — llvm/lib/Transforms/Utils ScalarEvolutionExpander.cpp, llvm/test/Transforms/SLPVectorizer/X86 runtime-alias-checks.ll

[𝘀𝗽𝗿] initial version

Created using spr 1.3.7
DeltaFile
+94-0llvm/test/Transforms/SLPVectorizer/X86/runtime-alias-checks.ll
+7-5llvm/lib/Transforms/Utils/ScalarEvolutionExpander.cpp
+101-52 files

LLVM/project f9d8126 — .github/workflows llvm-test-suite-run.yml

Adjust flags
DeltaFile
+3-0.github/workflows/llvm-test-suite-run.yml
+3-01 files

LLVM/project fb7328f — llvm/lib/Target/AArch64 AArch64InstrInfo.cpp, llvm/test/CodeGen/AArch64 peephole-opt-analyzeCompare-subreg-use.mir

AArch64: Respect subregister operands in some peephole opts

Get the correct operand constraint class accounting for the any
subregister indexes on the operands. This previously would using the
direct register class from the virtual register, not accounting for
the subregister indexes in the operands. Also remove pointless
attempts to treat inability to constrain as a recoverable condition
since all the uses asserted anyway.

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+10-33llvm/lib/Target/AArch64/AArch64InstrInfo.cpp
+32-0llvm/test/CodeGen/AArch64/peephole-opt-analyzeCompare-subreg-use.mir
+42-332 files

LLVM/project ac7f5cc — llvm/lib/Transforms/Vectorize/SandboxVectorizer/Passes LoadStoreVec.cpp, llvm/test/Transforms/SandboxVectorizer/Passes/LoadStoreVec mixed_types.ll

[SandboxVec][LoadStoreVec] Don't pack non-integral pointer constants

getEquivalentConstantWithType() only rejected a non-integral pointer
destination type (via an assert), while a non-integral source such as
'ptr addrspace(5) null' was silently converted with ptrtoint. A
non-integral pointer has no stable integer representation, so it cannot
be packed into an integer lane.

Add isNonIntegralPtr() and return nullptr from
getEquivalentConstantWithType() when either type is a non-integral
pointer, which makes createConstantVector() give up on the bundle.

Co-Authored-By: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+11-4llvm/lib/Transforms/Vectorize/SandboxVectorizer/Passes/LoadStoreVec.cpp
+5-1llvm/test/Transforms/SandboxVectorizer/Passes/LoadStoreVec/mixed_types.ll
+16-52 files

OpenBSD/src a3sE7Lm — usr.bin/ssh sftp.c

   check return value of sftp_glob() to avoid potential disappointment* later

   Anthropic ANT-2026-XJ0LZ1TL

   * NULL deref
VersionDeltaFile
1.263+16-4usr.bin/ssh/sftp.c
+16-41 files

LLVM/project faf6df7 — llvm/test/Transforms/AtomicExpand/AMDGPU expand-atomic-v2f16-agent.ll expand-atomic-v2bf16-agent.ll

[AtomicExpand] Preserve denormal-mode metadata when copying atomics (#232039)

Copy !atomic.ignore.denormal.mode in copyMetadataForAtomic. When we
scalarize an elementwise atomic, for example, we want to propagate this
metadata so that the individual scalar atomics can ignore denormal mode.
DeltaFile
+104-104llvm/test/Transforms/AtomicExpand/AMDGPU/expand-atomic-f32-agent.ll
+90-90llvm/test/Transforms/AtomicExpand/AMDGPU/expand-atomic-f64-agent.ll
+82-82llvm/test/Transforms/AtomicExpand/AMDGPU/expand-atomic-f32-system.ll
+72-72llvm/test/Transforms/AtomicExpand/AMDGPU/expand-atomic-f64-system.ll
+48-48llvm/test/Transforms/AtomicExpand/AMDGPU/expand-atomic-v2bf16-agent.ll
+44-44llvm/test/Transforms/AtomicExpand/AMDGPU/expand-atomic-v2f16-agent.ll
+440-4406 files not shown
+571-53512 files

OpenBSD/src tE8Us18 — usr.bin/ssh monitor.c gss-serv.c

   make StrictModes apply to ~/.k5login and the home directory that
   contains it, just like how it applies to other authn-critical files.

   Anthropic ANT-2026-W7F2ULDN
VersionDeltaFile
1.11+50-4usr.bin/ssh/gss-serv-krb5.c
1.20+5-3usr.bin/ssh/ssh-gss.h
1.41+3-3usr.bin/ssh/gss-serv.c
1.263+2-2usr.bin/ssh/monitor.c
+60-124 files

OpenBSD/src to11C5R — usr.bin/ssh ssh-pkcs11-client.c

   avoid fatal() if a PKCS#11 key was added multiple times (e.g. for
   multiple certificates) and then subsequently freed. The key-free code
   incorrectly assumed that keys were singular.

   Anthropic ANT-2026-V7H1QCC4
VersionDeltaFile
1.28+10-5usr.bin/ssh/ssh-pkcs11-client.c
+10-51 files

LLVM/project f8ade0a — llvm/lib/Target/Mips Mips16HardFloat.cpp Mips.h, llvm/test/CodeGen/Mips newpm-pipeline.ll

[𝘀𝗽𝗿] initial version

Created using spr 1.3.7
DeltaFile
+280-0llvm/test/CodeGen/Mips/newpm-pipeline.ll
+128-119llvm/lib/Target/Mips/MipsOptimizePICCall.cpp
+66-66llvm/lib/Target/Mips/MipsExpandPseudo.cpp
+118-0llvm/lib/Target/Mips/MipsCodeGenPassBuilder.cpp
+69-4llvm/lib/Target/Mips/Mips.h
+33-18llvm/lib/Target/Mips/Mips16HardFloat.cpp
+694-2079 files not shown
+782-23515 files

LLVM/project 4800988 — llvm/lib/Target/Mips MipsOs16.cpp Mips16HardFloat.cpp, llvm/test/CodeGen/Mips newpm-pipeline.ll

[𝘀𝗽𝗿] changes to main this commit is based on

Created using spr 1.3.7

[skip ci]
DeltaFile
+277-0llvm/test/CodeGen/Mips/newpm-pipeline.ll
+128-119llvm/lib/Target/Mips/MipsOptimizePICCall.cpp
+118-0llvm/lib/Target/Mips/MipsCodeGenPassBuilder.cpp
+60-3llvm/lib/Target/Mips/Mips.h
+33-18llvm/lib/Target/Mips/Mips16HardFloat.cpp
+26-12llvm/lib/Target/Mips/MipsOs16.cpp
+642-1528 files not shown
+702-16714 files

LLVM/project f7905dd — llvm/test/Transforms/SLPVectorizer/X86 revec-merge-input-operands.ll merge-input-operands.ll

[SLP][NFC] Add pre-commit tests for merged inputops flag propagation (#236366)

Add two tests covering flag propagation for the merge-input-operands
transform: one where the fmul lanes carry different fast-math flags and
one where the mul lanes carry different integer wrap flags. Both record
the current vectorization, so a later patch shows the effect of merging.

Co-authored-by: Balakrishna Bandlapalli <bbandlap at gmail.com>
Co-authored-by: Cursor <cursoragent at cursor.com>
DeltaFile
+582-0llvm/test/Transforms/SLPVectorizer/X86/merge-input-operands.ll
+39-0llvm/test/Transforms/SLPVectorizer/X86/revec-merge-input-operands.ll
+621-02 files

LLVM/project 7968d56 — llvm/lib/Transforms/Vectorize/SLPVectorizer SLPShuffleAnalysis.h, llvm/test/Transforms/SLPVectorizer/X86 buildvector-same-lane-insert.ll

[SLP] Do not drop used undef lanes when peeking through resizing shuffles

When two resizing shuffles are combined, their second operands were
checked with isUndefVector, which accepts undef. If a used result lane
reads an undef element of the second operand, the combined mask remaps
it to an element of the first operand, which may be poison, turning
undef into poison. Peek through only when the used second-operand lanes
are poison.

Assisted-by: Cursor

Reviewers: 

Pull Request: https://github.com/llvm/llvm-project/pull/237088
DeltaFile
+6-2llvm/lib/Transforms/Vectorize/SLPVectorizer/SLPShuffleAnalysis.h
+2-1llvm/test/Transforms/SLPVectorizer/X86/buildvector-same-lane-insert.ll
+8-32 files

OpenBSD/src 0jaGaL8 — usr.bin/ssh monitor.c

   terminate monitor when auth options merge fails; avoids NULL dereference
   later

   Anthropic ANT-2026-UES5TKX0
VersionDeltaFile
1.262+6-3usr.bin/ssh/monitor.c
+6-31 files

OpenBSD/src FiosA8D — usr.bin/ssh auth.c

   only replace prior auth_opts if merging later ones succeeds.

   Part of fix for server fatal() with inconsistent log message when
   `AuthenticationMethods publickey,publickey` fails on the second key because
   of inconsistent authentication options.

   Anthropic ANT-2026-UES5TKX0
VersionDeltaFile
1.166+4-3usr.bin/ssh/auth.c
+4-31 files

LLVM/project 1359d67 — llvm/test/Transforms/SLPVectorizer/X86 buildvector-same-lane-insert.ll

[SLP][NFC]Add a test with undef to poison miscompile, NFC



Reviewers: 

Pull Request: https://github.com/llvm/llvm-project/pull/237082
DeltaFile
+23-0llvm/test/Transforms/SLPVectorizer/X86/buildvector-same-lane-insert.ll
+23-01 files

OpenBSD/src Kz2ZrzT — usr.bin/ssh packet.h kex.c

   make strict KEX errors return an error rather than fatal()ing the
   process. This avoids ssh-keyscan crashing out when one host of many
   fails strict KEX.

   To avoid the risk of continuing past such a failure in ssh or sshd, make
   such failures "poison" the packet code so that future attempts to send
   or receive packets always an error.

   Anthropic ANT-2026-TU0DN0EM (poisoning bit by me)
VersionDeltaFile
1.347+41-1usr.bin/ssh/packet.c
1.198+7-5usr.bin/ssh/kex.c
1.109+3-1usr.bin/ssh/packet.h
+51-73 files

LLVM/project 12f6093 — llvm/lib/Target/Mips MipsPassRegistry.def MipsOs16.cpp, llvm/test/CodeGen/Mips newpm-pipeline.ll

[𝘀𝗽𝗿] changes to main this commit is based on

Created using spr 1.3.7

[skip ci]
DeltaFile
+274-0llvm/test/CodeGen/Mips/newpm-pipeline.ll
+118-0llvm/lib/Target/Mips/MipsCodeGenPassBuilder.cpp
+33-18llvm/lib/Target/Mips/Mips16HardFloat.cpp
+49-2llvm/lib/Target/Mips/Mips.h
+26-12llvm/lib/Target/Mips/MipsOs16.cpp
+28-0llvm/lib/Target/Mips/MipsPassRegistry.def
+528-327 files not shown
+558-4613 files

LLVM/project 688ff49 — llvm/lib/Target/Mips MipsOs16.cpp Mips16HardFloat.cpp, llvm/test/CodeGen/Mips newpm-pipeline.ll

[𝘀𝗽𝗿] initial version

Created using spr 1.3.7
DeltaFile
+277-0llvm/test/CodeGen/Mips/newpm-pipeline.ll
+128-119llvm/lib/Target/Mips/MipsOptimizePICCall.cpp
+118-0llvm/lib/Target/Mips/MipsCodeGenPassBuilder.cpp
+60-3llvm/lib/Target/Mips/Mips.h
+33-18llvm/lib/Target/Mips/Mips16HardFloat.cpp
+26-12llvm/lib/Target/Mips/MipsOs16.cpp
+642-1528 files not shown
+702-16714 files

LLVM/project ad96c84 — mlir/examples/standalone pyproject.toml, mlir/python requirements.txt

[MLIR][Python] Only raise numpy/ml_dtypes minimums for Python 3.15

Use python_version markers instead of raising the numpy cap for everyone:
Python < 3.15 keeps numpy <= 2.1.2, and 3.15 gets numpy 2.5.x and
ml_dtypes 0.6.0 (the first releases with cp315 wheels).
DeltaFile
+4-2mlir/python/requirements.txt
+4-2mlir/examples/standalone/pyproject.toml
+8-42 files

LLVM/project 4a88147 — mlir/examples/standalone pyproject.toml, mlir/python requirements.txt

[MLIR][Python] Pin ml_dtypes with == for Python 3.15
DeltaFile
+1-1mlir/python/requirements.txt
+1-1mlir/examples/standalone/pyproject.toml
+2-22 files

LLVM/project 0c020db — llvm/include/llvm/IR Module.h, llvm/lib/CodeGen/AsmPrinter DwarfDebug.cpp

Actually resolve the default in Module
DeltaFile
+2-1llvm/include/llvm/IR/Module.h
+0-2llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
+1-1llvm/lib/IR/Module.cpp
+3-43 files