[InstCombine] Fix #163110: Support peeling off matching shifts from icmp operands via canEvaluateShifted (#165975)
Consider a pattern like `icmp (shl nsw X, L), (add nsw (shl nsw Y, L),
K)`. When the constant K is a multiple of 2^L, this can be simplified to
`icmp X, (add nsw Y, K >> L)`.
This patch extends canEvaluateShifted to support `Instruction::Add` and
updates its signature to accept `Instruction::BinaryOps` instead of a
boolean. This change allows the function to distinguish between LShr and
AShr requirements, ensuring that information is preserved according to
the signedness and overflow flags (nsw/nuw) of the operands.
The logic is integrated into `foldICmpCommutative` to enable peeling off
matching shifts from both sides of a comparison even when an offset is
present.
Fixes: #163110
NAS-140418 / 25.10.2.2 / fix R50BM rear nvme mapping (variants) (by yocalebo) (#18652)
## Summary
The R50BM rear NVMe enclosure mapping was broken because slot identity
was derived from `/sys/bus/pci/slots/` physical slot names, which shift
depending on what other PCI devices are present in the root port
complex.
## Root Cause
The four rear NVMe drives on the R50BM sit behind a PLX PEX 9733 PCIe
switch, which connects to the CPU via a root port at `b2:00.0`. The
R50BM's CPU SLOT 3 shares this same root port complex. When a card (e.g.
a second SAS HBA) is installed in SLOT 3, the kernel assigns it a sysfs
physical slot entry (`0-1`), which pushes all NVMe physical slot numbers
up by one:
| Configuration | NVMe sysfs slots |
[49 lines not shown]
NAS-140418 / 26.0.0-BETA.1 / fix R50BM rear nvme mapping (variants) (by yocalebo) (#18653)
## Summary
The R50BM rear NVMe enclosure mapping was broken because slot identity
was derived from `/sys/bus/pci/slots/` physical slot names, which shift
depending on what other PCI devices are present in the root port
complex.
## Root Cause
The four rear NVMe drives on the R50BM sit behind a PLX PEX 9733 PCIe
switch, which connects to the CPU via a root port at `b2:00.0`. The
R50BM's CPU SLOT 3 shares this same root port complex. When a card (e.g.
a second SAS HBA) is installed in SLOT 3, the kernel assigns it a sysfs
physical slot entry (`0-1`), which pushes all NVMe physical slot numbers
up by one:
| Configuration | NVMe sysfs slots |
[49 lines not shown]
mvc: MenuSystem - add JavaScript wrapper, POC code for https://github.com/opnsense/core/pull/10086
Although this isn't a full implementation yet, it can help callers that need to access the menu system.
In the long run it might be practical if this class would also construct the menu system, so we can add some flexibility there.
Add smtiic(4), a driver for the I2C controller found on the SpacemiT K1
SoC. This is a close relative of mviic(4), but the register layout
changed and some bits moved within the registers.
ok jca@
Bring back the PXA2X0 variant; it resurfaced in the SpacemiT K1 SoC.
Incorporate a fix inspired by NetBSD to keep the console enabled when
userland closes the device.
[LV] Return best VPlan together with VF from computeBestVF (NFC). (#190385)
computeBestVF iterates over all VPlans and picks the VF of the most
profitable VPlan. This VPlan is later needed for execution and
additional checks. Instead of retrieving it multiple times later, just
directly return it from computeBestVF.
This removes some redundant lookups.
PR: https://github.com/llvm/llvm-project/pull/190385
snd_uaudio: Retire sndcard_func usage
This is effectively a no-op, as it does not make use of the
sndcard_func->varinfo field, so eventually ua_probe() always succeeds.
Also change ua_probe()'s value to 0. There is no need to return
BUS_PROBE_DEFAULT, because snd_uaudio() attaches the sound(4)'s children
with bus_attach_children().
Sponsored by: The FreeBSD Foundation
MFC after: 1 week
Reviewed by: markj
Differential Revision: https://reviews.freebsd.org/D56160
(cherry picked from commit 0efd33382504d3172734fa21325fcabef9c7f063)
relayd: support TLS with multiple listeners
Fix a bug in relay_inherit() which runs only
relay_load_certfiles(conf, rb, NULL) unconditionally which isn't
alligned with logic in parser when it parses relay block, where multiple
certificates are load as relay_load_certfiles(conf, rb, NULL) only if
here no tlscerts (for default host) and otherwise it loads keypairs.
OK: rsadowski@