[SLP][NFC] Add pre-commit tests for merged inputops flag propagation (#236366)
Add two tests covering flag propagation for the merge-input-operands
transform: one where the fmul lanes carry different fast-math flags and
one where the mul lanes carry different integer wrap flags. Both record
the current vectorization, so a later patch shows the effect of merging.
Co-authored-by: Balakrishna Bandlapalli <bbandlap at gmail.com>
Co-authored-by: Cursor <cursoragent at cursor.com>
[SLP] Do not drop used undef lanes when peeking through resizing shuffles
When two resizing shuffles are combined, their second operands were
checked with isUndefVector, which accepts undef. If a used result lane
reads an undef element of the second operand, the combined mask remaps
it to an element of the first operand, which may be poison, turning
undef into poison. Peek through only when the used second-operand lanes
are poison.
Assisted-by: Cursor
Reviewers:
Pull Request: https://github.com/llvm/llvm-project/pull/237088
[MLIR][Python] Only raise numpy/ml_dtypes minimums for Python 3.15
Use python_version markers instead of raising the numpy cap for everyone:
Python < 3.15 keeps numpy <= 2.1.2, and 3.15 gets numpy 2.5.x and
ml_dtypes 0.6.0 (the first releases with cp315 wheels).
CodeGen: Replace TargetOptions::DebuggerTuning with module flag
Read the debugger tuning from the module's "debugger-tuning" flag instead of
TargetOptions. Delete the now-dead -debugger-tune= cl::opt and the
TargetOptions::DebuggerTuning field.
Update the tests relying on it to directly use the module flag. The cases
that exercise multiple values do a text substitution to swap the value.
Alternatively this could be changed to synthesize the module flag in the
llc flag like some of the other widely used module flags do.
Co-authored-by: Claude Sonnet 5 <noreply at anthropic.com>
Convert any output type to an integer before truncating
Sema only lets a struct or _Complex output be tied to a larger integer or
pointer input, but X86's "k" constraint makes the type a vector of i1. A
bit-or-pointer cast to an integer of the same size handles all of them.
Assisted-by: Claude Opus 5.5
[MLIR][Python] Only require nanobind 2.13 for Python 3.15
Keep the nanobind minimum at 2.9 for Python < 3.15 instead of raising it
for everyone; only 3.15 needs 2.13 (for PyFrozenDict_Type in
darwin-ld-cpython.sym on macOS).
[MLIR][Python] Drop Python 3.10 and enable Python 3.15
Python 3.10 is EOL, so raise MLIR_MINIMUM_PYTHON_VERSION to 3.11.
For Python 3.15:
- Require nanobind >= 2.13. Earlier versions' darwin-ld-cpython.sym lacks
PyFrozenDict_Type (new in 3.15), so linking the bindings against 3.15
fails on macOS with an undefined symbol.
- Raise the numpy cap to 2.5.4; numpy <= 2.4 has no cp315 wheels.