LLVM/project 6473ad5llvm/lib/Target/AMDGPU AMDGPULibCalls.cpp, llvm/test/CodeGen/AMDGPU amdgpu-simplify-libcall-constant-fold.ll

[AMDGPU] Fix miscompile folding math calls with poison/undef vector lanes (#216971)

A poison or undef lane made evaluateCall ConstantDataVector cast fail,
and evaluateScalarMathFunc silently treated the missing operand as 0.0,
producing wrong results instead of bailing out
DeltaFile
+88-0llvm/test/CodeGen/AMDGPU/amdgpu-simplify-libcall-constant-fold.ll
+23-20llvm/lib/Target/AMDGPU/AMDGPULibCalls.cpp
+111-202 files

LLVM/project 8c1cd84llvm/lib/Target/AMDGPU AMDGPULowerBufferFatPointers.cpp, llvm/test/CodeGen/AMDGPU lower-buffer-fat-pointers-p7-in-memory.ll

[AMDGPU] Fix miscompile from stale value cache in LowerBufferFatPointers (#216962)

ConvertedForStore cached a p7->int conversion per Value across the whole
function, so a second store of the same fat pointer in a non-dominating
block reused an instruction from the first block, breaking dominance
DeltaFile
+38-0llvm/test/CodeGen/AMDGPU/lower-buffer-fat-pointers-p7-in-memory.ll
+2-12llvm/lib/Target/AMDGPU/AMDGPULowerBufferFatPointers.cpp
+40-122 files

LLVM/project c8c439allvm/lib/Transforms/Vectorize LoopVectorizationLegality.cpp

Fixups
DeltaFile
+4-6llvm/lib/Transforms/Vectorize/LoopVectorizationLegality.cpp
+4-61 files

LLVM/project aeca99cmlir/include/mlir/Interfaces CallInterfaces.td, mlir/test/Interfaces/CallInterfaces call-op-interface-roundtrip.mlir call-op-interface-invalid.mlir

drop areTypesEqual
DeltaFile
+0-199mlir/test/Interfaces/CallInterfaces/verify-call-op-interface.mlir
+111-0mlir/test/Interfaces/CallInterfaces/call-op-interface-invalid.mlir
+63-0mlir/test/Interfaces/CallInterfaces/call-op-interface-roundtrip.mlir
+0-33mlir/test/lib/Dialect/Test/TestOpDefs.cpp
+7-21mlir/include/mlir/Interfaces/CallInterfaces.td
+0-19mlir/test/lib/Dialect/Test/TestOps.td
+181-2725 files not shown
+187-28911 files

LLVM/project eb57234llvm/lib/Target/AMDGPU AMDGPULibCalls.cpp, llvm/test/CodeGen/AMDGPU amdgpu-simplify-libcall-tdo-cos.ll

[AMDGPU] Fix crash folding cos/sin table lookups on poison/undef vector lanes (#216972)

TDOFold cast the lane directly to ConstantFP, which aborts under
assertions when a lane is poison or undef instead of a table lookup
failure
DeltaFile
+13-0llvm/test/CodeGen/AMDGPU/amdgpu-simplify-libcall-tdo-cos.ll
+6-2llvm/lib/Target/AMDGPU/AMDGPULibCalls.cpp
+19-22 files

LLVM/project 21b3511llvm/include/llvm/Analysis LoopAccessAnalysis.h, llvm/include/llvm/Transforms/Vectorize LoopVectorizationLegality.h

Rework
DeltaFile
+11-8llvm/lib/Transforms/Vectorize/LoopVectorizationLegality.cpp
+2-16llvm/lib/Analysis/LoopAccessAnalysis.cpp
+8-9llvm/lib/Transforms/Vectorize/VPlanConstruction.cpp
+1-3llvm/include/llvm/Analysis/LoopAccessAnalysis.h
+3-1llvm/include/llvm/Transforms/Vectorize/LoopVectorizationLegality.h
+25-375 files

LLVM/project 5f4af9bllvm/lib/Analysis LoopAccessAnalysis.cpp, llvm/lib/Transforms/Vectorize LoopVectorizationLegality.cpp VPlanTransforms.h

Rework
DeltaFile
+117-0llvm/lib/Transforms/Vectorize/VPlanConstruction.cpp
+0-53llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
+6-35llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
+16-2llvm/lib/Analysis/LoopAccessAnalysis.cpp
+9-7llvm/lib/Transforms/Vectorize/VPlanTransforms.h
+11-4llvm/lib/Transforms/Vectorize/LoopVectorizationLegality.cpp
+159-1014 files not shown
+167-11610 files

LLVM/project 74562e4llvm/lib/Transforms/Vectorize VPlanHelpers.h LoopVectorize.cpp

Remove helper
DeltaFile
+0-5llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
+0-4llvm/lib/Transforms/Vectorize/VPlanHelpers.h
+0-92 files

LLVM/project b77e40allvm/test/Transforms/LoopVectorize compress-idioms.ll

Add test
DeltaFile
+112-2llvm/test/Transforms/LoopVectorize/compress-idioms.ll
+112-21 files

LLVM/project b2f2929llvm/lib/Transforms/Vectorize VPlan.h VPlanRecipes.cpp, llvm/test/Transforms/LoopVectorize compress-idioms-negative-tests.ll compress-idioms.ll

Fixups
DeltaFile
+106-2llvm/test/Transforms/LoopVectorize/compress-idioms.ll
+3-32llvm/lib/Transforms/Vectorize/LoopVectorizationLegality.cpp
+0-32llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
+0-9llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
+2-2llvm/test/Transforms/LoopVectorize/compress-idioms-negative-tests.ll
+0-3llvm/lib/Transforms/Vectorize/VPlan.h
+111-806 files

LLVM/project d0c10cellvm/include/llvm/Analysis VectorUtils.h, llvm/lib/Transforms/Vectorize LoopVectorizationLegality.cpp

Fixups
DeltaFile
+1-2llvm/lib/Transforms/Vectorize/LoopVectorizationLegality.cpp
+1-1llvm/include/llvm/Analysis/VectorUtils.h
+2-32 files

LLVM/project dc0915dllvm/include/llvm/Transforms/Vectorize LoopVectorizationLegality.h, llvm/lib/Transforms/Vectorize VPlanTransforms.cpp VPRecipeBuilder.h

Fixups
DeltaFile
+112-118llvm/test/Transforms/LoopVectorize/compress-idioms.ll
+47-32llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
+18-8llvm/lib/Transforms/Vectorize/LoopVectorizationLegality.cpp
+13-3llvm/include/llvm/Transforms/Vectorize/LoopVectorizationLegality.h
+5-0llvm/lib/Transforms/Vectorize/VPRecipeBuilder.h
+4-0llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
+199-1616 files

LLVM/project 2d0aa1dllvm/test/Transforms/LoopVectorize compress-store-vec-epilogue.ll compress-idioms.ll

Rebase fixups
DeltaFile
+8-8llvm/test/Transforms/LoopVectorize/compress-idioms.ll
+3-3llvm/test/Transforms/LoopVectorize/compress-store-vec-epilogue.ll
+11-112 files

LLVM/project 20ac388llvm/test/Transforms/LoopVectorize compress-idioms.ll

Test uncond increment
DeltaFile
+96-2llvm/test/Transforms/LoopVectorize/compress-idioms.ll
+96-21 files

LLVM/project d87b107llvm/lib/Transforms/Vectorize VPlanRecipes.cpp, llvm/test/Transforms/LoopVectorize compress-idioms-negative-tests.ll compress-idioms.ll

Move negative tests to new file
DeltaFile
+0-105llvm/test/Transforms/LoopVectorize/compress-idioms.ll
+94-0llvm/test/Transforms/LoopVectorize/compress-idioms-negative-tests.ll
+0-1llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
+94-1063 files

LLVM/project b0b7e6bllvm/lib/Transforms/Vectorize VPlanTransforms.cpp VPlan.h, llvm/test/Transforms/LoopVectorize compress-idioms.ll

[LoopVectorize] Support vectorization of compressing patterns in VPlan

RFC link: https://discourse.llvm.org/t/rfc-loop-vectorization-of-compress-store-expand-load-patterns/86442

This adds loop vectorizer support for "compressing" patterns,
for example:

```
int dst_idx = 0;
for (int i = 0; i < n; i++) {
  if (cond[i])
    dst[dst_idx++] = src[i];
}
```

Can be vectorized with a `llvm.masked.compressstore` as:

```
int dst_idx = 0;

    [52 lines not shown]
DeltaFile
+424-0llvm/test/Transforms/LoopVectorize/compress-idioms.ll
+157-0llvm/test/Transforms/LoopVectorize/VPlan/compress-idioms.ll
+132-0llvm/test/Transforms/LoopVectorize/AArch64/compress-idioms.ll
+111-14llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
+60-4llvm/lib/Transforms/Vectorize/VPlan.h
+49-0llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
+933-1815 files not shown
+1,116-2621 files

LLVM/project c6c5710llvm/lib/Transforms/Vectorize VPlanConstruction.cpp VPlan.h

Don't allow null phi
DeltaFile
+4-6llvm/lib/Transforms/Vectorize/VPlan.h
+1-1llvm/lib/Transforms/Vectorize/VPlanConstruction.cpp
+5-72 files

LLVM/project fc04ca0llvm/lib/Transforms/Vectorize LoopVectorize.cpp VPlan.h, llvm/test/Transforms/LoopVectorize compress-store-vec-epilogue.ll

Fix epilogue resume handling
DeltaFile
+98-0llvm/test/Transforms/LoopVectorize/compress-store-vec-epilogue.ll
+5-5llvm/lib/Transforms/Vectorize/VPlan.h
+2-1llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
+105-63 files

LLVM/project a2916f7llvm/lib/Target/SPIRV SPIRVPrepareFunctions.cpp, llvm/test/CodeGen/SPIRV/passes SPIRVPrepareFunctions-invoke.ll

[SPIR-V] Patch invoke/callbr call sites when legalizing function signatures (#217000)

Only CallInst was patched before RAUW, leaving invoke/callbr with a
stale FunctionType and a broken verifier

follow up change for https://github.com/llvm/llvm-project/pull/216638
DeltaFile
+23-0llvm/test/CodeGen/SPIRV/passes/SPIRVPrepareFunctions-invoke.ll
+6-2llvm/lib/Target/SPIRV/SPIRVPrepareFunctions.cpp
+29-22 files

LLVM/project 0c4a910llvm/include/llvm/Analysis IVDescriptors.h, llvm/lib/Analysis IVDescriptors.cpp

Rework
DeltaFile
+20-20llvm/include/llvm/Analysis/IVDescriptors.h
+15-15llvm/lib/Analysis/IVDescriptors.cpp
+35-352 files

LLVM/project 46215d6llvm/lib/Target/AMDGPU AMDGPULowerBufferFatPointers.cpp, llvm/test/CodeGen/AMDGPU lower-buffer-fat-pointers-pointer-ops.ll

[AMDGPU] Fix poison result on inttoptr a narrow integer to ptr addrspace(7) in LowerBufferFatPointers (#216966)

The unconditional shift by BufferOffsetWidth overshifted for narrower
sources, folding to poison instead of the correctly zero-extended null
resource half
DeltaFile
+34-1llvm/test/CodeGen/AMDGPU/lower-buffer-fat-pointers-pointer-ops.ll
+10-4llvm/lib/Target/AMDGPU/AMDGPULowerBufferFatPointers.cpp
+44-52 files

LLVM/project f4552b0llvm/lib/Target/AArch64 AArch64ISelLowering.cpp, llvm/test/CodeGen/AArch64 scalable_masked_deinterleaved_loads.ll scalable_masked_interleaved_stores.ll

[AArch64][SVE] Enable factor-3 scalable interleave operations (#200424)

This commit enables LoopVectorize to lower scalable
vector.[de]interleave3 to use SVE ld3/st3 instructions.
DeltaFile
+56-0llvm/test/CodeGen/AArch64/scalable_masked_interleaved_stores.ll
+44-0llvm/test/CodeGen/AArch64/scalable_masked_deinterleaved_loads.ll
+24-8llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
+124-83 files

LLVM/project 67b7a27llvm/lib/Target/AMDGPU AMDGPULegalizerInfo.cpp, llvm/test/CodeGen/AMDGPU llvm.log10.ll llvm.log.ll

[AMDGPU][GlobalISel] Fix denormal handling in legalizeFlogUnsafe (#217008)

The scaled input was computed but never used, so the ldexp scaling was
dead and denormals produced -inf
DeltaFile
+120-65llvm/test/CodeGen/AMDGPU/llvm.log10.ll
+120-65llvm/test/CodeGen/AMDGPU/llvm.log.ll
+1-1llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
+241-1313 files

LLVM/project be5d1eallvm/include/llvm/IR RuntimeLibcalls.td, llvm/test/CodeGen/X86 fp128-powi-strict.ll fp128-libcalls-strict.ll

RuntimeLibcalls: Stop providing __powitf2 on MSVCRT

MSVCRT does not provide the powi helpers, so gate the fp128 __powitf2 on
isNotOSMSVCRT alongside the f32/f64 __powisf2/__powidf2, instead of adding it
unconditionally. The unconditional add was a hack to satisfy a test that
expected a wrongly-typed powi call on windows-msvc.

Co-authored-by: Claude (Opus 4.8) <noreply at anthropic.com>
DeltaFile
+22-133llvm/test/CodeGen/X86/fp128-libcalls-strict.ll
+67-0llvm/test/CodeGen/X86/fp128-powi-strict.ll
+2-4llvm/include/llvm/IR/RuntimeLibcalls.td
+91-1373 files

LLVM/project 4e00d18llvm/lib/CodeGen MachineLoopInfo.cpp

CodeGen: Use getDefBlock in MachineLoop::isLoopInvariant (#217018)

Look up the defining block of an operand's register directly with
getDefBlock() instead of calling getVRegDef() twice and relying on
contains() to walk to the instruction's parent. NFC.

Co-Authored-By: Claude <noreply at anthropic.com> claude-opus-4.8
DeltaFile
+3-3llvm/lib/CodeGen/MachineLoopInfo.cpp
+3-31 files

LLVM/project be6679allvm/test/CodeGen/Mips llvm.sincos.f128.ll llvm.sincos.ll

split mips fp128 sincosl test
DeltaFile
+0-266llvm/test/CodeGen/Mips/llvm.sincos.ll
+78-0llvm/test/CodeGen/Mips/llvm.sincos.f128.ll
+78-2662 files

LLVM/project b595032mlir/include/mlir/Interfaces CallInterfaces.td, mlir/lib/Dialect/LLVMIR/IR LLVMDialect.cpp

[mlir][Interfaces] `CallOpInterface`: Model forwarded result + improve verification
DeltaFile
+199-0mlir/test/Interfaces/CallInterfaces/verify-call-op-interface.mlir
+65-37mlir/lib/Dialect/LLVMIR/IR/LLVMDialect.cpp
+68-0mlir/lib/Interfaces/CallInterfaces.cpp
+64-0mlir/test/lib/Dialect/Test/TestOpDefs.cpp
+54-4mlir/include/mlir/Interfaces/CallInterfaces.td
+40-0mlir/test/lib/Dialect/Test/TestOps.td
+490-4115 files not shown
+638-12221 files

LLVM/project 85f5a02llvm/test/Transforms/LoopVectorize compress-idioms.ll

Add test
DeltaFile
+112-2llvm/test/Transforms/LoopVectorize/compress-idioms.ll
+112-21 files

LLVM/project 7484b35clang/lib/Interpreter IncrementalExecutor.cpp

Fix FreeBSD build after #207161 (#217004)

FreeBSD also doesn't provide __emutls_get_address.
DeltaFile
+1-1clang/lib/Interpreter/IncrementalExecutor.cpp
+1-11 files

LLVM/project 85413b1lldb/source/Initialization SystemInitializerCommon.cpp

[lldb] Guard CRT debug report calls with _MSC_VER (#216710)

mingw-w64's `crtdbg.h` expands `_CrtSetReportMode` and
`_CrtSetReportFile` to
no-ops unless `_DEBUG` is set, and declares them as real debug-CRT
imports
when it is. 

That macro means both "this code is built in debug mode" and "a debug
CRT is
linked", which go together for MSVC but not for MinGW, where a debug
build
normally still links the release CRT. A debug MinGW build therefore
compiles
the `LLDB_DISABLE_CRASH_DIALOG` path but fails to link it; release MinGW
builds get the no-op macros, which is why the distributed MinGW packages
never hit it.

Guard the calls with `_MSC_VER`. `SetErrorMode` above them is a Win32

    [3 lines not shown]
DeltaFile
+7-0lldb/source/Initialization/SystemInitializerCommon.cpp
+7-01 files