[X86] Prevent legalization cycles in lane-permute shuffle lowering (#224265)
When a cross-lane shuffle reproduces the original mask, trying a finer
sublane size can produce a decomposition that legalization transforms
back into the original shuffle. This causes legalization to cycle
indefinitely.
Stop trying finer sublane sizes when this condition is detected, and add
a regression test for the shuffle that previously caused `llc` to hang.
Fixes #224266
multimedia/libvdpau-va-gl: Deprecate port
- Fails to build with the upcoming new cmake version.
- No new releases in more than 10 years.
- VDPAU has been uperceded by VAAPI
PR: 298620
MFH: 2026Q3
(cherry picked from commit 8ae0e401ad1fafee4d100d7f3439d9d8477e6c19)
multimedia/libvdpau-va-gl: Deprecate port
- Fails to build with the upcoming new cmake version.
- No new releases in more than 10 years.
- VDPAU has been uperceded by VAAPI
PR: 298620
MFH: 2026Q3
multimedia/libvdpau-va-gl: Deprecate port
- Fails to build with the upcoming new cmake version.
- No new releases in more than 10 years.
- VDPAU has been uperceded by VAAPI
PR: 298620
MFH: 2026Q3
[ConstraintElim] Add isNoWrap overload taking opcode + ops (NFC). (#224758)
Add overload that is independent of an IR value/instruction, and only
takes opcode + operands.
This prepares for using it in saturating/overflowing op simplification
in follow-ups.
PR: https://github.com/llvm/llvm-project/pull/224758
[AArch64] If-convert diamonds merging a 128-bit vector (#220616)
canInsertSelect handles GPRs via csel and 32/64-bit FPRs via fcsel, but
returns false for everything else. For example, EarlyIfConversion
flattens a diamond merging a v4i16 but leaves the equivalent v4i32
branchy.
We can create a conditional select similarly to how vector selects are
lowered in the backend by spreading the condition into an all-1's /
all-0's mask and use a bit select.
Assisted-by: Opus 5.0
bind - libdns - match format to arg (for clang)
Since the format took the trouble to use %hu I assumed that
an unsigned short was intended to be printed (sprintf) so converted
the arg from unsigned to unsigned short, rather than just
adopting clang's suggestion of changing the format to %u.
This might fix the clang builds.