[llvm] SystemZ: Add missing predicate for bitconvert patterns (PR #90715)

Matt Arsenault via llvm-commits llvm-commits at lists.llvm.org
Wed May 1 02:33:10 PDT 2024


https://github.com/arsenm created https://github.com/llvm/llvm-project/pull/90715

This will prevent accidentally mis-selecting some conversions on targets without vector registers.

>From f273dda96d4cdd500d7241768c8d296ad0c6d3ba Mon Sep 17 00:00:00 2001
From: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: Tue, 30 Apr 2024 16:07:49 +0200
Subject: [PATCH] SystemZ: Add missing predicate for bitconvert patterns

This will prevent accidentally mis-selecting some conversions
on targets without vector registers.
---
 llvm/lib/Target/SystemZ/SystemZInstrVector.td | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/llvm/lib/Target/SystemZ/SystemZInstrVector.td b/llvm/lib/Target/SystemZ/SystemZInstrVector.td
index c29c54a6cb79de..c09f48891c1391 100644
--- a/llvm/lib/Target/SystemZ/SystemZInstrVector.td
+++ b/llvm/lib/Target/SystemZ/SystemZInstrVector.td
@@ -1692,6 +1692,7 @@ let Predicates = [FeatureVector] in
 // Conversions
 //===----------------------------------------------------------------------===//
 
+let Predicates = [FeatureVector] in {
 def : Pat<(v16i8 (bitconvert (v8i16 VR128:$src))), (v16i8 VR128:$src)>;
 def : Pat<(v16i8 (bitconvert (v4i32 VR128:$src))), (v16i8 VR128:$src)>;
 def : Pat<(v16i8 (bitconvert (v2i64 VR128:$src))), (v16i8 VR128:$src)>;
@@ -1755,6 +1756,7 @@ def : Pat<(i128  (bitconvert (v2i64 VR128:$src))), (i128  VR128:$src)>;
 def : Pat<(i128  (bitconvert (v4f32 VR128:$src))), (i128  VR128:$src)>;
 def : Pat<(i128  (bitconvert (v2f64 VR128:$src))), (i128  VR128:$src)>;
 def : Pat<(i128  (bitconvert (f128  VR128:$src))), (i128  VR128:$src)>;
+} // End Predicates = [FeatureVector]
 
 //===----------------------------------------------------------------------===//
 // Replicating scalars



More information about the llvm-commits mailing list