From 94269db8bacad503d6cf6472c610990bee665a14 Mon Sep 17 00:00:00 2001 From: Colin LeMahieu Date: Wed, 21 Jan 2015 18:13:15 +0000 Subject: [Hexagon] Converting multiply and accumulate with immediate intrinsics to patterns. llvm-svn: 226681 --- llvm/lib/Target/Hexagon/HexagonIntrinsics.td | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'llvm/lib') diff --git a/llvm/lib/Target/Hexagon/HexagonIntrinsics.td b/llvm/lib/Target/Hexagon/HexagonIntrinsics.td index 25618c5f3cb..f58e7655ed1 100644 --- a/llvm/lib/Target/Hexagon/HexagonIntrinsics.td +++ b/llvm/lib/Target/Hexagon/HexagonIntrinsics.td @@ -53,6 +53,10 @@ class T_QIR_pat : Pat <(IntID (i32 PredRegs:$Ps), ImmPred:$Is, I32:$Rs), (MI PredRegs:$Ps, ImmPred:$Is, I32:$Rs)>; +class T_RRI_pat + : Pat <(IntID I32:$Rs, I32:$Rt, imm:$Iu), + (MI I32:$Rs, I32:$Rt, imm:$Iu)>; + class T_RRR_pat : Pat <(IntID I32:$Rs, I32:$Rt, I32:$Ru), (MI I32:$Rs, I32:$Rt, I32:$Ru)>; @@ -333,6 +337,23 @@ def: T_PP_pat; def: T_PP_pat; def: T_RR_pat; +// Multiply 32x32 and use lower result +def : T_RRI_pat ; +def : T_RRI_pat ; +def : T_RRR_pat ; + +// Subtract and accumulate +def : T_RRR_pat ; + +// Add and accumulate +def : T_RRR_pat ; +def : T_RRR_pat ; +def : T_RRI_pat ; +def : T_RRI_pat ; + +// XOR and XOR with destination +def : T_RRR_pat ; + // // ALU 32 types. // -- cgit v1.2.3