LLVM/project 4cbd65a — llvm/lib/Transforms/Vectorize/SLPVectorizer SLPUtils.h

Address comments

Created using spr 1.3.7
DeltaFile
+3-1llvm/lib/Transforms/Vectorize/SLPVectorizer/SLPUtils.h
+3-11 files

LLVM/project 79659c7 — clang/include/clang/Basic Builtins.td

Remove the comment on the InterlockedCompareExchangeFloatBitwise builtin
DeltaFile
+0-1clang/include/clang/Basic/Builtins.td
+0-11 files

LLVM/project 5e9f823 — clang/lib/Sema SemaHLSL.cpp, clang/test/CodeGenHLSL/builtins RWByteAddressBuffer-InterlockedCompareStoreFloatBitwise.hlsl InterlockedCompareStoreFloatBitwise.hlsl

First attempt implementing InterlockedCompareStoreFloatBitwise



DeltaFile
+100-0clang/test/SemaHLSL/BuiltIns/InterlockedCompareStoreFloatBitwise-errors.hlsl
+39-0clang/test/SemaHLSL/BuiltIns/ByteAddressBuffer-InterlockedCompareStoreFloatBitwise-sm60.hlsl
+35-0clang/test/CodeGenHLSL/builtins/InterlockedCompareStoreFloatBitwise.hlsl
+30-0llvm/test/CodeGen/DirectX/ResourceAtomicCompareStoreFloat.ll
+27-0clang/test/CodeGenHLSL/builtins/RWByteAddressBuffer-InterlockedCompareStoreFloatBitwise.hlsl
+16-6clang/lib/Sema/SemaHLSL.cpp
+247-66 files not shown
+311-1012 files

LLVM/project ea6d1ac — clang/include/clang/Basic Builtins.td

Remove the comment on the InterlockedCompareStoreFloatBitwise builtin
DeltaFile
+0-1clang/include/clang/Basic/Builtins.td
+0-11 files

LLVM/project 7d15b3d — clang/test/CodeGenHLSL/builtins RWTexture-Interlocked.hlsl

Add InterlockedCompareExchangeFloatBitwise coverage to the texture test
DeltaFile
+5-0clang/test/CodeGenHLSL/builtins/RWTexture-Interlocked.hlsl
+5-01 files

LLVM/project a937210 — clang/test/CodeGenHLSL/builtins RWBuffer-Interlocked.hlsl RasterizerOrderedByteAddressBuffer-InterlockedCompareExchangeFloatBitwise.hlsl, clang/test/SemaHLSL/BuiltIns ByteAddressBuffer-InterlockedCompareExchangeFloatBitwise-sm60.hlsl InterlockedCompareExchangeFloatBitwise-errors.hlsl

First attempt implementing InterlockedCompareExchangeFloatBitwise



DeltaFile
+119-0clang/test/SemaHLSL/BuiltIns/InterlockedCompareExchangeFloatBitwise-errors.hlsl
+43-0clang/test/CodeGenHLSL/builtins/InterlockedCompareExchangeFloatBitwise.hlsl
+42-0clang/test/SemaHLSL/BuiltIns/ByteAddressBuffer-InterlockedCompareExchangeFloatBitwise-sm60.hlsl
+32-0clang/test/CodeGenHLSL/builtins/RWByteAddressBuffer-InterlockedCompareExchangeFloatBitwise.hlsl
+25-0clang/test/CodeGenHLSL/builtins/RasterizerOrderedByteAddressBuffer-InterlockedCompareExchangeFloatBitwise.hlsl
+10-0clang/test/CodeGenHLSL/builtins/RWBuffer-Interlocked.hlsl
+271-05 files not shown
+298-311 files

LLVM/project 1a222f7 — clang/test/CodeGenHLSL/builtins RWTexture-Interlocked.hlsl

Add InterlockedCompareStoreFloatBitwise coverage to the texture test
DeltaFile
+7-0clang/test/CodeGenHLSL/builtins/RWTexture-Interlocked.hlsl
+7-01 files

LLVM/project 4f764f7 — clang/test/CodeGenHLSL/builtins RasterizerOrderedByteAddressBuffer-InterlockedCompareExchange.hlsl InterlockedCompareExchange.hlsl

address joao, merge identical check lines and explain the ROV method body
DeltaFile
+4-8clang/test/CodeGenHLSL/builtins/InterlockedCompareExchange.hlsl
+5-0clang/test/CodeGenHLSL/builtins/RasterizerOrderedByteAddressBuffer-InterlockedCompareExchange.hlsl
+9-82 files

LLVM/project 0ae27ad — llvm/lib/Target/AArch64 AArch64TargetTransformInfo.cpp, llvm/test/Analysis/CostModel/AArch64 sve-ldst.ll masked_ldst.ll

Revert "[AArch64][CostModel] Consider some nxv1 operations as legal" (#226531)

Reverts llvm/llvm-project#214471

This caused a failure in
https://lab.llvm.org/buildbot/#/builders/198/builds/15417 and I want to
spend a bit more time to test the ISel for vector_reverse and
vector_splice. It's also quite surprising that the test picked a VF of
`vscale x 1`
DeltaFile
+41-22llvm/test/Analysis/CostModel/AArch64/masked_ldst.ll
+9-48llvm/test/CodeGen/AArch64/sve-int-arith.ll
+20-31llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp
+4-4llvm/test/Analysis/CostModel/AArch64/sve-ldst.ll
+3-3llvm/test/Transforms/LoopVectorize/AArch64/scalable-vectorization-cost-tuning.ll
+6-0llvm/test/Transforms/LoopVectorize/AArch64/scalable-call.ll
+83-1084 files not shown
+89-11410 files

LLVM/project d220d5e — clang/include/clang/Interpreter Interpreter.h, clang/lib/Interpreter Interpreter.cpp

[clang-repl] Initialized HIP environment for clang-repl (#217582)

This PR initializes the HIP environment for clang-repl. Since an
IncrementalHipDeviceParser does not exist yet, a message is printed
after the environment setup indicating that the HIP environment was set
up but is not yet supported.

It also adds a test file that runs clang-repl with the -hip option and
checks that this message is printed. Once the parser is built, the
current test file will be removed and replaced with tests that verify
the complete flow.

This PR has a prerequisite, #217228, which skips emitting the
`__hip_cuid_` global under incremental extensions. Without it,
clang-repl's HIP mode would emit the same symbol in every incremental
module and fail at JIT link with a duplicate-symbol error.

Assisted by Claude Opus 4.8
DeltaFile
+45-20clang/tools/clang-repl/ClangRepl.cpp
+35-22clang/lib/Interpreter/Interpreter.cpp
+53-1clang/test/lit.cfg.py
+32-7clang/include/clang/Interpreter/Interpreter.h
+11-0clang/test/Interpreter/HIP/hip-environment.hip
+2-0clang/test/Interpreter/HIP/lit.local.cfg
+178-506 files

LLVM/project 53afbe1 — llvm/lib/Transforms/Utils VNCoercion.cpp, llvm/test/Transforms/GVN byte-conversion.ll

[GVN] Don't coerce forwarded byte values through integers

When GVN forwards a store to a load of a different type, it goes through an
integer. It casts the stored value to `iN`, then shifts and truncates it. For
byte values that cast is wrong. It drops pointer provenance, and a single
poison bit makes the whole result poison.

Byte stores, and pointer stores that feed byte loads, no longer go through an
integer. GVN bitcasts the stored value to `bN`, takes the loaded bits with
`bitextract`, and bitcasts the result to the load type. Byte vector stores
take the same path.
DeltaFile
+57-112llvm/test/Transforms/GVN/byte-conversion.ll
+20-6llvm/lib/Transforms/Utils/VNCoercion.cpp
+77-1182 files

LLVM/project 8c510a5 — llvm/test/Transforms/GVN byte-conversion.ll

[GVN] Pre-commit tests for byte conversions
DeltaFile
+469-0llvm/test/Transforms/GVN/byte-conversion.ll
+469-01 files

LLVM/project 3bcbae4 — lldb/include/lldb/Target DynamicRegisterInfo.h, lldb/source/Target DynamicRegisterInfo.cpp

[lldb] Introduce DynamicRegisterInfo::RegisterSetWithStorage (#225555)

The RegisterSet struct is created in 2 different ways:
1.) Statically in headers/source files for register sets that are known
    ahead of time.
2.) Dynamically according to input from outside of LLDB. Usually this is
through the gdb-remote stub, but may also come from a python script or
    by determining an ISA variant's features (e.g. in RISCV).

This PR aims to address the lifetime of strings in RegisterSet. In
scenario (1), the lifetime of all data in a RegisterSet is static and
there is no concern about dangling pointers. However, in scenario (2),
DynamicRegisterInfo maintains a vector of RegisterSets. Until now, it
has relied on ConstString to persist the storage for the strings
indefinitely. As part of my quest to remove ConstString, I am
introducing a new struct wrapping RegisterSet that is responsible for
the storage and lifetime of the underlying RegisterSet strings.
DeltaFile
+34-1lldb/include/lldb/Target/DynamicRegisterInfo.h
+10-11lldb/source/Target/DynamicRegisterInfo.cpp
+44-122 files

LLVM/project 05f0bf0 — llvm/lib/Target/Mips MipsSubtarget.cpp MipsSubtarget.h

Mips: Remove redundant Triple copy from the subtarget (#226528)

MCSubtargetInfo already stores the target triple, so MipsSubtarget's own
copy is unnecessary.

Co-authored-by: Claude Opus 5 <noreply at anthropic.com>
DeltaFile
+3-5llvm/lib/Target/Mips/MipsSubtarget.h
+1-1llvm/lib/Target/Mips/MipsSubtarget.cpp
+4-62 files

LLVM/project 363b079 — llvm/lib/Transforms/Utils SCCPSolver.cpp, llvm/test/Transforms/SCCP freeze-struct.ll

[SCCP] Support structure in freeze
DeltaFile
+125-0llvm/test/Transforms/SCCP/freeze-struct.ll
+16-15llvm/lib/Transforms/Utils/SCCPSolver.cpp
+141-152 files

LLVM/project 092ff97 — llvm/docs/GlobalISel IRTranslator.md, llvm/lib/CodeGen/GlobalISel IRTranslator.cpp

[GlobalISel] Translate byte to ptr bitcasts to `G_INTTOPTR`/`G_PTRTOINT`
DeltaFile
+137-3llvm/test/CodeGen/Generic/GlobalISel/irtranslator-byte-type.ll
+16-10llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
+6-4llvm/docs/GlobalISel/IRTranslator.md
+159-173 files

LLVM/project d3efda8 — llvm/lib/IR IRBuilder.cpp, llvm/test/CodeGen/AMDGPU promote-alloca-byte-ptr-cast.ll

Revert "[IRBuilder] Handle byte types in CreateBitPreservingCastChain (#209557)"
DeltaFile
+0-49llvm/test/CodeGen/AMDGPU/promote-alloca-byte-ptr-cast.ll
+0-18llvm/unittests/IR/IRBuilderTest.cpp
+2-6llvm/lib/IR/IRBuilder.cpp
+2-733 files

LLVM/project e6d86ac — llvm/lib/Transforms/Utils SCCPSolver.cpp, llvm/test/Transforms/SCCP freeze-struct.ll

[SCCP] Support structure in freeze
DeltaFile
+141-0llvm/test/Transforms/SCCP/freeze-struct.ll
+16-15llvm/lib/Transforms/Utils/SCCPSolver.cpp
+157-152 files

LLVM/project 3621db6 — clang/docs ReleaseNotes.md, clang/lib/Sema SemaOpenMP.cpp

[Clang][OpenMP] Fix crash on `_BitInt` loop bounds and counters in loop analysis (#226464)

Fixes #140074

When building the iteration count of an OpenMP loop, Sema derives a few
integer types from bit widths, e.g. to promote the upper bound to an
unsigned type as wide as the wider bound so that `upper - lower` cannot
overflow. Those types came from `ASTContext::getIntTypeForBitwidth`,
which only knows the standard integer widths and returns a null type for
anything else. With a bound or loop counter of type `_BitInt(931)` the
request was for a 960-bit type, the result was null, and it went
straight into `PerformImplicitConversion`, which asserted. The
`collapse(2)` in the reduced reproducer is incidental; a plain `#pragma
omp for` on the same loop crashes the same way.

The loop analysis now goes through a small helper that asks for the
standard type first and otherwise builds the `_BitInt` type of that
width and signedness with `ASTContext::getBitIntType`. It is used at the
three places that derive a type from a loop width: the upper-bound

    [4 lines not shown]
DeltaFile
+46-0clang/test/OpenMP/for_loop_bitint_messages.c
+15-4clang/lib/Sema/SemaOpenMP.cpp
+2-0clang/docs/ReleaseNotes.md
+63-43 files

LLVM/project 07aec21 — llvm/lib/Target/AMDGPU SIPostRA16BitMovFolding.cpp, llvm/test/CodeGen/AMDGPU llvm.amdgcn.image.sample.a16.dim.ll amdgcn.bitcast.1024bit.ll

[AMDGPU] merge 16bit mov pairs in post-RA peephole  (#208625)

Address https://github.com/llvm/llvm-project/issues/207011. Add 5
patterns to merge 16bit mov pairs.

Since we hoist instruction which might cross the waitcnt boundary,
insert a new pass before waitcnt for this transformation

Co-Authored-By: Claude
DeltaFile
+478-979llvm/test/CodeGen/AMDGPU/llc-pipeline-npm.ll
+411-0llvm/test/CodeGen/AMDGPU/si-post-ra-merge-v-mov-b16.mir
+363-0llvm/lib/Target/AMDGPU/SIPostRA16BitMovFolding.cpp
+72-167llvm/test/CodeGen/AMDGPU/vector_shuffle.packed.ll
+43-59llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.1024bit.ll
+21-42llvm/test/CodeGen/AMDGPU/llvm.amdgcn.image.sample.a16.dim.ll
+1,388-1,24730 files not shown
+1,545-1,47336 files

LLVM/project 2ee7dbf — llvm/lib/Target/AMDGPU GCNSubtarget.h AMDGPU.td, llvm/test/CodeGen/AMDGPU coexec-sched-flavor-classification.mir

[AMDGPU] Make GFX1250VALUBlockingCycles a feature.

Included (intentional) behavior change: gfx1251 (w/ FullRate64Ops) does not have
GFX1250VALUBlockingCycles feature --- table is only partially usable for gfx1251.
DeltaFile
+8-0llvm/lib/Target/AMDGPU/AMDGPU.td
+0-4llvm/lib/Target/AMDGPU/GCNSubtarget.h
+3-0llvm/test/CodeGen/AMDGPU/coexec-sched-flavor-classification.mir
+11-43 files

LLVM/project 1841b8c — llvm/lib/IR IRBuilder.cpp, llvm/test/CodeGen/AMDGPU promote-alloca-byte-ptr-cast.ll

Revert "[IRBuilder] Handle byte types in CreateBitPreservingCastChain (#209557)"
DeltaFile
+0-49llvm/test/CodeGen/AMDGPU/promote-alloca-byte-ptr-cast.ll
+0-18llvm/unittests/IR/IRBuilderTest.cpp
+2-6llvm/lib/IR/IRBuilder.cpp
+2-733 files

LLVM/project 31732d2 — llvm/docs/GlobalISel IRTranslator.md, llvm/lib/CodeGen/GlobalISel IRTranslator.cpp

[GlobalISel] Translate byte to ptr bitcasts to `G_INTTOPTR`/`G_PTRTOINT`
DeltaFile
+137-3llvm/test/CodeGen/Generic/GlobalISel/irtranslator-byte-type.ll
+15-10llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
+5-4llvm/docs/GlobalISel/IRTranslator.md
+157-173 files

LLVM/project b3ed324 — lld/test/Unit lit.cfg.py, lld/unittests/AsLibELF CMakeLists.txt OutputStream.cpp

[lld][test] Use LLVM helpers for input file discovery (#220404)

This was a suggestion on #220340 to avoid the custom env var handling
and use the `getInputFileDirectory` helper from the LLVM support library
DeltaFile
+12-21lld/unittests/AsLibELF/ROCm.cpp
+6-3lld/unittests/AsLibELF/OutputStream.cpp
+0-4lld/test/Unit/lit.cfg.py
+2-1lld/unittests/AsLibELF/CMakeLists.txt
+20-294 files

LLVM/project 9340033 — llvm/lib/Transforms/Vectorize SLPVectorizer.cpp, llvm/lib/Transforms/Vectorize/SLPVectorizer SLPMemoryUtils.cpp SLPCompatibilityAnalysis.cpp

[𝘀𝗽𝗿] initial version

Created using spr 1.3.7
DeltaFile
+813-943llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+23-27llvm/lib/Transforms/Vectorize/SLPVectorizer/SLPUtils.cpp
+16-16llvm/lib/Transforms/Vectorize/SLPVectorizer/SLPShuffleAnalysis.h
+30-0llvm/lib/Transforms/Vectorize/SLPVectorizer/SLPUtils.h
+10-14llvm/lib/Transforms/Vectorize/SLPVectorizer/SLPCompatibilityAnalysis.cpp
+3-3llvm/lib/Transforms/Vectorize/SLPVectorizer/SLPMemoryUtils.cpp
+895-1,0031 files not shown
+898-1,0067 files

LLVM/project f2b3ba3 — mlir/test/Integration/Dialect/XeGPU/WG simple_mxfp_gemm.mlir simple_gemm_bf16.mlir

[MLIR][XeGPU] Add MXFP fp8 WG GEMM tests and use shared input set (#225944)

Adds four workgroup-level tests, updates two and renames one, so that
seven tests covering bf16, mx-fp4 and mx-fp8 exercise the same
arithmetic on the same operand values and check against the same
expected result.

1. simple_mxfp_gemm -> simple_mxfp_gemm_F4 - renamed, for consistency
with the F4/F8 suffixes used by the quantize and dequantize tests

2. (new) simple_gemm_bf16 - non-quantized bf16 GEMM at the MXFP problem
size, as the unquantized comparison point, and where the shared input
set is documented
3. (new) simple_mxfp_gemm_F8 - f8E5M2 operands with f8E8M0FNU scales
4. (new) simple_mxfp_gemm_dequantizeB_F8                 
5. (new) simple_mxfp_gemm_quantizeA_F8 - fp8 counterparts of the
existing fp4 tests
6. simple_mxfp_gemm_dequantizeB_F4 and simple_mxfp_gemm_quantizeA_F4 are
updated in place.

    [46 lines not shown]
DeltaFile
+400-0mlir/test/Integration/Dialect/XeGPU/WG/simple_mxfp_gemm_F4.mlir
+374-0mlir/test/Integration/Dialect/XeGPU/WG/simple_mxfp_gemm_quantizeA_F8.mlir
+350-0mlir/test/Integration/Dialect/XeGPU/WG/simple_mxfp_gemm_F8.mlir
+335-0mlir/test/Integration/Dialect/XeGPU/WG/simple_mxfp_gemm_dequantizeB_F8.mlir
+262-0mlir/test/Integration/Dialect/XeGPU/WG/simple_gemm_bf16.mlir
+0-206mlir/test/Integration/Dialect/XeGPU/WG/simple_mxfp_gemm.mlir
+1,721-2062 files not shown
+2,046-2528 files

LLVM/project 774b452 — llvm/include/llvm/Analysis TargetTransformInfo.h, llvm/include/llvm/CodeGen BasicTTIImpl.h

[Analysis][RISCV] More accurately estimate the cost of strided vector loads (#175135)

For small constant strides, attempt to predict the amount of coalescing
that will be done by the target machine to give a better cost estimate.

Currently, strided loads/stores are costed as having a cost of 1 per
element (i.e. being equivalent to scalar loads/stores).

---------

Co-authored-by: Luke Lau <luke_lau at icloud.com>
DeltaFile
+37-0llvm/test/Analysis/CostModel/RISCV/vp-intrinsics.ll
+23-0llvm/lib/Target/RISCV/RISCVTargetTransformInfo.cpp
+14-6llvm/include/llvm/Analysis/TargetTransformInfo.h
+8-0llvm/lib/Target/RISCV/RISCVSubtarget.h
+5-2llvm/include/llvm/CodeGen/BasicTTIImpl.h
+4-1llvm/lib/Target/RISCV/RISCVProcessors.td
+91-96 files

LLVM/project 033bd5f — llvm/lib/Target/AArch64 AArch64TargetTransformInfo.cpp, llvm/test/Analysis/CostModel/AArch64 sve-ldst.ll masked_ldst.ll

Revert "[AArch64][CostModel] Consider some nxv1 operations as legal (#214471)"

This reverts commit 3897817145ffa3204e2593cb0b26c535724221c2.
DeltaFile
+41-22llvm/test/Analysis/CostModel/AArch64/masked_ldst.ll
+9-48llvm/test/CodeGen/AArch64/sve-int-arith.ll
+20-31llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp
+4-4llvm/test/Analysis/CostModel/AArch64/sve-ldst.ll
+3-3llvm/test/Transforms/LoopVectorize/AArch64/scalable-vectorization-cost-tuning.ll
+6-0llvm/test/Transforms/LoopVectorize/AArch64/scalable-call.ll
+83-1084 files not shown
+89-11410 files

LLVM/project 23e12c9 — clang/include/clang/CIR/Dialect/IR CIROps.td CIRAttrs.td, clang/lib/CIR/CodeGen CIRGenBuilder.h

[CIR] Added fast-math flags to LLVM intrinsic calls (#224899)

Added fast-math flags attribute to CIR which cir.call_llvm_intrinsic now
carries through DirectToLLVM lowering. CIR now preserves fast-math flags
such as reassoc when lowering to llvm.call_intrinsic.

Added test for the same.
DeltaFile
+34-0clang/include/clang/CIR/Dialect/IR/CIRAttrs.td
+25-1clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.cpp
+19-0clang/test/CIR/Lowering/call-llvm-intrinsic.cir
+11-0clang/lib/CIR/CodeGen/CIRGenBuilder.h
+7-2clang/include/clang/CIR/Dialect/IR/CIROps.td
+8-0clang/test/CIR/IR/enum-attrs.cir
+104-36 files

LLVM/project 746fcb8 — llvm/lib/Target/Mips MipsSubtarget.cpp MipsSubtarget.h

Mips: Remove redundant Triple copy from the subtarget

MCSubtargetInfo already stores the target triple, so MipsSubtarget's own
copy is unnecessary.

Co-Authored-By: Claude Opus 5 <noreply at anthropic.com>
DeltaFile
+3-5llvm/lib/Target/Mips/MipsSubtarget.h
+1-1llvm/lib/Target/Mips/MipsSubtarget.cpp
+4-62 files