LLVM/project 5fba8c6clang/test/CodeGen builtin-clear-padding-codegen.c, clang/test/CodeGenCXX builtin-clear-padding-codegen.cpp

[clang][test] Add more tests for __builtin_clear_padding (#205813)

Follow-up to https://github.com/llvm/llvm-project/pull/201102 which
fixed Clang's `__builtin_clear_padding` treatment of unnamed bitfields.

This patch adds some more test coverage (more layouts, and verifies IR).

Used Claude to generate the layouts. Manually ran
`llvm/utils/update_cc_test_checks.py` to generate the `CHECK` directives
and confirmed that the bit-masks in the IR match the expected
`__builtin_clear_padding` behaviour.

Assisted-by: claude
DeltaFile
+249-0clang/test/CodeGenCXX/builtin-clear-padding-codegen.cpp
+249-0clang/test/CodeGen/builtin-clear-padding-codegen.c
+498-02 files

LLVM/project 9793907llvm/lib/Target/Lanai LanaiDelaySlotFiller.cpp LanaiCodeGenPassBuilder.cpp, llvm/test/CodeGen/Lanai llc-pipeline-npm.ll machine-verifier-regression.ll

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

Created using spr 1.3.7

[skip ci]
DeltaFile
+79-40llvm/lib/Target/Lanai/LanaiDelaySlotFiller.cpp
+97-0llvm/lib/Target/Lanai/LanaiCodeGenPassBuilder.cpp
+93-0llvm/test/CodeGen/Lanai/llc-pipeline-npm.ll
+72-0llvm/test/CodeGen/Lanai/machine-verifier-regression.ll
+46-24llvm/lib/Target/Lanai/LanaiMemAluCombiner.cpp
+39-0llvm/lib/Target/Lanai/LanaiAsmPrinter.h
+426-6431 files not shown
+571-8737 files

LLVM/project 05c34f7llvm/lib/Target/Lanai LanaiDelaySlotFiller.cpp LanaiCodeGenPassBuilder.cpp, llvm/test/CodeGen/Lanai llc-pipeline-npm.ll machine-verifier-regression.ll

[𝘀𝗽𝗿] initial version

Created using spr 1.3.7
DeltaFile
+79-40llvm/lib/Target/Lanai/LanaiDelaySlotFiller.cpp
+97-0llvm/lib/Target/Lanai/LanaiCodeGenPassBuilder.cpp
+93-0llvm/test/CodeGen/Lanai/llc-pipeline-npm.ll
+72-0llvm/test/CodeGen/Lanai/machine-verifier-regression.ll
+46-24llvm/lib/Target/Lanai/LanaiMemAluCombiner.cpp
+39-0llvm/lib/Target/Lanai/LanaiAsmPrinter.h
+426-6431 files not shown
+570-9037 files

LLVM/project c7eec22llvm/lib/Target/Lanai LanaiDelaySlotFiller.cpp LanaiCodeGenPassBuilder.cpp, llvm/test/CodeGen/Lanai machine-verifier-regression.ll

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

Created using spr 1.3.7

[skip ci]
DeltaFile
+79-40llvm/lib/Target/Lanai/LanaiDelaySlotFiller.cpp
+97-0llvm/lib/Target/Lanai/LanaiCodeGenPassBuilder.cpp
+71-0llvm/test/CodeGen/Lanai/machine-verifier-regression.ll
+46-24llvm/lib/Target/Lanai/LanaiMemAluCombiner.cpp
+39-0llvm/lib/Target/Lanai/LanaiAsmPrinter.h
+36-0llvm/lib/Target/Lanai/LanaiAsmPrinter.cpp
+368-6412 files not shown
+448-8718 files

LLVM/project f763c4dllvm/lib/Target/Lanai LanaiDelaySlotFiller.cpp LanaiCodeGenPassBuilder.cpp, llvm/test/CodeGen/Lanai llc-pipeline-npm.ll machine-verifier-regression.ll

[𝘀𝗽𝗿] initial version

Created using spr 1.3.7
DeltaFile
+79-40llvm/lib/Target/Lanai/LanaiDelaySlotFiller.cpp
+97-0llvm/lib/Target/Lanai/LanaiCodeGenPassBuilder.cpp
+93-0llvm/test/CodeGen/Lanai/llc-pipeline-npm.ll
+72-0llvm/test/CodeGen/Lanai/machine-verifier-regression.ll
+46-24llvm/lib/Target/Lanai/LanaiMemAluCombiner.cpp
+39-0llvm/lib/Target/Lanai/LanaiAsmPrinter.h
+426-6431 files not shown
+571-8737 files

LLVM/project 8aa8acbllvm/lib/Target/Lanai LanaiCodeGenPassBuilder.cpp

fix

Created using spr 1.3.7
DeltaFile
+2-0llvm/lib/Target/Lanai/LanaiCodeGenPassBuilder.cpp
+2-01 files

LLVM/project 1d651efllvm/lib/Target/Lanai LanaiCodeGenPassBuilder.cpp

[𝘀𝗽𝗿] changes introduced through rebase

Created using spr 1.3.7

[skip ci]
DeltaFile
+2-0llvm/lib/Target/Lanai/LanaiCodeGenPassBuilder.cpp
+2-01 files

LLVM/project c338ee0llvm/lib/Target/Lanai LanaiCodeGenPassBuilder.cpp, llvm/test/CodeGen/Lanai machine-verifier-regression.ll

fix

Created using spr 1.3.7
DeltaFile
+2-2llvm/test/CodeGen/Lanai/machine-verifier-regression.ll
+2-0llvm/lib/Target/Lanai/LanaiCodeGenPassBuilder.cpp
+4-22 files

LLVM/project a6d449dllvm/lib/Target/Lanai LanaiCodeGenPassBuilder.cpp

[𝘀𝗽𝗿] changes introduced through rebase

Created using spr 1.3.7

[skip ci]
DeltaFile
+2-0llvm/lib/Target/Lanai/LanaiCodeGenPassBuilder.cpp
+2-01 files

LLVM/project f8fc286llvm/lib/Target/Lanai LanaiCodeGenPassBuilder.cpp

fix

Created using spr 1.3.7
DeltaFile
+2-0llvm/lib/Target/Lanai/LanaiCodeGenPassBuilder.cpp
+2-01 files

LLVM/project a2f31e7llvm/lib/Target/Lanai LanaiCodeGenPassBuilder.cpp

[𝘀𝗽𝗿] changes introduced through rebase

Created using spr 1.3.7

[skip ci]
DeltaFile
+2-0llvm/lib/Target/Lanai/LanaiCodeGenPassBuilder.cpp
+2-01 files

LLVM/project cb838ccllvm/lib/Target/Lanai LanaiCodeGenPassBuilder.cpp

fix

Created using spr 1.3.7
DeltaFile
+2-0llvm/lib/Target/Lanai/LanaiCodeGenPassBuilder.cpp
+2-01 files

LLVM/project 631e444llvm/lib/Target/Lanai LanaiCodeGenPassBuilder.cpp

[𝘀𝗽𝗿] changes introduced through rebase

Created using spr 1.3.7

[skip ci]
DeltaFile
+2-0llvm/lib/Target/Lanai/LanaiCodeGenPassBuilder.cpp
+2-01 files

LLVM/project ec0d0b5llvm/lib/Target/Lanai LanaiCodeGenPassBuilder.cpp

fix

Created using spr 1.3.7
DeltaFile
+2-0llvm/lib/Target/Lanai/LanaiCodeGenPassBuilder.cpp
+2-01 files

LLVM/project c581e8fllvm/lib/Target/Lanai LanaiCodeGenPassBuilder.cpp

[𝘀𝗽𝗿] changes introduced through rebase

Created using spr 1.3.7

[skip ci]
DeltaFile
+2-0llvm/lib/Target/Lanai/LanaiCodeGenPassBuilder.cpp
+2-01 files

LLVM/project 4da25bdllvm/lib/Target/Lanai LanaiCodeGenPassBuilder.cpp

fix

Created using spr 1.3.7
DeltaFile
+2-0llvm/lib/Target/Lanai/LanaiCodeGenPassBuilder.cpp
+2-01 files

LLVM/project df0f102llvm/lib/Target/Lanai LanaiCodeGenPassBuilder.cpp

[𝘀𝗽𝗿] changes introduced through rebase

Created using spr 1.3.7

[skip ci]
DeltaFile
+2-0llvm/lib/Target/Lanai/LanaiCodeGenPassBuilder.cpp
+2-01 files

LLVM/project 4a15b5allvm/lib/Target/Lanai LanaiCodeGenPassBuilder.cpp

fix

Created using spr 1.3.7
DeltaFile
+2-0llvm/lib/Target/Lanai/LanaiCodeGenPassBuilder.cpp
+2-01 files

LLVM/project fc990e7llvm/lib/Target/Lanai LanaiCodeGenPassBuilder.cpp

[𝘀𝗽𝗿] changes introduced through rebase

Created using spr 1.3.7

[skip ci]
DeltaFile
+2-0llvm/lib/Target/Lanai/LanaiCodeGenPassBuilder.cpp
+2-01 files

LLVM/project 4fdc3dallvm/lib/Target/Lanai LanaiCodeGenPassBuilder.cpp

fix

Created using spr 1.3.7
DeltaFile
+2-0llvm/lib/Target/Lanai/LanaiCodeGenPassBuilder.cpp
+2-01 files

LLVM/project 4b0a61fllvm/lib/Target/Lanai LanaiCodeGenPassBuilder.cpp

[𝘀𝗽𝗿] changes introduced through rebase

Created using spr 1.3.7

[skip ci]
DeltaFile
+2-0llvm/lib/Target/Lanai/LanaiCodeGenPassBuilder.cpp
+2-01 files

LLVM/project 620ff32llvm/lib/Target/Lanai LanaiCodeGenPassBuilder.cpp

fix

Created using spr 1.3.7
DeltaFile
+2-0llvm/lib/Target/Lanai/LanaiCodeGenPassBuilder.cpp
+2-01 files

LLVM/project d9cc33cclang/lib/CIR/Dialect/IR CIRDialect.cpp, clang/test/CIR/Transforms vector-cmp-fold.cir

Fix cir vec cmp fold (#202502)

Fixes #202431

This PR fixes two bugs in `VecCmpOp::fold` that caused incorrect
constant folding of vector comparisons.

1. Wrong result value: True comparison results were folded to 1, but the
SIMD convention and `VecCmpOp`'s own documentation require 0 (false) or
-1 / all-ones (true). For example, a `ne` comparison where all elements
differ should produce [`-1, -1, -1, -1]`, not `[1, 1, 1, 1]`.

2. Unsigned comparisons treated as signed: Ordered comparisons `(lt, le,
gt, ge)` always used `getSInt()`, treating unsigned element types as
signed. This produced wrong results for values whose high bit is set,
e.g., for `u8`, the value 255 was interpreted as -1, so 0 > 255
(unsigned: false) was incorrectly folded to true.

Fix: Dispatch to `getUInt()` or `getSInt()` based on the input element

    [2 lines not shown]
DeltaFile
+79-12clang/test/CIR/Transforms/vector-cmp-fold.cir
+32-10clang/lib/CIR/Dialect/IR/CIRDialect.cpp
+111-222 files

LLVM/project 5d35436clang/docs conf.py, libc/shared/builtins adddf3.h

Merge users/rnk/cir-doc-pygments into markdown-docs
DeltaFile
+40-0utils/docs/llvm_sphinx/ext/mlir_pygments.py
+32-0libc/src/__support/builtins/adddf3.h
+29-0libc/shared/builtins/adddf3.h
+0-13clang/docs/conf.py
+9-0libc/src/__support/builtins/CMakeLists.txt
+1-1libc/test/shared/shared_builtins_test.cpp
+111-143 files not shown
+114-159 files

LLVM/project b15fdf4flang/include/flang/Support Fortran.h, flang/lib/Semantics expression.cpp check-call.cpp

[flang][cuda] Exclude non-variable actuals from unified-memory CUDA data attribute relaxation (#206121)

Under -gpu=mem:unified, the CUDA data attribute compatibility check
(AreCompatibleCUDADataAttrs) allows an unattributed actual argument to
bind to a Device/Managed/Unified dummy. This relaxation is correct for
variables whose storage is accessible from device code under unified
memory, but not for non-variable expression results (e.g. intrinsic call
results like RESHAPE(...)), which are host temporaries.

Without this fix, a generic SUM call like sum(reshape(hostArray, ...),
dim=2) could resolve to a device-specific overload instead of the
intrinsic, because the RESHAPE result was incorrectly considered
compatible with a DEVICE-attributed dummy.

This patch:

- Adds an actualIsVariable parameter to AreCompatibleCUDADataAttrs
(defaulting to true for backward compatibility) and gates the
unified-memory relaxation for Device/Managed/Unified dummies on it.

    [3 lines not shown]
DeltaFile
+49-0flang/test/Semantics/CUDA/cuf-generic-nonvar-unified.cuf
+7-4flang/lib/Support/Fortran.cpp
+5-1flang/lib/Semantics/expression.cpp
+2-1flang/include/flang/Support/Fortran.h
+1-1flang/lib/Semantics/check-call.cpp
+64-75 files

LLVM/project 38efa07llvm/lib/Target/Lanai LanaiDelaySlotFiller.cpp LanaiCodeGenPassBuilder.cpp, llvm/test/CodeGen/Lanai machine-verifier-regression.ll

[𝘀𝗽𝗿] initial version

Created using spr 1.3.7
DeltaFile
+79-40llvm/lib/Target/Lanai/LanaiDelaySlotFiller.cpp
+95-0llvm/lib/Target/Lanai/LanaiCodeGenPassBuilder.cpp
+71-0llvm/test/CodeGen/Lanai/machine-verifier-regression.ll
+46-24llvm/lib/Target/Lanai/LanaiMemAluCombiner.cpp
+39-0llvm/lib/Target/Lanai/LanaiAsmPrinter.h
+36-0llvm/lib/Target/Lanai/LanaiAsmPrinter.cpp
+366-6412 files not shown
+446-8718 files

LLVM/project 9a981e4llvm/lib/Target/Lanai LanaiDelaySlotFiller.cpp LanaiCodeGenPassBuilder.cpp, llvm/test/CodeGen/Lanai machine-verifier-regression.ll

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

Created using spr 1.3.7

[skip ci]
DeltaFile
+79-40llvm/lib/Target/Lanai/LanaiDelaySlotFiller.cpp
+95-0llvm/lib/Target/Lanai/LanaiCodeGenPassBuilder.cpp
+46-24llvm/lib/Target/Lanai/LanaiMemAluCombiner.cpp
+39-0llvm/test/CodeGen/Lanai/machine-verifier-regression.ll
+39-0llvm/lib/Target/Lanai/LanaiAsmPrinter.h
+36-0llvm/lib/Target/Lanai/LanaiAsmPrinter.cpp
+334-6410 files not shown
+409-8316 files

LLVM/project 41aa268mlir/utils/pygments mlir_lexer.py, utils/docs/llvm_sphinx __init__.py

[docs] Register MLIR lexer for Sphinx docs

Register the in-tree MLIR Pygments lexer from the shared llvm_sphinx configuration so all llvm-project Sphinx builds can highlight fenced mlir blocks.

Also teach the MLIR lexer to consume top-level whitespace. Without this, Sphinx reports a lexer warning after the lexer is registered, and docs-clang-html fails because Sphinx warnings are treated as errors.

This makes docs-clang-html build with CLANG_ENABLE_CIR=ON.
DeltaFile
+40-0utils/docs/llvm_sphinx/ext/mlir_pygments.py
+1-1utils/docs/llvm_sphinx/__init__.py
+1-0mlir/utils/pygments/mlir_lexer.py
+42-13 files

LLVM/project 9573af3libc/shared builtins.h, libc/shared/builtins adddf3.h

[libc] add shared adddf3 builtin (#205672)

Re-exposes LLVM-libc's `__adddf3` as `shared::adddf3` for reuse by
compiler-rt's builtins.

Stacked change - merge these first:
- #200094
- #205669
- #205670
- #205671

Part of #197824
DeltaFile
+32-0libc/src/__support/builtins/adddf3.h
+29-0libc/shared/builtins/adddf3.h
+9-0libc/src/__support/builtins/CMakeLists.txt
+1-1libc/test/shared/shared_builtins_test.cpp
+1-0libc/test/shared/CMakeLists.txt
+1-0libc/shared/builtins.h
+73-16 files

LLVM/project 8e726e7clang/test/CodeGen/AArch64 neon-intrinsics.c, llvm/test/Analysis/LoopAccessAnalysis bounded-access-pattern.ll clamped-access-pattern.ll

Merge users/rnk/cir-doc-pygments into markdown-docs
DeltaFile
+1,625-0llvm/test/Transforms/LoopVectorize/bounded-load-predicated.ll
+1,076-0llvm/test/Analysis/LoopAccessAnalysis/bounded-access-pattern.ll
+0-1,076llvm/test/Analysis/LoopAccessAnalysis/clamped-access-pattern.ll
+949-0llvm/test/Transforms/LoopVectorize/runtime-check-small-bounded-ranges.ll
+0-949llvm/test/Transforms/LoopVectorize/runtime-check-small-clamped-bounds.ll
+0-724clang/test/CodeGen/AArch64/neon-intrinsics.c
+3,650-2,74963 files not shown
+6,767-3,52269 files