[AArch64] Select ADDHN instead of SHRN when possible (#225094)
The throughput of the ADDHN instruction is either double or the same as
the throughput of the SHRN instruction almost everywhere, so it's better
to use ADDHN when possible.
CodeGen: Remove LiveVariables use from TwoAddressInstructionPass (#225176)
Now that LiveIntervals is computed unconditionally before TwoAddressInstructions
in the pipeline, the pass no longer needs LiveVariables.
Co-authored-by: Claude (Claude-Opus-4.8) <noreply at anthropic.com>
[mlir][tosa] Add MXFP support for GATHER (#227710)
Change-Id: I007889a6d934c8588feae7d2c5a023df60c85ca5
Signed-off-by: Madeleine Dunn <madeleine.dunn at arm.com>
[GlobalISel] [AArch64] Skip redundant shift amount masking during isel (#223136)
AArch64 shift instructions (LSL/LSR/ASR) only use the low 5 bits (i32)or
6 bits (i64) of the shift amount. When the shift amount is masked with
an AND that was introduced by legalization of a narrow type zext, or is
a G_ZEXT itself, the operation is redundant and can be skipped during
instruction selection.
This mirrors what AArch64DAGToDAGISel::tryShiftAmountMod does for
SelectionDAG, bringing GlobalISel to parity for i32 shift amounts with
narrow shift amount types (i8, i16).
Before (GlobalISel shl i32 with i8 shift amount):
and w8, w1, #0xff
lsl w0, w0, w8
After (matches SelectionDAG):
lsl w0, w0, w1
[2 lines not shown]
Merge commit 80e8c0a59189 from llvm-project (by ShengYi Hung):
[DebugInfo] Fill Column 0 if Line is not found (#227559)
It is possible that user specified line 0 as the start of the line in C
language (using `# 0`). However, it is rejected by the Lexer as we have
no line but still carries column information. As a result, we fill
column to 0 if we cannot find line.
Assisted-by: Claude # Test
Fixes: #56186
This fixes a fatal error when building the textproc/peg port.
PR: 264853
MFC after: 3 days
AArch64: Remove unnecessary NZCV def from PSTATE write instructions
PstateWriteSimple is the base class for the MSR immediate forms that
write a single PSTATE field. None of those fields is NZCV, so these do
not clobber the condition flags.
XAFLAG and AXFLAG do write the flags, but they already have their own
Uses/Defs of NZCV.
Co-authored-by: Claude Opus 5 <noreply at anthropic.com>