SuccessChanges

Summary

  1. [X86][SSE] combineSubToSubus - remove SSE2 early-out. (details)
  2. [Fixed Point] Add codegen for conversion between fixed-point and floating point. (details)
  3. [X86][SSE] combineSubToSubus - add v16i32 handling on pre-AVX512BW targets. (details)
  4. [X86][SSE] getFauxShuffleMask - handle PACKSS(SRAI(),SRAI()) shuffle patterns. (details)
  5. [mlir][Linalg] NFC - Refactor fusion APIs (details)
Commit a5212b5c91cc699052125b8a3428ffe0c123837d by llvm-dev
[X86][SSE] combineSubToSubus - remove SSE2 early-out.

SSE2 truncation codegen has improved over the past few years (mainly due to better shuffle lowering/combining and computeKnownBits) - its no longer necessary to early-out from v8i32/v8i64 truncations.

This was noticed while looking at completing PR40111 and moving combineSubToSubus to DAGCombine entirely.
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp
The file was modifiedllvm/test/CodeGen/X86/psubus.ll
Commit c4944a6f53f6d1876e76563599f5f149328e7f8f by bjorn.a.pettersson
[Fixed Point] Add codegen for conversion between fixed-point and floating point.

The patch adds the required methods to FixedPointBuilder
for converting between fixed-point and floating point,
and uses them from Clang.

This depends on D54749.

Reviewed By: leonardchan

Differential Revision: https://reviews.llvm.org/D86632
The file was modifiedclang/lib/CodeGen/CGExprScalar.cpp
The file was modifiedclang/test/Frontend/fixed_point_conversions.c
The file was modifiedclang/test/Frontend/fixed_point_compound.c
The file was addedclang/test/Frontend/fixed_point_conversions_half.c
The file was modifiedllvm/include/llvm/IR/FixedPointBuilder.h
Commit 7e44208115b35ad34cc10259e9c375abbd636ef5 by llvm-dev
[X86][SSE] combineSubToSubus - add v16i32 handling on pre-AVX512BW targets.

v16i32 -> v16i16/v8i16 truncation is now good enough using PACKSS/PACKUS + shuffle combining that its no longer necessary to early-out on pre-AVX512BW targets.

This was noticed while looking at completing PR40111 and moving combineSubToSubus to DAGCombine entirely.
The file was modifiedllvm/test/CodeGen/X86/psubus.ll
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp
Commit 2ed914cb7e9c0737bdf60a0b1fd48b6499973325 by llvm-dev
[X86][SSE] getFauxShuffleMask - handle PACKSS(SRAI(),SRAI()) shuffle patterns.

We can't easily treat ASHR a faux shuffle, but if it was just feeding a PACKSS then it was likely being used as sign-extension for a truncation, so just peek through and adjust the mask accordingly.
The file was modifiedllvm/test/CodeGen/X86/psubus.ll
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp
Commit 80f078548868d0dd3d74ab8a1deb8aa46870cdf3 by nicolas.vasilache
[mlir][Linalg] NFC - Refactor fusion APIs

This revision uniformizes fusion APIs to allow passing OpOperand, OpResult and adds a finer level of control fusion.

Differential Revision: https://reviews.llvm.org/D94493
The file was modifiedmlir/include/mlir/Dialect/Linalg/IR/LinalgStructuredOpsInterface.td
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/FusionOnTensors.cpp
The file was modifiedmlir/include/mlir/Dialect/Linalg/Utils/Utils.h
The file was modifiedmlir/include/mlir/Dialect/Linalg/Transforms/Transforms.h
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/Fusion.cpp
The file was modifiedmlir/test/lib/Transforms/TestLinalgFusionTransforms.cpp
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/Transforms.cpp