summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/ARM/ARMInstrThumb.td
diff options
context:
space:
mode:
authorEvan Cheng <evan.cheng@apple.com>2012-06-23 00:29:06 +0000
committerEvan Cheng <evan.cheng@apple.com>2012-06-23 00:29:06 +0000
commit68c2f9a9a79dda533b4e7af346362803d80fe705 (patch)
treecab796a75f0abf2cbc25fb105410ee865b8b7742 /llvm/lib/Target/ARM/ARMInstrThumb.td
parentde2e5ed4aa22b33f003938fa961edf1519d8bb5b (diff)
downloadbcm5719-llvm-68c2f9a9a79dda533b4e7af346362803d80fe705.tar.gz
bcm5719-llvm-68c2f9a9a79dda533b4e7af346362803d80fe705.zip
(sub X, imm) gets canonicalized to (add X, -imm)
There are patterns to handle immediates when they fit in the immediate field. e.g. %sub = add i32 %x, -123 => sub r0, r0, #123 Add patterns to catch immediates that do not fit but should be materialized with a single movw instruction rather than movw + movt pair. e.g. %sub = add i32 %x, -65535 => movw r1, #65535 sub r0, r0, r1 rdar://11726136 llvm-svn: 159057
Diffstat (limited to 'llvm/lib/Target/ARM/ARMInstrThumb.td')
-rw-r--r--llvm/lib/Target/ARM/ARMInstrThumb.td3
1 files changed, 0 insertions, 3 deletions
diff --git a/llvm/lib/Target/ARM/ARMInstrThumb.td b/llvm/lib/Target/ARM/ARMInstrThumb.td
index 66daa1cb693..fec61d2390e 100644
--- a/llvm/lib/Target/ARM/ARMInstrThumb.td
+++ b/llvm/lib/Target/ARM/ARMInstrThumb.td
@@ -32,9 +32,6 @@ def imm_sr : Operand<i32>, PatLeaf<(imm), [{
let ParserMatchClass = ThumbSRImmAsmOperand;
}
-def imm_neg_XFORM : SDNodeXForm<imm, [{
- return CurDAG->getTargetConstant(-(int)N->getZExtValue(), MVT::i32);
-}]>;
def imm_comp_XFORM : SDNodeXForm<imm, [{
return CurDAG->getTargetConstant(~((uint32_t)N->getZExtValue()), MVT::i32);
}]>;
OpenPOWER on IntegriCloud