[CIR] Match classic codegen for saturating fixed-point negation and padded conversions
Three CIR fixed-point paths diverged from classic codegen. Unary minus on a
saturating fixed-point type emitted a plain subtraction instead of a
saturating 0 - x. With -fpadding-on-unsigned-fixed-point, float to unsigned
fixed-point conversion used fptoui and compared against 0 as unsigned, so the
clamp to 0 never fired; it now converts and clamps as signed, like
llvm::FixedPointBuilder. A saturating fixed-point conversion that kept the
width but changed signedness returned a value of the source CIR type, which
broke the cir.cmp verifier and needed a pointer bitcast to store; it now
casts to the destination type.
Assisted-by: Claude Code (Opus 5.5).
[mlir][tosa] Move RESCALE zero-point value checks from the verifier to tosa-validate (#234443)
Part of #233457.
Move the RESCALE input/output zero-point value constraints out of
`RescaleOp::verify()` into the `ERROR_IF` checks in `tosa-validate`,
matching the TOSA specification, where these are conformance rules
rather
than dialect well-formedness requirements.
- `TosaOps.cpp`: drop the zp value checks from `RescaleOp::verify()`;
type checks stay in the verifier.
- `TosaValidation.cpp`: add the same checks to `checkErrorIfRescale()`,
reusing the op's verify helpers, gated on `strict-op-spec-alignment`.
The accepted/rejected set and diagnostics are unchanged.
- `TosaToLinalg.cpp`: add a fail-closed backstop in `RescaleConverter`
so
conversion without validation rejects invalid zps instead of silently
lowering incorrect arithmetic.
[5 lines not shown]
[mlir][tosa] Avoid copying profile compliance metadata (#232774)
Return compliance maps by const reference and pass matching inputs
through ArrayRef to avoid copying entire maps and nested type signatures
during validation.
[Clang][CodeGen] Update the TBAA info for potential aliases
The stores of a _Complex number were tagged as "unsigned long", but
loads were tagged as "float". TBAA reports no aliases if the store and
loads went through different pointers and GVN forwards a stale value.
Fix this by giving the "store" the "omnipotent char" tag, so that TBAA
treats it as aliasing every access to the destination's members. Using
that tag over "Dest.getTBAAInfo()" because it doesn't depend on how
CodeGenTBAA happens to tag struct and _Complex types.
Assisted-by: Claude for testcases.
Fix broken doc package, offline local and online local browsing
Fix a bug that prevents the packaged FreeBSD documentation from being
browsed correctly when built using the offline Hugo configuration.
The offline configuration leaves baseURL empty, causing Hugo to fall
back to https://example.org/. As a result, the generated documentation
contains incorrect links, breaking offline browsing and online browsing
by directing users to example.org. This affects the built package as
well (tested with pkg version: en-freebsd-doc-20260814,1; tested on a
fresh VM with documentation installed using bsdinstall(8)). According to
the Hugo documentation, this is the default behavior when baseurl is not
set.
The fix is to set baseURL = "/" ensuring the generated documentation can
be browsed directly from the file system without requiring the web
server. This also preserves the ability to browse the documentation
through the local server started by 'make run'.
Event: Oslo Hackathon 2026
Pull Request: https://github.com/freebsd/freebsd-doc/pull/731
[libc] Implement ether_aton and ether_aton_r (#235886)
The format is simple enough that I'm parsing it by hand. strtointeger is
not a particularly great fit as it also accepts leading whitespace and a
sign.
A few implementation notes:
- each octet can have one or two hex digits, so the output of ether_ntoa
("1:2:a:...") can be parsed back
- following musl (but unlike glibc), the address must not be followed by
any trailing characters, not even whitespace. glibc accepts trailing
whitespace (and ignores anything after it), and even garbage directly
after a two-digit final octet (e.g. "...:abfoo").
- the internal function does not take a string_view, as that would
require us to scan the entire string needlessly (we stop at the first
invalid character). In the worst case, the string might not be
terminated, and we'd crash trying to find the end.
- the output struct is not modified if parsing fails (glibc can leave it
partially written)
[2 lines not shown]
[mlir][llvm] Add an op for the `llvm.vector.repeat` intrinsic (#236453)
Add an LLVM dialect op for `llvm.vector.repeat`, which repeats a
fixed-width vector to fill a scalable vector.
The LLVM intrinsic was introduced in:
https://github.com/llvm/llvm-project/pull/208212
[AMDGPU] Fix DPP combine when a mov feeds several REG_SEQUENCE lanes (#217902)
The subreg index came from the first operand reading the mov, so the
wrong operand was marked undef
Also skip lanes that other reads still use
[libc] Add a linux-x86_64-Release-Asserts fullbuild CI job (#236096)
Currently, none of the hosted Linux fullbuild CI jobs run tests with
assertions enabled: the Debug job only builds tests (`testing: BUILD`),
and the Release jobs build with `-DNDEBUG`. (The monolithic premerge
Linux job builds with `LLVM_ENABLE_ASSERTIONS=ON`, but only tests the
overlay configuration.)
This patch adds a new `linux-x86_64-Release-Asserts` job, which is the
same as `linux-x86_64-Release`, but with `LLVM_ENABLE_ASSERTIONS=ON`.
The new job doesn't build the fuzzing tests, as those are already
covered by
the regular Release job.
Assisted-by: Gemini