From 4107898839c37bc7e5501fc313282d40719b0bc6 Mon Sep 17 00:00:00 2001 From: Krzysztof Parzyszek Date: Tue, 16 May 2023 06:42:00 -0700 Subject: [PATCH] [Hexagon] Fix HVX predicates on some intrinsic selection patterns Instead of checking arch version, check HVX version when dealing with HVX instructions. --- llvm/lib/Target/Hexagon/HexagonIntrinsics.td | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/llvm/lib/Target/Hexagon/HexagonIntrinsics.td b/llvm/lib/Target/Hexagon/HexagonIntrinsics.td index 370ea5f..6f20c82 100644 --- a/llvm/lib/Target/Hexagon/HexagonIntrinsics.td +++ b/llvm/lib/Target/Hexagon/HexagonIntrinsics.td @@ -356,14 +356,14 @@ defm : T_VVI_inv_pat ; defm : T_VVR_pat ; 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 { @@ -383,7 +383,7 @@ multiclass T_WVP_pat { } // These are actually only in V65. -let Predicates = [HasV65, UseHVX] in { +let Predicates = [UseHVXV65, UseHVX] in { defm: T_VP_pat; defm: T_VP_pat; @@ -408,7 +408,7 @@ multiclass T_pRM_pat { (MI PredRegs:$P, IntRegs:$R, ModRegs:$M)>; } -let Predicates = [HasV62, UseHVX] in { +let Predicates = [UseHVXV62, UseHVX] in { defm: T_pRI_pat; defm: T_pRI_pat; defm: T_pRI_pat; @@ -440,7 +440,7 @@ multiclass T_pRMV_pat { (MI PredRegs:$P, IntRegs:$R, ModRegs:$M, HvxVR:$V)>; } -let Predicates = [HasV60, UseHVX] in { +let Predicates = [UseHVXV60, UseHVX] in { defm: T_pRIV_pat; defm: T_pRIV_pat; defm: T_pRIV_pat; -- 2.7.4