LLVM/project ee348f2 — llvm/include/llvm/IR RuntimeLibcalls.td, llvm/test/Transforms/Util/DeclareRuntimeLibcalls aarch64.ll

RuntimeLibcalls: Add signatures for the SME ABI support routines (#239366)

Use the prototypes from the AArch64 SME ABI. __arm_sme_state returns two
64-bit values.

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+40-40llvm/test/Transforms/Util/DeclareRuntimeLibcalls/aarch64.ll
+9-8llvm/include/llvm/IR/RuntimeLibcalls.td
+49-482 files

LLVM/project 3844c99 — clang/lib/Parse ParseExpr.cpp

[clang][Parse][NFC] Share parsing for astype and convertvector builtins (#239107)

Share the parsing logic for __builtin_astype and
__builtin_convertvector, then dispatch to their respective Sema actions.
Preserve diagnostics and error recovery.
DeltaFile
+7-31clang/lib/Parse/ParseExpr.cpp
+7-311 files

LLVM/project 1a3dcd0 — clang/lib/Sema SemaDeclCXX.cpp

[clang][Sema][NFC] Share constexpr statement traversal (#239210)

Share child-statement traversal in CheckConstexprFunctionStmt and
simplify boolean result forwarding. Preserve language-version checks,
traversal order, and diagnostic locations.
DeltaFile
+20-48clang/lib/Sema/SemaDeclCXX.cpp
+20-481 files

LLVM/project 0be6d4e — clang/include/clang/Driver ToolChain.h, clang/lib/Driver/ToolChains Linux.cpp Clang.cpp

[HIP] Use positional ordering for ROCm include paths

Instead of using path-based heuristics to choose between -idirafter and
-internal-isystem for the ROCm include path, split AddHIPIncludeArgs
into two phases:

- Early phase (AddHIPIncludeArgs): emits wrapper headers (cuda_wrappers/)
  before C++ stdlib headers, preserving #include_next chains.
- Late phase (AddHIPIncludeArgsLate): emits the ROCm toolkit include
  path after C++ stdlib but before C system headers, so the selected
  ROCm installation's HIP headers always take precedence over any
  distro-installed copies in /usr/include.

This replaces the previous conditional that compared the include path
against {SysRoot}/usr/ to decide the flag. That approach had two bugs
identified in review: a double-slash with trailing-slash sysroots, and
/usr/local/rocm still using -idirafter. The positional approach handles
all install locations uniformly without path comparisons.

Co-Authored-By: Claude Opus 4.6 <noreply at anthropic.com>
DeltaFile
+31-19clang/lib/Driver/ToolChains/AMDGPU.cpp
+11-8clang/test/Driver/hip-include-path.hip
+1-10clang/test/Driver/rocm-detect.hip
+6-0clang/lib/Driver/ToolChains/Clang.cpp
+6-0clang/include/clang/Driver/ToolChain.h
+5-0clang/lib/Driver/ToolChains/Linux.cpp
+60-374 files not shown
+71-3710 files

LLVM/project 24a37c2 — clang/include/clang/CIR/Dialect/IR CIRAttrs.td, clang/lib/CIR/Dialect/IR CIRAttrs.cpp

[CIR] Add unadjusted align to the CIR record layout (#238913)

The unadjusted align of a record (the alignment calculated by the AST
before adjustments such as attributes are applied) is needed to perform
ABI classification for AArch64 targets. This change adds this field to
the CIR RecordLayoutAttr but does not yet enable the AArch64 calling
convention lowering. That will be done in a future change.

Assisted-by: Cursor / various models
DeltaFile
+83-0clang/lib/CIR/Dialect/IR/CIRAttrs.cpp
+19-9clang/lib/CIR/Dialect/Transforms/CIRABIClassifier.cpp
+14-11clang/include/clang/CIR/Dialect/IR/CIRAttrs.td
+21-0clang/test/CIR/IR/record-layout.cir
+15-0clang/unittests/CIR/RecordTypeMetadataTest.cpp
+11-0clang/test/CIR/IR/invalid-record-layout.cir
+163-202 files not shown
+168-228 files

LLVM/project e214f7a — clang/lib/Sema SemaAMDGPU.cpp, llvm/lib/Target/AMDGPU SMInstructions.td

[AMDGPU] Validate prefetch length and cache policy operands (#232143)

Two operands of the AMDGPU prefetch intrinsics, the length and the cache
policy, are not validated. An out-of-range length is encoded differently
from what the assembly says, and an out-of-range cache policy is
silently miscompiled or rejected late by the backend.

Fixes:
- Length: Instruction selection now keeps only the low 5 bits of a
constant length, so the assembly shows the value that is encoded. The
object code is the same as before. As a safeguard for hand-written
assembly, including inline `asm`, the assembler on GFX12 and later now
rejects an immediate length that does not fit in 5 bits instead of
silently truncating it.
- Cache policy: clang and the IR verifier now reject a cache policy that
sets any bit other than th (bits 0-2), scope (bits 3-4) and nv (bit 5),
or that uses the reserved th value 7. The assembler needs no change: it
already rejects th 7.
DeltaFile
+77-0llvm/test/CodeGen/AMDGPU/llvm.amdgcn.s.prefetch.data.ll
+37-0llvm/test/CodeGen/AMDGPU/llvm.amdgcn.s.prefetch.inst.ll
+19-0llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
+16-0clang/lib/Sema/SemaAMDGPU.cpp
+10-5llvm/lib/Target/AMDGPU/SMInstructions.td
+14-0llvm/test/Verifier/AMDGPU/intrinsic-prefetch.ll
+173-58 files not shown
+220-714 files

LLVM/project 7a19899 — clang/docs ReleaseNotes.md, clang/lib/Driver/ToolChains Cuda.cpp

[clang][CUDA] Search include/cccl of CUDA 13 installations (#235910)

From CUDA 13.0 on, the CUDA C++ Core Libraries (libcu++, CUB and Thrust)
are in `include/cccl` of the CUDA installation rather than in
`include/`. Some of the toolkit's own headers include them, so with CUDA
13 something as simple as `#include <cooperative_groups.h>` fails to
compile with Clang:

```
cooperative_groups/details/info.h: fatal error:
    'cuda/std/type_traits' file not found
```

nvcc searches `include/cccl` right after `include/`. This makes Clang do
the same, when the directory exists. `-nogpuinc` still leaves it out,
and the user's own include directories are still searched first.

The HIP toolchain already does the equivalent for
[`include/libhipcxx`](https://github.com/llvm/llvm-project/blob/fe84f6e3b0ae40ef28998cd9cee3220eec2ea261/clang/lib/Driver/ToolChains/AMDGPU.cpp#L617-L624).

Assisted-by: Devin
DeltaFile
+27-0clang/test/Driver/cuda-cccl-include.cu
+9-0clang/lib/Driver/ToolChains/Cuda.cpp
+7-0clang/test/Driver/Inputs/CUDA_130/usr/local/cuda/include/cuda.h
+6-0clang/docs/ReleaseNotes.md
+0-0clang/test/Driver/Inputs/CUDA_130/usr/local/cuda/nvvm/libdevice/libdevice.10.bc
+0-0clang/test/Driver/Inputs/CUDA_130/usr/local/cuda/lib64/.keep
+49-03 files not shown
+49-09 files

LLVM/project 2cbc63c — llvm/include/llvm/IR RuntimeLibcallsImpl.td RuntimeLibcalls.td, llvm/lib/IR RuntimeLibcalls.cpp

RuntimeLibcalls: Add signatures for the Darwin sincos stret functions

__sincos_stret and __sincosf_stret return a struct holding the 2
results. Describe the C struct return type in the signature table and
lower for the target ABI. This is a vector on x86-64 for float,
through memory on x86-32 and APCS ARM, and as a struct elsewhere.
This replaces the special case that built the types in C++. Ideally we
would be using the ABI library, but it's incomplete for most targets
and it requires some relayering to use here.

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+57-45llvm/lib/IR/RuntimeLibcalls.cpp
+10-0llvm/include/llvm/IR/RuntimeLibcalls.h
+3-3llvm/include/llvm/IR/RuntimeLibcalls.td
+3-0llvm/include/llvm/IR/RuntimeLibcallsImpl.td
+2-0llvm/test/TableGen/RuntimeLibcallEmitter.td
+75-485 files

LLVM/project 2bb6d7c — llvm/lib/IR RuntimeLibcalls.cpp, llvm/lib/Transforms/Utils DeclareRuntimeLibcalls.cpp

RuntimeLibcalls: Describe the stack guard and safestack variables

The stack guard and the unsafe stack pointer are global variables, not
functions. Describe them as variables in the signature table, with the
unsafe stack pointer thread local in the alloca address space, and
declare them as globals.

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+15-15llvm/test/Transforms/Util/DeclareRuntimeLibcalls/aarch64.ll
+12-12llvm/test/Transforms/Util/DeclareRuntimeLibcalls/windows.ll
+9-9llvm/test/Transforms/Util/DeclareRuntimeLibcalls/bsd.ll
+15-1llvm/lib/IR/RuntimeLibcalls.cpp
+13-0llvm/lib/Transforms/Utils/DeclareRuntimeLibcalls.cpp
+6-6llvm/test/Transforms/Util/DeclareRuntimeLibcalls/riscv.ll
+70-4314 files not shown
+139-8720 files

LLVM/project 6d54fdb — llvm/include/llvm/IR RuntimeLibcalls.td, llvm/test/Transforms/Util/DeclareRuntimeLibcalls arm64ec.ll aarch64.ll

RuntimeLibcalls: Add a signature for the stack probe functions

The stack probe functions are assembly routines with their own unnamed
calling convention. The allocation size is passed in a fixed register
that is not the standard first argument register (rax/eax on x86, x15
in 16-byte units on AArch64, r4 in 4-byte units on ARM), almost all
registers are preserved, and the i386 _alloca variant also moves the
stack pointer. It's not ideal, but short of defining a custom calling
convention, just declare them with no arguments.

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+4-4llvm/test/Transforms/Util/DeclareRuntimeLibcalls/windows.ll
+2-2llvm/test/Transforms/Util/DeclareRuntimeLibcalls/aarch64.ll
+1-1llvm/test/Transforms/Util/DeclareRuntimeLibcalls/arm64ec.ll
+1-1llvm/include/llvm/IR/RuntimeLibcalls.td
+8-84 files

LLVM/project deae673 — llvm/lib/Target/AMDGPU SIInstrInfo.cpp, llvm/test/CodeGen/AMDGPU twoaddr-wmma.mir

[AMDGPU] Update src2 live range when converting WMMA to three-address form

Since #225174, `LiveIntervals` is computed before the two-address instruction
pass. A two-address WMMA ties `src2` to an early-clobber `vdst`, so if `src2`
dies at the WMMA, its live range ends at the early-clobber slot. When the pass
converts the WMMA to the three-address form, `src2` is no longer tied and is
read at the register slot, but `SIInstrInfo::convertToThreeAddress` only updates
the live range of the def. The machine verifier then reports "Live segment
ending at early clobber slot must be redefined by an EC def in the same
instruction".

This PR moves the end of such a segment to the register slot, for the main range
and the subranges.

Fixes LCOMPILER-3197.
DeltaFile
+36-0llvm/test/CodeGen/AMDGPU/twoaddr-wmma.mir
+22-0llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
+58-02 files

LLVM/project 6273f26 — flang-rt/lib/runtime CMakeLists.txt temporary-stack.cpp, flang/include/flang/Runtime temporary-stack.h

[flang-rt][cuda] Add support to build temporary-stack (#239403)

These functions are used when lowering some forall statements. It would
fails to link with code like:

```fortran
!$acc serial copyin(k) copyout(kk,kkk,kkkk)
forall (n=1:nb)
kk(n,:)=k(n,:)
kk(n,:)=kk(n,:)+1
kkk(n,:)=k(n,:)
kkk(n,:)=kkk(n,:)+1
kkkk(n,:)=k(n,:)
kkkk(n,:)=kkkk(n,:)+1
end forall
!$acc end serial
```
DeltaFile
+36-30flang-rt/lib/runtime/temporary-stack.cpp
+10-10flang/include/flang/Runtime/temporary-stack.h
+1-0flang-rt/lib/runtime/CMakeLists.txt
+47-403 files

LLVM/project 625076d — clang/include/clang/Basic HLSLIntrinsics.td, clang/test/CodeGenHLSL/builtins WaveMultiPrefixBitOr.hlsl

[HLSL] Add WaveMultiPrefixBitOr (#238187)

Adds `WaveMultiPrefixBitOr` with DXIL and SPIRV lowering. 

Fixes #99209
Assisted by: Github Copilot

---------

Co-authored-by: Copilot <223556219+Copilot at users.noreply.github.com>
Copilot-Session: 40997c2f-5aaa-41c6-8d1f-3e2e9ada315f
DeltaFile
+98-0llvm/test/CodeGen/SPIRV/hlsl-intrinsics/WaveMultiPrefixBitOr.ll
+93-0clang/test/CodeGenHLSL/builtins/WaveMultiPrefixBitOr.hlsl
+68-0clang/test/SemaHLSL/BuiltIns/WaveMultiPrefixBitOr-errors.hlsl
+48-0llvm/test/CodeGen/DirectX/WaveMultiPrefixBitOr.ll
+14-0llvm/test/CodeGen/DirectX/WaveMultiPrefixBitOr_errors.ll
+10-0clang/include/clang/Basic/HLSLIntrinsics.td
+331-011 files not shown
+381-017 files

LLVM/project b34ea7b — clang/test/CodeGenHLSL/builtins WaveMultiPrefixSum.hlsl, clang/test/SemaHLSL/BuiltIns WaveMultiPrefixSum-errors.hlsl

[HLSL] Add WaveMultiPrefixSum (#238175)

Adds `WaveMultiPrefixSum` with DXIL and SPIRV lowering.

Fixes #99213
Assisted by: Github Copilot

---------

Co-authored-by: Copilot <223556219+Copilot at users.noreply.github.com>
Copilot-Session: 40997c2f-5aaa-41c6-8d1f-3e2e9ada315f
DeltaFile
+147-0llvm/test/CodeGen/SPIRV/hlsl-intrinsics/WaveMultiPrefixSum.ll
+113-0clang/test/CodeGenHLSL/builtins/WaveMultiPrefixSum.hlsl
+81-0llvm/test/CodeGen/DirectX/WaveMultiPrefixSum.ll
+57-0clang/test/SemaHLSL/BuiltIns/WaveMultiPrefixSum-errors.hlsl
+15-0llvm/lib/Target/DirectX/DXIL.td
+14-0llvm/test/CodeGen/DirectX/WaveMultiPrefixSum_errors.ll
+427-011 files not shown
+512-517 files

LLVM/project b16c3a6 — clang/test/SemaHLSL/BuiltIns WaveMultiPrefixBitOr-errors.hlsl

address Sarah

Co-authored-by: Copilot <223556219+Copilot at users.noreply.github.com>
Copilot-Session: 40997c2f-5aaa-41c6-8d1f-3e2e9ada315f
DeltaFile
+10-6clang/test/SemaHLSL/BuiltIns/WaveMultiPrefixBitOr-errors.hlsl
+10-61 files

LLVM/project 4d463d0 — clang/include/clang/Basic HLSLIntrinsics.td, clang/test/CodeGenHLSL/builtins WaveMultiPrefixBitOr.hlsl

first attempt

Co-authored-by: Copilot <223556219+Copilot at users.noreply.github.com>
Copilot-Session: 40997c2f-5aaa-41c6-8d1f-3e2e9ada315f
DeltaFile
+98-0llvm/test/CodeGen/SPIRV/hlsl-intrinsics/WaveMultiPrefixBitOr.ll
+93-0clang/test/CodeGenHLSL/builtins/WaveMultiPrefixBitOr.hlsl
+64-0clang/test/SemaHLSL/BuiltIns/WaveMultiPrefixBitOr-errors.hlsl
+48-0llvm/test/CodeGen/DirectX/WaveMultiPrefixBitOr.ll
+14-0llvm/test/CodeGen/DirectX/WaveMultiPrefixBitOr_errors.ll
+10-0clang/include/clang/Basic/HLSLIntrinsics.td
+327-011 files not shown
+377-017 files

LLVM/project dcb89f9 — clang/test/SemaHLSL/BuiltIns WaveMultiPrefixSum-errors.hlsl

address Sarah

Co-authored-by: Copilot <223556219+Copilot at users.noreply.github.com>
Copilot-Session: 40997c2f-5aaa-41c6-8d1f-3e2e9ada315f
DeltaFile
+3-2clang/test/SemaHLSL/BuiltIns/WaveMultiPrefixSum-errors.hlsl
+3-21 files

LLVM/project d32aae9 — clang/test/CodeGenHLSL/builtins WaveMultiPrefixSum.hlsl, clang/test/SemaHLSL/BuiltIns WaveMultiPrefixSum-errors.hlsl

first attempt

Co-authored-by: Copilot <223556219+Copilot at users.noreply.github.com>
Copilot-Session: 40997c2f-5aaa-41c6-8d1f-3e2e9ada315f
DeltaFile
+147-0llvm/test/CodeGen/SPIRV/hlsl-intrinsics/WaveMultiPrefixSum.ll
+113-0clang/test/CodeGenHLSL/builtins/WaveMultiPrefixSum.hlsl
+81-0llvm/test/CodeGen/DirectX/WaveMultiPrefixSum.ll
+56-0clang/test/SemaHLSL/BuiltIns/WaveMultiPrefixSum-errors.hlsl
+15-0llvm/lib/Target/DirectX/DXIL.td
+14-0llvm/test/CodeGen/DirectX/WaveMultiPrefixSum_errors.ll
+426-011 files not shown
+511-517 files

LLVM/project a7bdff3 — clang/test/CodeGenHLSL/builtins WaveMultiPrefixProduct.hlsl, clang/test/SemaHLSL/BuiltIns WaveMultiPrefixProduct-errors.hlsl

[HLSL] Add WaveMultiPrefixProduct (#238164)

Adds `WaveMultiPrefixProduct` for DirectX and SPIRV

Fixes #99212
Assisted by: Github Copilot.

---------

Co-authored-by: Copilot <223556219+Copilot at users.noreply.github.com>
Copilot-Session: 40997c2f-5aaa-41c6-8d1f-3e2e9ada315f
DeltaFile
+147-0llvm/test/CodeGen/SPIRV/hlsl-intrinsics/WaveMultiPrefixProduct.ll
+113-0clang/test/CodeGenHLSL/builtins/WaveMultiPrefixProduct.hlsl
+81-0llvm/test/CodeGen/DirectX/WaveMultiPrefixProduct.ll
+57-0clang/test/SemaHLSL/BuiltIns/WaveMultiPrefixProduct-errors.hlsl
+18-1llvm/lib/Target/DirectX/DXIL.td
+14-0llvm/test/CodeGen/DirectX/WaveMultiPrefixProduct_errors.ll
+430-111 files not shown
+517-417 files

LLVM/project 926040b — clang/lib/Sema SemaHLSL.cpp, clang/test/CodeGenHLSL/builtins WaveMultiPrefixCountBits.hlsl

[HLSL] Add WaveMultiPrefixCountBits (#238132)

Add `WaveMultiPrefixCountBits`, with DirectX-only lowering.
This PR does not add SPIR-V support. SPIR-V calls report that the
builtin is not supported on the target.

Fixes #99211
Assisted by: Github Copilot

Co-authored-by: Copilot <223556219+Copilot at users.noreply.github.com>
Copilot-Session: 40997c2f-5aaa-41c6-8d1f-3e2e9ada315f
DeltaFile
+63-0clang/test/SemaHLSL/BuiltIns/WaveMultiPrefixCountBits-errors.hlsl
+45-0clang/test/CodeGenHLSL/builtins/WaveMultiPrefixCountBits.hlsl
+32-10clang/lib/Sema/SemaHLSL.cpp
+20-0llvm/test/CodeGen/DirectX/WaveMultiPrefixCountBits.ll
+9-0llvm/lib/Target/DirectX/DXIL.td
+9-0llvm/test/CodeGen/DirectX/WaveMultiPrefixCountBits_errors.ll
+178-106 files not shown
+211-1012 files

LLVM/project 6c4b35a — clang/test/CodeGenHLSL/builtins WaveMultiPrefixBitXor.hlsl, clang/test/SemaHLSL/BuiltIns WaveMultiPrefixBitXor-errors.hlsl

[HLSL] Add WaveMultiPrefixBitXor (#238097)

Adds `WaveMultiPrefixBitXor` builtin, with DXIL and SPIRV lowering.

Fixes #99210.
Assisted by: Github Copilot

---------

Co-authored-by: Copilot <223556219+Copilot at users.noreply.github.com>
Copilot-Session: 40997c2f-5aaa-41c6-8d1f-3e2e9ada315f
DeltaFile
+98-0llvm/test/CodeGen/SPIRV/hlsl-intrinsics/WaveMultiPrefixBitXor.ll
+97-0clang/test/CodeGenHLSL/builtins/WaveMultiPrefixBitXor.hlsl
+68-0clang/test/SemaHLSL/BuiltIns/WaveMultiPrefixBitXor-errors.hlsl
+48-0llvm/test/CodeGen/DirectX/WaveMultiPrefixBitXor.ll
+17-9llvm/lib/Target/SPIRV/SPIRVInstructionSelector.cpp
+14-0llvm/test/CodeGen/DirectX/WaveMultiPrefixBitXor_errors.ll
+342-911 files not shown
+402-1317 files

LLVM/project 989d894 — llvm/lib/Target/SPIRV SPIRVCombinerHelper.h SPIRVCombine.td, llvm/test/CodeGen/SPIRV/GlobalISel/InstCombine prelegalizercombiner-fmul-to-degrees.mir

Revert 216506 Add PreLegalizer pattern matching for degrees GL extension (#239353)

This reverts commit 4e414afe0e3f1566b898c5c5741e2582c5c48514.

The combine rewrites fmul x, 180/pi into spv.degrees for all SPIR-V
targets. OpenCL requires fmul to be correctly rounded (0.5 ulp) while
degrees only has to be accurate to 2 ulp, so this loses precision on the
OpenCL path.

The discussions have been captured in the now closed PR about why we
want to revert it
https://github.com/llvm/llvm-project/pull/237935/changes
DeltaFile
+0-43llvm/test/CodeGen/SPIRV/GlobalISel/InstCombine/prelegalizercombiner-fmul-to-degrees.mir
+0-34llvm/lib/Target/SPIRV/SPIRVCombinerHelper.cpp
+0-18llvm/test/CodeGen/SPIRV/opencl/degrees.ll
+0-18llvm/test/CodeGen/SPIRV/hlsl-intrinsics/degrees.ll
+1-8llvm/lib/Target/SPIRV/SPIRVCombine.td
+0-2llvm/lib/Target/SPIRV/SPIRVCombinerHelper.h
+1-1236 files

LLVM/project dfaf25f — llvm/lib/Transforms/InstCombine InstCombineLoadStoreAlloca.cpp

adjust comment
DeltaFile
+1-2llvm/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp
+1-21 files

LLVM/project 4ccb556 — llvm/lib/Target/AMDGPU AMDGPUTargetTransformInfo.cpp, llvm/test/Transforms/InferAddressSpaces/AMDGPU flat-prefetch.ll

[AMDGPU] Infer the global address space for llvm.amdgcn.flat.prefetch (#231968)

InferAddressSpaces rewrites the generic `llvm.prefetch` when it proves
that the prefetched pointer
is global, but it does not handle `llvm.amdgcn.flat.prefetch`, which
`__builtin_amdgcn_flat_prefetch`
emits. A flat prefetch of a pointer that is provably global, such as a
HIP kernel argument,
therefore stays a `flat_prefetch_b8`, while the loads and stores of the
same pointer, and
`__builtin_prefetch` of it, use global instructions.

Add `llvm.amdgcn.flat.prefetch` to the AMDGPU InferAddressSpaces hooks.
When its pointer is
inferred to be global, the call becomes `llvm.amdgcn.global.prefetch`
with the same cache policy
operand. Pointers inferred to be in any other address space are left
alone.
DeltaFile
+74-0llvm/test/Transforms/InferAddressSpaces/AMDGPU/flat-prefetch.ll
+15-0llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp
+89-02 files

LLVM/project f4b8afd — llvm/lib/Transforms/InstCombine InstCombineLoadStoreAlloca.cpp InstCombineVectorOps.cpp, llvm/test/CodeGen/NVPTX shuffle-packed.ll

[InstCombine] Widen shuffle lanes
DeltaFile
+21-308llvm/test/CodeGen/NVPTX/shuffle-packed.ll
+65-21llvm/lib/Transforms/InstCombine/InstCombineVectorOps.cpp
+20-21llvm/test/Transforms/InstCombine/shuffle-bitcast-widen.ll
+4-12llvm/test/Transforms/InstCombine/X86/x86-sse4a.ll
+4-12llvm/test/Transforms/InstCombine/X86/x86-sse4a-inseltpoison.ll
+10-0llvm/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp
+124-3743 files not shown
+128-3809 files

LLVM/project f66a042 — llvm/test/CodeGen/NVPTX shuffle-packed.ll, llvm/test/Transforms/InstCombine shuffle-bitcast-widen.ll

[InstCombine] Add shuffle-bitcast tests
DeltaFile
+357-0llvm/test/CodeGen/NVPTX/shuffle-packed.ll
+254-0llvm/test/Transforms/InstCombine/shuffle-bitcast-widen.ll
+611-02 files

LLVM/project 5bbc49f — llvm/utils/TableGen/Common CodeGenTarget.cpp

TableGen: Fix advancing past the end of an empty macro fusion list (#239397)

The MacroFusions list could be empty, so drop_begin went off the
end. This trapped on MSVC debug builds for targets without
fusions. Use adjacent_find to locate the duplicate instead.

Fixes regression from #239102.

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+8-6llvm/utils/TableGen/Common/CodeGenTarget.cpp
+8-61 files

LLVM/project 180ec55 — compiler-rt/lib/scudo/standalone/fuzz allocator_fuzzer.cpp

[scudo] Fix a bug in the handling of realloc. (#238508)

Instead of adding the new pointer to the total size, it subtracted.
Fixed now.
DeltaFile
+3-3compiler-rt/lib/scudo/standalone/fuzz/allocator_fuzzer.cpp
+3-31 files

LLVM/project 1076cc0 — llvm/include/llvm/IR RuntimeLibcalls.td

RuntimeLibcalls: Add signatures for the MIPS16 return helpers

MIPS16 functions call these to move a floating point return value into
floating point registers. Each takes the value being returned, with
complex values as a pair of floats or doubles.

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+7-4llvm/include/llvm/IR/RuntimeLibcalls.td
+7-41 files

LLVM/project 20bde2b — llvm/include/llvm/IR RuntimeLibcalls.td, llvm/lib/Target/Mips MipsSubtarget.cpp

RuntimeLibcalls: Add the MIPS16 hard float helpers to "compiler-rt"

The __mips16_* hard float helpers were not in any library, so they
were never available. libgcc's mips16.S provides them for O32, but not
for R6. compiler-rt does not provide them, but we don't get try to
distinguish the 2.

Since these coexist with standard symbol names, this needs explicit
handling to prefer these implementations.

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+45-34llvm/include/llvm/IR/RuntimeLibcalls.td
+67-8llvm/lib/Target/Mips/MipsSubtarget.cpp
+34-0llvm/test/Transforms/Util/DeclareRuntimeLibcalls/mips.ll
+146-423 files