aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Target/Hexagon/HexagonImmediates.td
diff options
context:
space:
mode:
authorSirish Pande <spande@codeaurora.org>2012-02-15 18:22:18 +0000
committerSirish Pande <spande@codeaurora.org>2012-02-15 18:22:18 +0000
commit11241abca5e2a313412fed594bb9d9fa2a2057fb (patch)
tree24522791de9f4ebaf5811a3dab6601375eee4411 /lib/Target/Hexagon/HexagonImmediates.td
parent40d552e0be0ba66a3d8e31bf797f1acba4c91b17 (diff)
downloadexternal_llvm-11241abca5e2a313412fed594bb9d9fa2a2057fb.zip
external_llvm-11241abca5e2a313412fed594bb9d9fa2a2057fb.tar.gz
external_llvm-11241abca5e2a313412fed594bb9d9fa2a2057fb.tar.bz2
Optimize redundant sign extends and negation of predicates
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150601 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/Hexagon/HexagonImmediates.td')
-rw-r--r--lib/Target/Hexagon/HexagonImmediates.td21
1 files changed, 19 insertions, 2 deletions
diff --git a/lib/Target/Hexagon/HexagonImmediates.td b/lib/Target/Hexagon/HexagonImmediates.td
index 1e3fcb8..0422a43 100644
--- a/lib/Target/Hexagon/HexagonImmediates.td
+++ b/lib/Target/Hexagon/HexagonImmediates.td
@@ -52,12 +52,12 @@ def s10Imm : Operand<i32> {
let PrintMethod = "printHexagonImmOperand";
}
-def s8Imm : Operand<i32> {
+def s9Imm : Operand<i32> {
// For now, we use a generic print function for all operands.
let PrintMethod = "printHexagonImmOperand";
}
-def s9Imm : Operand<i32> {
+def s8Imm : Operand<i32> {
// For now, we use a generic print function for all operands.
let PrintMethod = "printHexagonImmOperand";
}
@@ -197,6 +197,11 @@ def u2Imm : Operand<i32> {
let PrintMethod = "printHexagonImmOperand";
}
+def u1Imm : Operand<i32> {
+ // For now, we use a generic print function for all operands.
+ let PrintMethod = "printHexagonImmOperand";
+}
+
def n8Imm : Operand<i32> {
// For now, we use a generic print function for all operands.
let PrintMethod = "printHexagonImmOperand";
@@ -207,6 +212,11 @@ def m6Imm : Operand<i32> {
let PrintMethod = "printHexagonImmOperand";
}
+def nOneImm : Operand<i32> {
+ // For now, we use a generic print function for all operands.
+ let PrintMethod = "printHexagonNOneImmOperand";
+}
+
//
// Immediate predicates
//
@@ -489,3 +499,10 @@ def n8ImmPred : PatLeaf<(i32 imm), [{
int64_t v = (int64_t)N->getSExtValue();
return (-255 <= v && v <= 0);
}]>;
+
+def nOneImmPred : PatLeaf<(i32 imm), [{
+ // nOneImmPred predicate - True if the immediate is -1.
+ int64_t v = (int64_t)N->getSExtValue();
+ return (-1 == v);
+}]>;
+