summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/ARM/ARMISelLowering.cpp
diff options
context:
space:
mode:
authorArtyom Skrobov <Artyom.Skrobov@arm.com>2017-03-15 10:19:16 +0000
committerArtyom Skrobov <Artyom.Skrobov@arm.com>2017-03-15 10:19:16 +0000
commit3fa5fd1dd278004d4f9b9427814a916e8cafadc9 (patch)
tree2681f4adb094fa8fc0f9f66e7fc968030308a910 /llvm/lib/Target/ARM/ARMISelLowering.cpp
parentc17966280709cfd7e5171f16e1de46187bcf7e2c (diff)
downloadbcm5719-llvm-3fa5fd1dd278004d4f9b9427814a916e8cafadc9.tar.gz
bcm5719-llvm-3fa5fd1dd278004d4f9b9427814a916e8cafadc9.zip
[Thumb1] Fix the bug when adding/subtracting -2147483648
Differential Revision: https://reviews.llvm.org/D30829 llvm-svn: 297820
Diffstat (limited to 'llvm/lib/Target/ARM/ARMISelLowering.cpp')
-rw-r--r--llvm/lib/Target/ARM/ARMISelLowering.cpp8
1 files changed, 4 insertions, 4 deletions
diff --git a/llvm/lib/Target/ARM/ARMISelLowering.cpp b/llvm/lib/Target/ARM/ARMISelLowering.cpp
index 15ae0c7940b..a13ef5820bf 100644
--- a/llvm/lib/Target/ARM/ARMISelLowering.cpp
+++ b/llvm/lib/Target/ARM/ARMISelLowering.cpp
@@ -9788,8 +9788,8 @@ static SDValue PerformAddcSubcCombine(SDNode *N, SelectionDAG &DAG,
if (Subtarget->isThumb1Only()) {
SDValue RHS = N->getOperand(1);
if (ConstantSDNode *C = dyn_cast<ConstantSDNode>(RHS)) {
- int64_t imm = C->getSExtValue();
- if (imm < 0) {
+ int32_t imm = C->getSExtValue();
+ if (-imm > 0) {
SDLoc DL(N);
RHS = DAG.getConstant(-imm, DL, MVT::i32);
unsigned Opcode = (N->getOpcode() == ARMISD::ADDC) ? ARMISD::SUBC
@@ -9806,8 +9806,8 @@ static SDValue PerformAddeSubeCombine(SDNode *N, SelectionDAG &DAG,
if (Subtarget->isThumb1Only()) {
SDValue RHS = N->getOperand(1);
if (ConstantSDNode *C = dyn_cast<ConstantSDNode>(RHS)) {
- int64_t imm = C->getSExtValue();
- if (imm < 0) {
+ int32_t imm = C->getSExtValue();
+ if (-imm > 0) {
SDLoc DL(N);
// The with-carry-in form matches bitwise not instead of the negation.
OpenPOWER on IntegriCloud