[AArch64] Fix `shufflevector` miscompilation on `aarch64_be` (#193076)
A function like
```llvm
define <4 x i16> @xtn_shuffle_even_v8i16(<8 x i16> %a) {
entry:
%r = shufflevector <8 x i16> %a, <8 x i16> poison, <4 x i32> <i32 0, i32 2, i32 4, i32 6>
ret <4 x i16> %r
}
```
will use the `xtn` instruction, which for each 32-bit vector element
keeps only the lower 16 bits, so effectively this is a truncation.
However, if the vector actually has 16-bit elements, then the conversion
from a shuffle to a truncation is only valid on LE, not on BE. On BE,
`uzp1` should be used instead. So this PR moves some logic to right
after a check for LE, so that BE does not miscompile.
[4 lines not shown]
[libc++] Avoid using ranges::upper_bound in <format> (#186781)
The `ranges` algorithms take a significant time to instantiate.
Replacing `ranges::upper_bound` with `std::upper_bound` reduces the time
to parse `<format>` by ~50ms, or 10%.
[InstCombine] Treat sdiv as udiv in foldICmpDivConstant when both operands are non-negative (#188731)
When foldICmpDivConstant encounters a signedness mismatch between the
sdiv and the icmp (e.g. icmp ugt (sdiv X, 64), 2), it previously bailed
out. This patch allows it to proceed by checking whether the sdiv's
dividend is known non-negative (via assumes/known bits) and the divisor
is a positive constant. In that case, sdiv is equivalent to udiv, so we
set DivIsSigned=false and let the existing udiv folding handle the rest.
---------
Co-authored-by: Claude Opus 4.6 <noreply at anthropic.com>
[MemoryDependenceAnalysis] Disambiguate visited state in non-local pointer dep tracking (#193220)
NonLocalPointerDepVisited used nullptr for both "not visited basic block
in current epoch" and "visited, but PHI translation failed". This
ambiguity could cause incorrect predecessor-state handling in non-local
dependency queries and trigger a GVN LoadPRE assertion crash.
Use NonLocalPointerDepEpoch to explicitly check visited state instead of
inferring from the stored pointer value
Fixes https://github.com/llvm/llvm-project/issues/190585
py-pathspec: updated to 1.1.0
1.1.0 (2026-04-22)
Bug fixes:
- Git discards invalid range notation. `GitIgnoreSpecPattern` now discards patterns with invalid range notation like Git.
- Fix escape() not escaping backslash characters.
Improvements:
- Specialize pattern type for `PathSpec` as `PathSpec[TPattern]` for better debugging of `PathSpec().patterns`.
- Nicer debug print outs (and str for regex pattern).
cmake cmake-gui: updated to 4.3.2
4.3.1, 4.3.2
These versions made no changes to documented features or interfaces. Some
implementation updates were made to support ecosystem changes and/or fix
regressions.
[LLD][MinGW] Introduce --native-def argument (#193598)
This is the MinGW counterpart of -defarm64native.
When --native-def is not specified, pass the input def file as
-defarm64native on the ARM64X target as well. This reflects the most
common intent when providing a def file for ARM64X and, since the
regular def file is already passed as an input file, it feels consistent
to allow a proper build without requiring additional arguments. This can
be overridden by passing an empty value with --native-def= if using only
the EC def file is desired.
fftw: updated to 3.3.11
FFTW 3.3.11:
* New API fftw_copy_plan()
* Support for SVE SIMD instructions.
* Support for LoongArch LSX and LASX SIMD instructions.
* Support for Apple ARM, RISCV, and LoongArch cycle counters.
virtual_oss: Introduce virtual_oss_default_control_device rc variable
The -t option gives the user the ability to create a control device for
a given virtual_oss(8) instance, so that the instance's configuration
can be manipulated during runtime with virtual_oss_cmd(8). As is
expected, the control device's name is not known, since it is specified
by the user.
This patch introduces a virtual_oss_default_control_device rc variable,
which defaults to "vdsp.ctl". The goal of this is that third-party
programs and scripts can access the control device of the default
virtual_oss(8) configuration without guessing. This is especially useful
for sbin/devd/snd.conf which deals with hot-swapping sound devices using
virtual_oss(8).
Sponsored by: The FreeBSD Foundation
MFC after: 1 week
Reviewed by: markj
Differential Revision: https://reviews.freebsd.org/D55670
[2 lines not shown]
[lldb] Remove trailing newlines from AppendErrorWithFormat calls (part 3) (#193527)
Follow up to #193168.
This call adds a newline if there isn't one. Changing these will
eventually let us always add a newline, which is in line with
the other methods on CommandReturnObject.
This is a small part of calls found with:
* VSCode search for
`(\.AppendErrorWithFormat\(([\s\r\n]+)?"(?:(?:\\.|[^"\\])*))\\n"` and
replace with `$1"`.
* Asserting that the last character of the format string is not a
newline.
* Manual inspection.