LLVM/project 8081af8 — clang/lib/CodeGen/TargetBuiltins RISCV.cpp, clang/lib/Headers riscv_packed_simd.h

[RISCV][P-ext] Add scalar multiply high intrinsics (#225561)

Add intrinsics, Clang builtins and SelectionDAG support for the scalar
multiply high operations.
Support
[multiply-high](https://github.com/riscv/riscv-p-spec/blob/master/P-ext-intrinsics.adoc#multiply-high).

On RV32 the non-rounding forms map to the M-extension mulh/mulhu/mulhsu
instructions and the rounding forms to the P-extension
mulhr/mulhru/mulhrsu instructions.
On RV64 the scalar spellings reuse the packed pmulh.w family on the low
words via the existing PMULH*_W patterns.
DeltaFile
+96-0clang/test/CodeGen/RISCV/rvp-intrinsics.c
+85-0llvm/test/CodeGen/RISCV/rvp-simd-32.ll
+50-0llvm/lib/Target/RISCV/RISCVISelLowering.cpp
+43-0cross-project-tests/intrinsic-header-tests/riscv_packed_simd.c
+32-0clang/lib/CodeGen/TargetBuiltins/RISCV.cpp
+14-0clang/lib/Headers/riscv_packed_simd.h
+320-02 files not shown
+340-08 files

LLVM/project 930a118 — clang/test/CodeGen/AArch64 abi-classify-sve-tuples.c abi-classify-sve-types.c, llvm/include/llvm/ABI Types.h

[LLVMABI][AARCH64] Handle vector types (#225201)

This adds handling for vector types in the AArch64 implementation of the
LLVM ABI library. Legal vectors are passed and returned directly.
Illegal vectors are coerced to an integer or an integer vector, or
passed indirectly if they are too large. Sizeless SVE types are passed
in a register of their own, and fixed-length SVE vectors are coerced to
a scalable vector that occupies the same register. SVE tuples still
report NYI under AAPCS.

Assisted-by: Cursor / claude-opus-5
DeltaFile
+416-10llvm/unittests/ABI/AArch64TargetInfoTest.cpp
+148-14llvm/lib/ABI/Targets/AArch64.cpp
+98-12clang/test/CodeGen/AArch64/abi-classify-arg-types.c
+79-0clang/test/CodeGen/AArch64/abi-classify-sve-types.c
+39-5llvm/include/llvm/ABI/Types.h
+43-0clang/test/CodeGen/AArch64/abi-classify-sve-tuples.c
+823-417 files not shown
+858-4513 files

LLVM/project 2b0cd5f — llvm/lib/Target/AMDGPU SIInstructions.td

[AMDGPU][NFC] De-factorize scalar_to_vector bf16 patterns (#226847)

For Fake16, an SGPR and a VGPR can share the same scalar_to_vector
pattern because there is no 16-bit SGPR at all. The separate uniform
SGPR pattern is therefore only needed for Real True16, where the
divergent case uses a VGPR_16 REG_SEQUENCE.

This de-factorization is to prepare for follow-up PRs to separate SGPR
and VGPR patterns of scalar_to_vector for other types.
DeltaFile
+5-5llvm/lib/Target/AMDGPU/SIInstructions.td
+5-51 files

FreeBSD/ports 102c4ec — irc/quassel Makefile, irc/quassel-core Makefile

irc/quassel: Drop unused dependencies

These deps are not needed for Qt6 based Quassel

PR:     298956
DeltaFile
+3-5irc/quassel/Makefile
+1-0irc/quassel-core/Makefile
+4-52 files

FreeBSD/ports 4418a40 — www/nyxt/files patch-fix-sbcl269+

www/nyxt: Fix build with lang/sbcl 2.6.9
DeltaFile
+15-0www/nyxt/files/patch-fix-sbcl269+
+15-01 files

LLVM/project f4fe034 — llvm/lib/CodeGen/SelectionDAG SelectionDAG.cpp

fixup! Use a better KnownBits syntax
DeltaFile
+1-2llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
+1-21 files

FreeBSD/src afe3e2e — share/man/man4 unionfs.4

unionfs.4: Canonicalize SYNOPSIS + nit SPDX

MFC after:      3 days
DeltaFile
+4-12share/man/man4/unionfs.4
+4-121 files

FreeBSD/src bfe3273 — share/man/man4 ums.4

ums.4: Canonicalize SYNOPSIS + tag SPDX

MFC after:      3 days
DeltaFile
+10-15share/man/man4/ums.4
+10-151 files

LLVM/project 9425f15 — lldb/source/Expression REPL.cpp, lldb/test/Shell/REPL Breakpoint.test

[lldb] Fix deadlock when a REPL expression hits a breakpoint (#227400)

When a REPL expression stops at a breakpoint,
REPL::IOHandlerInputComplete calls RunIOHandlerAsync to drop into the
command interpreter while it still holds the error stream lock.
RunIOHandlerAsync then takes the IOHandler stack mutex. At the same
time, the event handler thread reports the stop through
IOHandlerStack::PrintAsync, which takes the IOHandler stack mutex first
and the output mutex second. The opposite lock order can deadlock,
leaving lldb hung after it prints "Execution stopped at breakpoint."

The lock scope that covers the call was introduced in 5007dd9d0945
(#183600). Keep printing under the lock, but defer RunIOHandlerAsync
until the lock is released.

This patch adds a test that exercises this path with the C REPL. Because
the deadlock is a race, the test only catches a regression
intermittently: without the fix it hung in about 6% of runs under
parallel load, and in every run when a delay was injected inside the

    [2 lines not shown]
DeltaFile
+28-0lldb/test/Shell/REPL/Breakpoint.test
+14-7lldb/source/Expression/REPL.cpp
+42-72 files

FreeBSD/src dc20c58 — share/man/man4 umoscom.4

umoscom.4: Canonicalize SYNOPSIS + tag SPDX

MFC after:      3 days
DeltaFile
+7-13share/man/man4/umoscom.4
+7-131 files

LLVM/project 9cfc2b2 — llvm/tools/obj2yaml obj2yaml.cpp

[obj2yaml] Suppress leak check on abnormal exit (#227444)

This is a common issue with lsan after exit().
exit() is noreturn, so we cannot expect that the compiler will
preserve pointers to allocations done by callers.

Fixes https://lab.llvm.org/buildbot/#/builders/169/builds/27022

Assisted-by: Gemini
DeltaFile
+13-0llvm/tools/obj2yaml/obj2yaml.cpp
+13-01 files

LLVM/project a3db7fe — llvm/lib/CodeGen TwoAddressInstructionPass.cpp, llvm/test/CodeGen/AMDGPU twoaddr-insert-subreg-subrange.mir

TwoAddressInstructions: Fix subranges straddling the INSERT_SUBREG subreg index (#227427)

Rewriting INSERT_SUBREG into a subregister COPY narrows the def from the
whole register down to one subreg index. The live interval fixup for that only 
handled subranges entirely disjoint from the inserted lane mask, so a partially 
overlapping subrange keeps a value whose def no longer writes all of its lanes.
    
The stale value makes the lanes outside the inserted subregister look
defined by the COPY, so the copy that actually provides them ends up
dead and its value is lost. Refine the subranges against the subreg index
before narrowing the def, leaving each one either fully redefined by the COPY
or untouched by it.
    
Fixes a miscompile reported on RISC-V and restores the pre-6286f77214be
output of Thumb2/mve-vst2.ll, Thumb2/mve-vst3.ll and PowerPC/dmr-enable.ll.
    
Co-authored-by: Claude Opus 5 <noreply at anthropic.com>
DeltaFile
+18-17llvm/test/CodeGen/Thumb2/mve-vst3.ll
+29-0llvm/test/CodeGen/RISCV/twoaddr-insert-subreg-subrange.mir
+29-0llvm/test/CodeGen/AMDGPU/twoaddr-insert-subreg-subrange.mir
+17-8llvm/lib/CodeGen/TwoAddressInstructionPass.cpp
+8-8llvm/test/CodeGen/PowerPC/dmr-enable.ll
+4-4llvm/test/CodeGen/Thumb2/mve-vst2.ll
+105-376 files

FreeBSD/src c4e25d1 — share/man/man4 umodem.4

umodem.4: Canonicalize SYNOPSIS + tag SPDX

MFC after:      3 days
DeltaFile
+8-13share/man/man4/umodem.4
+8-131 files

LLVM/project 57e6bfb — clang/lib/CIR/Dialect/Transforms/TargetLowering CIRABIRewriteContext.cpp, clang/test/CIR/CodeGen paren-list-agg-init.cpp nrvo.cpp

[CIR] Coerce record returns from memory like CreateCoercedLoad

Read a coerced record return straight from the alloca it was loaded
from.  If that isn't possible, copy the record's bytes into a coercion
slot and read from there.  Neither path stores the record as a value.
A union stored as a value keeps only its storage member and loses the
bytes that are padding in that member.

Assisted-by: Claude Code / Claude Opus 5.5
DeltaFile
+368-0clang/test/CIR/Transforms/abi-lowering/coerce-record-return-from-memory.cir
+189-80clang/lib/CIR/Dialect/Transforms/TargetLowering/CIRABIRewriteContext.cpp
+89-4clang/test/CIR/Transforms/abi-lowering/x86_64-struct-direct-offset.cir
+71-0clang/test/CIR/CodeGen/call-conv-lowering-x86_64.c
+22-37clang/test/CIR/CodeGen/nrvo.cpp
+12-28clang/test/CIR/CodeGen/paren-list-agg-init.cpp
+751-14913 files not shown
+830-26419 files

LLVM/project bd07a97 — llvm/unittests/TargetParser TargetParserTest.cpp

Use new-style triples in SRAMECC mode test

Resolve the processor from the triple subarch as requested in review.

Change-Id: Ibbfd674a974fa19e71ef08497c27010e7a452c43
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply at anthropic.com>
DeltaFile
+19-17llvm/unittests/TargetParser/TargetParserTest.cpp
+19-171 files

FreeBSD/ports a0cb6eb — net-im/ruqola Makefile

net-im/ruqola: Clean up dependencies

Enable support for Plasma Activities
Explicitely disable NetworkManagerQt
DeltaFile
+11-8net-im/ruqola/Makefile
+11-81 files

FreeBSD/src c3e55f4 — usr.sbin/bhyve rtc_pl031.c

bhyve: rtc_pl031: Fix PeriphID and CellID values

PeriphID and CellID values are determined by macros which take an
index. They currently receive a bus offset which has a stride of 4 bytes.
This causes the ID1-3 registers to report incorrect values.
Scale the offset before passing it to the macro to fix this.

Tested with kvm-unit-tests/arm/pl031.

Signed-off-by: Kajetan Puchalski <kajetan.puchalski at arm.com>

Reviewed by:    jrtc27
Fixes:          014d7082a239 ("bhyve: Implement a PL031 RTC on arm64")
MFC after:      1 week
Pull Request:   https://github.com/freebsd/freebsd-src/pull/2358
Closes:         https://github.com/freebsd/freebsd-src/pull/2358

(cherry picked from commit a554906ea44c26925730a25263e64890d48d2b36)
DeltaFile
+2-2usr.sbin/bhyve/rtc_pl031.c
+2-21 files

LLVM/project 56ee698 — clang/test/CodeGenHLSL BoolMatrix.hlsl, clang/test/CodeGenHLSL/BasicFeatures MatrixToAndFromVectorConstructors.hlsl MatrixSingleSubscriptGetter.hlsl

[HLSL][Matrix] Convert loaded bool matrices to `i1` (#226599)

Fixes #226308.

This PR converts loaded bool matrices to their `i1` representation
before use, like bool vectors do, and updates the affected matrix
codegen tests. 
It also splits matrix tests out of `or.hlsl` into its own `or_mat.hlsl`
file to match the convention of the other matrix intrinsic tests.

Assisted-by: Claude Opus 4.8
DeltaFile
+155-0clang/test/CodeGenHLSL/builtins/or_mat.hlsl
+0-152clang/test/CodeGenHLSL/builtins/or.hlsl
+30-30clang/test/CodeGenHLSL/builtins/and_mat.hlsl
+22-22clang/test/CodeGenHLSL/BasicFeatures/MatrixSingleSubscriptGetter.hlsl
+13-23clang/test/CodeGenHLSL/BoolMatrix.hlsl
+19-13clang/test/CodeGenHLSL/BasicFeatures/MatrixToAndFromVectorConstructors.hlsl
+239-2404 files not shown
+251-24810 files

LLVM/project d8a9087 — llvm/include/llvm/IR IntrinsicsAMDGPU.td, llvm/lib/Target/AMDGPU VOP3Instructions.td AMDGPULowerIntrinsics.cpp

[AMDGPU] Validate scale_sel in v_cvt_scale_*

These instructions can be block16 or block32 depending on the target
and scale_sel bits. Block16 is not supported in strict mode.

Re-enable the rest of the instructions in the strict mode but validate
the scale selector.
DeltaFile
+265-0llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cvt.scale.pk-scale-range.ll
+132-16llvm/test/MC/AMDGPU/gfx1250-strict_err.s
+61-0llvm/lib/Target/AMDGPU/AMDGPULowerIntrinsics.cpp
+47-0llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
+7-9llvm/lib/Target/AMDGPU/VOP3Instructions.td
+6-8llvm/include/llvm/IR/IntrinsicsAMDGPU.td
+518-333 files not shown
+527-489 files

LLVM/project d87e010 — llvm/lib/Target/AMDGPU AMDGPURegBankLegalize.cpp, llvm/test/CodeGen/AMDGPU/GlobalISel regbankselect-anyext.mir regbankselect-mui.mir

[AMDGPU][GlobalISel] Keep typed LLTs in RegBankLegalize combines

The S1 cleanup combines in AMDGPURegBankLegalize built new registers
with an untyped s32, missed when lowering switched to extended LLTs.
The regbank combiner later unified these with typed registers, so
constrainRegAttrs retyped e.g. an i32 G_CTPOP result to s32, which
failed instruction selection.

Take the type from the source or destination register instead.

Change-Id: I06cfb7278af045dbaa3ca0cc6c77a3938f4cef01
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply at anthropic.com>
DeltaFile
+86-0llvm/test/CodeGen/AMDGPU/GlobalISel/regbanklegalize-combine-s1.mir
+7-6llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-mui.mir
+7-6llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-mui-regbanklegalize.mir
+5-4llvm/lib/Target/AMDGPU/AMDGPURegBankLegalize.cpp
+2-2llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-anyext.mir
+107-185 files

LLVM/project cedf871 — lldb/source/Plugins/ObjectFile/ELF ObjectFileELF.cpp, lldb/test/Shell/ObjectFile/ELF relocation-offset-out-of-range.yaml

[lldb] Bounds-check ELF relocation offsets (#227046)

Relocations applied to ELF debug sections were written at r_offset
without checking that the target fits in the section. A malformed object
file could therefore write anywhere relative to the file buffer.

Check every relocation target against the section data. Skip and report
relocations that fall outside it.

rdar://186921964
DeltaFile
+141-0lldb/test/Shell/ObjectFile/ELF/relocation-offset-out-of-range.yaml
+37-26lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp
+178-262 files

LLVM/project 920c61b — clang/lib/CIR/Dialect/Transforms/TargetLowering CIRABIRewriteContext.cpp, clang/test/CIR/CodeGen asm-label-redirect-variadic.c call-conv-lowering-x86_64-indirect-variadic.c

[CIR] Lower variadic arguments through an indirect call

On x86_64, CallConvLowering now classifies an indirect call with
ellipsis arguments from its own operands, as it does a direct variadic
call. Those arguments stay out of the retyped callee's function type, as
in classic CodeGen.

The cir.call verifier now checks indirect calls against the callee
pointer's function type, and CIRGen's asm-label redirect keeps a
variadic declaration's ellipsis instead of dropping it.

Assisted-by: Claude Code / claude-opus-5-5
DeltaFile
+212-0clang/test/CIR/Transforms/abi-lowering/x86_64-indirect-variadic.cir
+180-0clang/test/CIR/IR/invalid-call.cir
+120-0clang/test/CIR/CodeGen/call-conv-lowering-x86_64-indirect-variadic.c
+31-84clang/test/CIR/Transforms/abi-lowering/x86_64-variadic-nyi.cir
+96-0clang/test/CIR/CodeGen/asm-label-redirect-variadic.c
+63-26clang/lib/CIR/Dialect/Transforms/TargetLowering/CIRABIRewriteContext.cpp
+702-1108 files not shown
+865-17114 files

FreeBSD/ports dbc91f2 — net/telemt distinfo, net/telemt/files patch-src_daemon_pid__file.rs patch-src_proxy_tests_direct__relay__security__tests_anchored.rs

net/telemt: Update 3.5.7 => 3.5.9

Changelogs:
- https://github.com/telemt/telemt/releases/tag/3.5.8
- https://github.com/telemt/telemt/releases/tag/3.5.9

Commit log:
- https://github.com/telemt/telemt/compare/3.5.7...3.5.9

PR:             298965
Approved by:    osa, vvd (Mentors, implicit)
DeltaFile
+53-0net/telemt/files/patch-src_maestro_listeners_bind.rs
+46-0net/telemt/files/patch-src_util_secure__fs_write.rs
+17-3net/telemt/files/patch-src_proxy_tests_direct__relay__security__tests_anchored.rs
+20-0net/telemt/files/patch-src_util_secure__fs_path.rs
+11-0net/telemt/files/patch-src_daemon_pid__file.rs
+3-3net/telemt/distinfo
+150-61 files not shown
+151-77 files

LLVM/project 915afaa — llvm/lib/Target/AMDGPU AMDGPURegBankLegalize.cpp, llvm/test/CodeGen/AMDGPU/GlobalISel regbankselect-anyext.mir regbankselect-mui.mir

[AMDGPU][GlobalISel] Keep typed LLTs in RegBankLegalize combines

The S1 cleanup combines in AMDGPURegBankLegalize built new registers
with an untyped s32, missed when lowering switched to extended LLTs.
The regbank combiner later unified these with typed registers, so
constrainRegAttrs retyped e.g. an i32 G_CTPOP result to s32, which
failed instruction selection.

Take the type from the source or destination register instead.

Change-Id: I06cfb7278af045dbaa3ca0cc6c77a3938f4cef01
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply at anthropic.com>
DeltaFile
+86-0llvm/test/CodeGen/AMDGPU/GlobalISel/regbanklegalize-combine-s1.mir
+7-6llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-mui.mir
+7-6llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-mui-regbanklegalize.mir
+5-4llvm/lib/Target/AMDGPU/AMDGPURegBankLegalize.cpp
+2-2llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-anyext.mir
+107-185 files

LLVM/project 917a745 — llvm/include/llvm/IR IntrinsicsAMDGPU.td, llvm/lib/Target/AMDGPU VOP3Instructions.td AMDGPULowerIntrinsics.cpp

[AMDGPU] Validate scale_sel in v_cvt_scale_*

These instructions can be block16 or block32 depending on the target
and scale_sel bits. Block16 is not supported in strict mode.

Re-enable the rest of the instructions in the strict mode but validate
the scale selector.
DeltaFile
+265-0llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cvt.scale.pk-scale-range.ll
+132-16llvm/test/MC/AMDGPU/gfx1250-strict_err.s
+62-0llvm/lib/Target/AMDGPU/AMDGPULowerIntrinsics.cpp
+47-0llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
+7-9llvm/lib/Target/AMDGPU/VOP3Instructions.td
+6-8llvm/include/llvm/IR/IntrinsicsAMDGPU.td
+519-333 files not shown
+528-489 files

FreeBSD/src 767cd9b — sys/amd64/conf GENERIC, sys/vm vm_swapout.c

vm_swapout: Fix the build without options RACCT

Reported by:    Jenkins
Fixes:          da0764f23554 ("vm_swapout: Restore handling of RLIMIT_RSS")
DeltaFile
+6-1sys/vm/vm_swapout.c
+3-3sys/amd64/conf/GENERIC
+9-42 files

LLVM/project 0c7c264 — llvm/lib/Target/AMDGPU AMDGPUInstructionSelector.cpp

Use isFixedVector instead of LLT equality
DeltaFile
+1-1llvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp
+1-11 files

LLVM/project 4d70131 — llvm/lib/Target/AMDGPU AMDGPUInstructionSelector.cpp, llvm/test/CodeGen/AMDGPU mad-mix.ll

[AMDGPU][GlobalISel] Fold neg/abs modifiers when mad-mix selects the low half

selectVOP3PMadMixModsImpl re-runs the fneg/fabs match after rewriting Src
to the 32-bit register the 16-bit value is a half of, but only did so on
the isExtractHiElt path, not for isExtractLoElt.

The two halves are not symmetric. An fneg/fabs of a 32-bit float only
touches bit 31, which is the sign bit of the high half, so folding it
into a modifier on the selected high half is correct. The low half's sign
bit is bit 15, which such an fneg/fabs leaves alone, so only a modifier
that acts on each 16-bit element can be folded there. So the source must be
a 2 x 16-bit vector to fold it.
DeltaFile
+972-0llvm/test/CodeGen/AMDGPU/mad-mix.ll
+252-257llvm/test/CodeGen/AMDGPU/GlobalISel/fpow.ll
+20-22llvm/test/CodeGen/AMDGPU/GlobalISel/fdiv.f16.ll
+10-16llvm/test/CodeGen/AMDGPU/GlobalISel/combine-fma-sub-ext-neg-mul.ll
+9-6llvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp
+1,263-3015 files

LLVM/project 72c6b3b — llvm/lib/Transforms/InstCombine InstCombineSelect.cpp, llvm/test/Transforms/InstCombine truncating-saturate.ll

[InstCombine] Handle select-like i1 sext/zexts in canonicalizeClampLike (#227067)

canonicalizeClampLike matches a select of a select. But if the inner
select has an i1 result type it will be canonicalized to a sext or zext
of the condition. In FFmpeg there is a clamping pattern that shifts the
inverted bits instead of the negated, and the inner select ends up being
canonicalized this way: https://godbolt.org/z/5q8bx69x3

This teaches canonicalizeClampLike to use m_SelectLike to catch these
cases too.
DeltaFile
+47-22llvm/test/Transforms/InstCombine/truncating-saturate.ll
+3-3llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp
+50-252 files

LLVM/project bad4daa — llvm/lib/CodeGen TargetLoweringObjectFileImpl.cpp, llvm/lib/MC GOFFObjectWriter.cpp MCSymbolGOFF.cpp

Fix formatting
DeltaFile
+4-2llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp
+2-2llvm/lib/MC/MCSymbolGOFF.cpp
+2-2llvm/lib/MC/MCObjectFileInfo.cpp
+2-1llvm/lib/MC/GOFFObjectWriter.cpp
+10-74 files