[SLP][X86]Model rsqrt estimate folding for vector square roots
Pass the scalar call as the context of the vector intrinsic cost, check
the estimate for the legalized type, and charge the insertion of the
folded square roots, which lose the folding.
Improves perf in gromacs
https://godbolt.org/z/j5396esfa
Assisted-by: Cursor
Reviewers: RKSimon, phoebewang
Pull Request: https://github.com/llvm/llvm-project/pull/232073
[lld-macho] Build the export trie by edges, not bytes (NFC)
Emit singleton suffixes directly and scan common prefixes in one pass,
avoiding repeated byte-wise partitioning. Preserve radix traversal,
node allocation order, and terminal encoding.
On a Ryzen 7 7700, a rust-analyzer debug link with 248,607 exports
changes from 2079 to 1948 ms at one thread and 1269 to 1185 ms at
eight threads (median wall times over four interleaved pairs).
[GlobalISel] Clear debug locations on static alloca frame indices (#232674)
Disabling Localizer at -O0 (#231406) exposed a case where a static
alloca’s frame address is materialized before the source line attached
to the alloca. Copying that location onto the frame index makes the
debug line table report the later line too early. Clear the frame
index’s debug location.
Assisted-by: codex
sysutils/install-station: Update to 1.1
The installer wallpaper is now drawn with feh, since mate-settings-daemon
did not draw it, so add feh to RUN_DEPENDS. Cancel and the window close
button now ask to restart the computer instead of continuing the boot.
sysutils/setup-station: Update to 0.9
The Setup Station wallpaper is now drawn with feh, since
mate-settings-daemon did not draw it, so add feh to RUN_DEPENDS.
Restart the computer when the installer is cancelled
Cancel and the window close button quit the installer, and rc then
carried on to the live desktop, which is what Try already does. Ask for
confirmation and restart the computer instead.
Draw the installer wallpaper with feh
Turning show-desktop-icons off did not get mate-settings-daemon to draw
the wallpaper. Go back to feh, which drew it in the earlier marco
setup, and read the picture from org.mate.background so it follows the
GhostBSD override. This drops the show-desktop-icons set and reset.
[OpenMP][lit] Disable flaky tasking/issue-94260-2.c on s390x too (#233384)
b217e5c5a035 marked this test UNSUPPORTED on x86 Linux because it fails
sporadically; the underlying problem is tracked in #176451, which is
still open. The arch qualifier keeps it enabled everywhere else, so the
s390x bot still runs it and hits the same failure. In the last 100
builds of openmp-s390x-linux (28089-28188), it was the only failing test
in each of the 4 failed builds:
https://lab.llvm.org/buildbot/#/builders/88/builds/28117https://lab.llvm.org/buildbot/#/builders/88/builds/28151https://lab.llvm.org/buildbot/#/builders/88/builds/28186https://lab.llvm.org/buildbot/#/builders/88/builds/28188
In 28188 it crashed with SIGSEGV and no output, and the only change in
the blamelist was a documentation fix (#232296). Add s390x to the arch
list so the bot stops blaming unrelated commits while #176451 is open.
Co-authored-by: Cursor <cursoragent at cursor.com>
[NFC][AArch64] Rename RegPairs to RegGroups (#233393)
This PR is preparation for 2 subsequent PRs which enable quad ZPR
spills.
This PR is purely cosmetic and no correctness change is included.
[AArch64][TTI] Cost the Ands of a NEON bit select as free
Or(And(M, A), And(Not(M), B)) selects to a single BSL/BIT/BIF. Charge the
Or and treat the single-use Ands in its block as free, using the matcher
shared with operand sinking.
[AArch64][TTI] Drop requirements for BSL non-mask operands for sinking (#232785)
This change moves the BSL matching into a matchBSL helper so later
patches can reuse it.
It also stops requiring the non-mask operands to be instructions in the
Or's block, since they're never sunk. This lets the not of the mask sink,
so ISel forms bif/bsl.
[DAGCombiner] Fix pointer info for widened load from different objs (#231533)
Similarly to fc26ab36a20a63c5aef5c46e2b7815b5369025a0 but for loads: a
widened load may reference memory from different underlying objects
(e.g. when they're in adjacent fixed stack slots).
Reusing the pointer info from the first load on the widened load would
cause the machine scheduler to miss dependencies between the wide load
and operations involving the other objects.
Fixes #231135
[AArch64] Ignore debug-only uses of EntryPStateSM (#232157)
A debug-only use of the `EntryPStateSM` result currently makes the
non-SME fallback path emit a call to `__arm_sme_state`, even though
ordinary code does not use the result.
Use `use_nodbg_empty()` for the expansion decision and mark affected
debug locations unavailable when the pseudo is erased. The test also
includes a control case with a real use, which must retain both the
state read and its valid debug location.
[AArch64][GlobalISel] Perfect Shuffles (#106446)
This is a port of the existing perfect shuffle generation code from
SDAG, using the existing methods from SDAG to apply perfect shuffles to
GISel. It brings the codegen for certain shuffles inline and avoids
the need for generating a tbl and constant pool load.