diff options
Diffstat (limited to 'lib/Target/Hexagon/HexagonIntrinsicsV3.td')
-rw-r--r-- | lib/Target/Hexagon/HexagonIntrinsicsV3.td | 51 |
1 files changed, 14 insertions, 37 deletions
diff --git a/lib/Target/Hexagon/HexagonIntrinsicsV3.td b/lib/Target/Hexagon/HexagonIntrinsicsV3.td index 2a54e62..6152cb0 100644 --- a/lib/Target/Hexagon/HexagonIntrinsicsV3.td +++ b/lib/Target/Hexagon/HexagonIntrinsicsV3.td @@ -11,40 +11,17 @@ // //===----------------------------------------------------------------------===// - - - -// MTYPE / COMPLEX / Vector reduce complex multiply real or imaginary. -def Hexagon_M2_vrcmpys_s1: - di_MInst_disi_s1_sat <"vrcmpys", int_hexagon_M2_vrcmpys_s1>; -def Hexagon_M2_vrcmpys_acc_s1: - di_MInst_didisi_acc_s1_sat <"vrcmpys", int_hexagon_M2_vrcmpys_acc_s1>; -def Hexagon_M2_vrcmpys_s1rp: - si_MInst_disi_s1_rnd_sat <"vrcmpys", int_hexagon_M2_vrcmpys_s1rp>; - - - - -/******************************************************************** -* MTYPE/VB * -*********************************************************************/ - -// MTYPE / VB / Vector reduce add unsigned bytes. -def Hexagon_M2_vradduh: - si_MInst_didi <"vradduh", int_hexagon_M2_vradduh>; - - -/******************************************************************** -* ALU64/ALU * -*********************************************************************/ - -// ALU64 / ALU / Add. -def Hexagon_A2_addsp: - di_ALU64_sidi <"add", int_hexagon_A2_addsp>; -def Hexagon_A2_addpsat: - di_ALU64_didi <"add", int_hexagon_A2_addpsat>; - -def Hexagon_A2_maxp: - di_ALU64_didi <"max", int_hexagon_A2_maxp>; -def Hexagon_A2_maxup: - di_ALU64_didi <"maxu", int_hexagon_A2_maxup>; +// Vector reduce complex multiply real or imaginary +def : T_PR_pat <M2_vrcmpys_s1, int_hexagon_M2_vrcmpys_s1>; +def : T_PPR_pat<M2_vrcmpys_acc_s1, int_hexagon_M2_vrcmpys_acc_s1>; +def : T_PR_pat <M2_vrcmpys_s1rp, int_hexagon_M2_vrcmpys_s1rp>; + +// Vector reduce add unsigned halfwords +def : T_PP_pat<M2_vradduh, int_hexagon_M2_vradduh>; + +def: T_RP_pat<A2_addsp, int_hexagon_A2_addsp>; +def: T_PP_pat<A2_addpsat, int_hexagon_A2_addpsat>; +def: T_PP_pat<A2_minp, int_hexagon_A2_minp>; +def: T_PP_pat<A2_minup, int_hexagon_A2_minup>; +def: T_PP_pat<A2_maxp, int_hexagon_A2_maxp>; +def: T_PP_pat<A2_maxup, int_hexagon_A2_maxup>; |