diff options
author | Sirish Pande <spande@codeaurora.org> | 2012-02-15 18:22:18 +0000 |
---|---|---|
committer | Sirish Pande <spande@codeaurora.org> | 2012-02-15 18:22:18 +0000 |
commit | 11241abca5e2a313412fed594bb9d9fa2a2057fb (patch) | |
tree | 24522791de9f4ebaf5811a3dab6601375eee4411 /lib/Target/Hexagon/HexagonImmediates.td | |
parent | 40d552e0be0ba66a3d8e31bf797f1acba4c91b17 (diff) | |
download | external_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.td | 21 |
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); +}]>; + |