summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target
diff options
context:
space:
mode:
authorColin LeMahieu <colinl@codeaurora.org>2014-12-08 17:33:06 +0000
committerColin LeMahieu <colinl@codeaurora.org>2014-12-08 17:33:06 +0000
commitb56e6cd9b9bdd0fab494da1d0aa474b8c31c2a73 (patch)
tree2fa7a5f56b070d7a9d7041864e26239e4b0a431d /llvm/lib/Target
parentbc0184464141e0022bb2a1d39b20c48f114bdf2b (diff)
downloadbcm5719-llvm-b56e6cd9b9bdd0fab494da1d0aa474b8c31c2a73.tar.gz
bcm5719-llvm-b56e6cd9b9bdd0fab494da1d0aa474b8c31c2a73.zip
[Hexagon] Adding combine reg, reg with predicated forms.
llvm-svn: 223667
Diffstat (limited to 'llvm/lib/Target')
-rw-r--r--llvm/lib/Target/Hexagon/HexagonInstrInfo.td7
1 files changed, 7 insertions, 0 deletions
diff --git a/llvm/lib/Target/Hexagon/HexagonInstrInfo.td b/llvm/lib/Target/Hexagon/HexagonInstrInfo.td
index 3158adcfa5e..99a02a9a233 100644
--- a/llvm/lib/Target/Hexagon/HexagonInstrInfo.td
+++ b/llvm/lib/Target/Hexagon/HexagonInstrInfo.td
@@ -208,6 +208,13 @@ def: BinOp32_pat<xor, A2_xor, i32>;
let OutOperandList = (outs DoubleRegs:$Rd), hasNewValue = 0,
isCodeGenOnly = 0 in {
def S2_packhl : T_ALU32_3op <"packhl", 0b101, 0b100, 0, 0>;
+
+ let isPredicable = 1 in
+ def A2_combinew : T_ALU32_3op <"combine", 0b101, 0b000, 0, 0>;
+
+ // Conditional combinew uses "newt/f" instead of "t/fnew".
+ def C2_ccombinewt : T_ALU32_3op_pred<"combine", 0b101, 0b000, 0, 0, 0>;
+ def C2_ccombinewf : T_ALU32_3op_pred<"combine", 0b101, 0b000, 0, 1, 0>;
}
let hasSideEffects = 0, hasNewValue = 1, isCompare = 1, InputType = "reg" in
OpenPOWER on IntegriCloud