summaryrefslogtreecommitdiff
path: root/test/CodeGen/Thumb
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
commitf803e21e4f245453fc3d0cbfac4d2e0fd4d0f7bb (patch)
treee919d07be698fd311465d9844f23892e3529bd33 /test/CodeGen/Thumb
parent13c7e8f75df823546a5f745603968535cf038417 (diff)
[Thumb1] Fix the bug when adding/subtracting -2147483648
Differential Revision: https://reviews.llvm.org/D30829 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@297820 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/CodeGen/Thumb')
-rw-r--r--test/CodeGen/Thumb/long.ll12
1 files changed, 12 insertions, 0 deletions
diff --git a/test/CodeGen/Thumb/long.ll b/test/CodeGen/Thumb/long.ll
index e35f7cc82b1..c549bd425aa 100644
--- a/test/CodeGen/Thumb/long.ll
+++ b/test/CodeGen/Thumb/long.ll
@@ -194,3 +194,15 @@ entry:
; CHECK: movs r1, r3
}
+; "sub 2147483648" has to be lowered into "add -2147483648"
+define i64 @f12(i64 %x, i64 %y) {
+entry:
+ %tmp1 = sub i64 %x, 2147483648
+ ret i64 %tmp1
+; CHECK-LABEL: f12:
+; CHECK: movs r2, #1
+; CHECK: lsls r2, r2, #31
+; CHECK: movs r3, #0
+; CHECK: adds r0, r0, r2
+; CHECK: sbcs r1, r3
+}