[InstCombine] Generalize existing pattern from "abs(val) != 0 -> val != 0" to "abs(val) == 0 -> val == 0" (#233763)
Generalize fold of `(c ? x : -x) != 0` to `x != 0` by moving the pattern
to stripNullTest() and thus also supporting `==` predicates and other
patterns supported by that helper.
The missed pattern is noticed in Google Abseil's demangler
(https://github.com/abseil/abseil-cpp/blob/master/absl/debugging/internal/demangle.cc).
Proof: https://alive2.llvm.org/ce/z/7WQeXT
Fixes #233753
Assisted-by: Qwen3.7-Plus, which helps me locate the existing pattern
instead of opening a new pattern.
ipfw: fix off-by-one error in bdel()
After deleting an item from a sorted array, bdel() moves the tail
following it, but the size of the data to move was calculated with
an off-by-one error, causing memmove() to read one element past the
end of the array. This can happen when the table is full for ifidx
or numarray algorithms.
Obtained from: Yandex LLC
MFC after: 1 week
Sponsored by: Yandex LLC
[AMDGPU] Custom lower dynamic insertelt on wide vectors of 16-bit elements (#232288)
Currently, in case of dynamic-index `insertelement` into v8, v16 and v32
of i16, f16 and bf16 was set to Expand. At -O1 and above, single inserts
were expanded into a select per element and chains of inserts were
folded into a stack temporary. At -O0, every insert went through the
stack unconditionally.
This patch extends the existing `v_bfi_b32` custom lowering, previously
limited to 64-bit vectors, to the 16-bit wide vectors as well, making
`INSERT_VECTOR_ELT` as now Custom for them, so legalization uses the
custom lowering at all optimization levels, and the generic DAGCombiner
chain fold, which only applies to Expand types, no longer fires.
In 'lowerINSERT_VECTOR_ELT' each 64-bit sized piece updates with `(Mask
& splat(Val)) | (~Mask & Piece)`, where only the piece holding the index
gets a nonzero mask, alongwith skipping `performInsertVectorEltCombine`
that use select-per-element expansion for such types, since the custom
lowering is cheaper. wider i8 vectors still use the stack.
[flang][AddAliasTags] OpenMP privatization is a local allocation (#236201)
OpenMP privatization generates code which looks a bit like this
```
%host = ...
omp.parallel private(@privatizer %host -> %private_copy : !fir.ref<type>) {
%priv = fir.declare %private_copy ... -> !fir.ref<type>
}
```
`fir::AliasAnalysis` already correctly categorises accesses to these
private variables (`%priv` in this example) as local allocations. It
reports the source operation for the allocation as being the
`fir.declare` operation (as there is no allocation operation visible in
mlir).
When AddAliasTags processed this access it did not handle allocations
having `fir.declare` as their source and so was not able to give it the
local allocation tag. This commit fixes that by treating `fir.declare`
[15 lines not shown]
java/openjdk21: Version 21.0.13.0.3 more cert fixes
Update to latest upstream patch version to address more issues with the
eMudhra certificate incident.
See also: https://openjdk.org/emudhra
MFH: 2026Q4
Security: CVE 2026-114820
Security: JDK-8395690
Sponsored by: The FreeBSD Foundation
NAS-144937 / 27.0.0 / Fix flaky UPS alerts (by themylogin) (#20077)
* Receiving any message that was not in `alert_mapping` (i.e. `NOCOMM`,
`FSD` and `SHUTDOWN`) removed all alerts with some probability
* Alert creation raced with deletion (this commit introduces long
overdue `oneshot_replace`)
* Fix test utils. The dummy driver only notices whole-second mtime
changes, so sometimes fake data was not published at all.
Original PR: https://github.com/truenas/middleware/pull/20076
Co-authored-by: themylogin <themylogin at gmail.com>
NAS-144867 / 27.0.0 / Fix `set_password` corrupting password history (#20047)
`user.set_password` joined the hashes with `', '` while every reader
splits on whitespace. Each hash but the last kept a trailing comma and
no longer matched the password that produced it. Commas never appear in
a crypt hash, so dropping them recovers the original hash.
java/openjdk25: Version 25.0.5.0.3 more cert fixes
Update to latest upstream patch version to address more issues with the
eMudhra certificate incident.
See also: https://openjdk.org/emudhra
MFH: 2026Q4
Security: CVE 2026-114820
Security: JDK-8395690
Sponsored by: The FreeBSD Foundation
(cherry picked from commit 82145c8e18fa5d657233f3c7c5f5c85711a656b8)
[MLIR] Fix regression in linking to `MLIRAnalysisBase` via dylib (#236359)
Fix the regression introduced in #232793 where the `MLIRTestIR` library
ends up linking directly to `MLIRAnalysisBase` rather than to `MLIR`
dylib, and therefore duplicate it and all the static libraries it
depends on the linker command line.
Signed-off-by: Michał Górny <mgorny at gentoo.org>
[AArch64][ISel] Fix crash for partial reduction actions (#236179)
getPartialReduceMLAAction assumed that the provided VTs would always be
simple, and crashed if not. So we should just bail out in such cases
(e.g. invalid non-power-of-two element types) by defaulting to Expand.