[AArch64][DAG] Copy flags when narrowExtractedVectorBinOp-ing (#193446)
The `extract (binop B0, B1), N` fold above already copies flags, use the
same for the `extract (binop (concat X1, X2), Y), N` version. In this
case it is helping copy disjoint or flags.
[AArch64][llvm][clang] Remove `int_aarch64_sve_bfmmla` and reuse existing def (NFC) (#193970)
Remove the dedicated (superfluous) `int_aarch64_sve_bfmmla` def and
changed `svbfmmla` to use the existing shared fmmla intrinsic instead.
No functional change.
[Clang][Coroutines] Don't emit fake uses for coroutine parameters (#194690)
Fixes issue: https://github.com/llvm/llvm-project/issues/192351
The combination of coroutines with -fextend-variable-liveness has
resulted in use-after-free, caused by the fact that we insert fake uses
of coroutine parameters at the end of the coroutine. While this is fine
for normal functions, in coroutines these variables are stored in the
coroutine frame, which is freed before the end of the function; this
results in us loading from the deleted frame.
This patch fixes this by no longer emitting fake uses for most coroutine
parameters. Since coroutine parameters will be saved back to the frame
when we suspend, and currently may not be optimized out, fake uses are
not needed in this case, and so by not emitting them we avoid dealing
with the complexity of updating fake uses in the CoroSplit pass. The
exception to this is 'this', which is not saved to the frame.
Add support for line numbers in copy mode. A new copy-mode-line-numbers
option has the following modes: off, default (tmux's normal line
numbering where 0 is the top visible line), absolute (first line in
history is 1), relative (relative to the cursor) and hybrid (current
line is absolute, others relative). Also adds
copy-mode-line-number-style and copy-mode-current-line-number-style to
set the style of the line numbers. When copy mode is entered with the
mouse, line numbers stay off.
From Leo Henon in GitHub issue 5025.
[AArch64][DAG] Copy flags when narrowExtractedVectorBinOp-ing
The `extract (binop B0, B1), N` fold above already copies flags, use the same for
the `extract (binop (concat X1, X2), Y), N` version. In this case it is helping
copy disjoint or flags.
[AArch64] Use add_like for UMLAL / SMLAL (#194139)
Similar to the others, this allows us to generate UMLAL and SMLAL from
add-like disjoint ors. There are some cases where we lose the disjoint
from the or, those are being fixed separately (#193446).
[LV] Use isLegalMaskedLoadOrStore for interleaved accesses too (NFC)
isLegalMaskedLoadOrStore is now the central place for querying target
capabilities for masked accesses. Access pattern legality checks are
hoisted outside of it.
[LV] Introduce isLegalMaskedLoadOrStore (NFC)
This simplifies legality checks, and eventually will become the single
point querying TTI hooks for masked ld/st. Currently, legality checks
for interleaved accesses still query TTI directly.