[llvm] 4107898 - [Hexagon] Fix HVX predicates on some intrinsic selection patterns

Krzysztof Parzyszek via llvm-commits llvm-commits at lists.llvm.org
Tue May 16 10:06:32 PDT 2023


Author: Krzysztof Parzyszek
Date: 2023-05-16T10:05:59-07:00
New Revision: 4107898839c37bc7e5501fc313282d40719b0bc6

URL: https://github.com/llvm/llvm-project/commit/4107898839c37bc7e5501fc313282d40719b0bc6
DIFF: https://github.com/llvm/llvm-project/commit/4107898839c37bc7e5501fc313282d40719b0bc6.diff

LOG: [Hexagon] Fix HVX predicates on some intrinsic selection patterns

Instead of checking arch version, check HVX version when dealing with
HVX instructions.

Added: 
    

Modified: 
    llvm/lib/Target/Hexagon/HexagonIntrinsics.td

Removed: 
    


################################################################################
diff  --git a/llvm/lib/Target/Hexagon/HexagonIntrinsics.td b/llvm/lib/Target/Hexagon/HexagonIntrinsics.td
index 370ea5fc83d6f..6f20c823df855 100644
--- a/llvm/lib/Target/Hexagon/HexagonIntrinsics.td
+++ b/llvm/lib/Target/Hexagon/HexagonIntrinsics.td
@@ -356,14 +356,14 @@ defm : T_VVI_inv_pat <V6_valignbi, int_hexagon_V6_vlalignb>;
 defm : T_VVR_pat <V6_vlalignb, int_hexagon_V6_vlalignbi>;
 
 def: Pat<(int_hexagon_V6_vd0),
-         (V6_vd0)>, Requires<[HasV60, UseHVX64B]>;
+         (V6_vd0)>, Requires<[UseHVXV60, UseHVX64B]>;
 def: Pat<(int_hexagon_V6_vd0_128B ),
-         (V6_vd0)>, Requires<[HasV60, UseHVX128B]>;
+         (V6_vd0)>, Requires<[UseHVXV60, UseHVX128B]>;
 
 def: Pat<(int_hexagon_V6_vdd0),
-         (V6_vdd0)>, Requires<[HasV65, UseHVX64B]>;
+         (V6_vdd0)>, Requires<[UseHVXV65, UseHVX64B]>;
 def: Pat<(int_hexagon_V6_vdd0_128B),
-         (V6_vdd0)>, Requires<[HasV65, UseHVX128B]>;
+         (V6_vdd0)>, Requires<[UseHVXV65, UseHVX128B]>;
 
 
 multiclass T_VP_pat<InstHexagon MI, Intrinsic IntID> {
@@ -383,7 +383,7 @@ multiclass T_WVP_pat<InstHexagon MI, Intrinsic IntID> {
 }
 
 // These are actually only in V65.
-let Predicates = [HasV65, UseHVX] in {
+let Predicates = [UseHVXV65, UseHVX] in {
   defm: T_VP_pat<V6_vrmpyub_rtt,        int_hexagon_V6_vrmpyub_rtt>;
   defm: T_VP_pat<V6_vrmpybub_rtt,       int_hexagon_V6_vrmpybub_rtt>;
 
@@ -408,7 +408,7 @@ multiclass T_pRM_pat<InstHexagon MI, Intrinsic IntID> {
            (MI    PredRegs:$P, IntRegs:$R, ModRegs:$M)>;
 }
 
-let Predicates = [HasV62, UseHVX] in {
+let Predicates = [UseHVXV62, UseHVX] in {
   defm: T_pRI_pat<V6_vL32b_pred_ai,       int_hexagon_V6_vL32b_pred_ai>;
   defm: T_pRI_pat<V6_vL32b_npred_ai,      int_hexagon_V6_vL32b_npred_ai>;
   defm: T_pRI_pat<V6_vL32b_pred_pi,       int_hexagon_V6_vL32b_pred_pi>;
@@ -440,7 +440,7 @@ multiclass T_pRMV_pat<InstHexagon MI, Intrinsic IntID> {
            (MI    PredRegs:$P, IntRegs:$R, ModRegs:$M, HvxVR:$V)>;
 }
 
-let Predicates = [HasV60, UseHVX] in {
+let Predicates = [UseHVXV60, UseHVX] in {
   defm: T_pRIV_pat<V6_vS32b_pred_ai,      int_hexagon_V6_vS32b_pred_ai>;
   defm: T_pRIV_pat<V6_vS32b_npred_ai,     int_hexagon_V6_vS32b_npred_ai>;
   defm: T_pRIV_pat<V6_vS32b_pred_pi,      int_hexagon_V6_vS32b_pred_pi>;


        


More information about the llvm-commits mailing list