[llvm] s390x: pattern match saturated truncation (PR #155377)

Ulrich Weigand via llvm-commits llvm-commits at lists.llvm.org
Tue Aug 26 02:16:31 PDT 2025


================
@@ -399,21 +399,28 @@ let Predicates = [FeatureVector] in {
 // Widening and narrowing
 //===----------------------------------------------------------------------===//
 
-let Predicates = [FeatureVector] in {
-  // Pack
-  def VPK  : BinaryVRRcGeneric<"vpk", 0xE794>;
-  def VPKH : BinaryVRRc<"vpkh", 0xE794, z_pack, v128b, v128h, 1>;
-  def VPKF : BinaryVRRc<"vpkf", 0xE794, z_pack, v128h, v128f, 2>;
-  def VPKG : BinaryVRRc<"vpkg", 0xE794, z_pack, v128f, v128g, 3>;
+def replicate_i32_min : PatFrag<(ops), (v4i32 (build_vector (i32 -32768), (i32 -32768), (i32 -32768), (i32 -32768)))>;
+def replicate_i32_max : PatFrag<(ops), (v4i32 (build_vector (i32 32768), (i32 32768), (i32 32768), (i32 32768)))>;
----------------
uweigand wrote:

This probably needs to be done along the lines of `vsplat_imm_eq_1` in SystemZOperators.td (and should go there as well).

https://github.com/llvm/llvm-project/pull/155377


More information about the llvm-commits mailing list