summaryrefslogtreecommitdiffstats
path: root/llvm/test/CodeGen
diff options
context:
space:
mode:
authorEvan Cheng <evan.cheng@apple.com>2009-08-12 01:49:45 +0000
committerEvan Cheng <evan.cheng@apple.com>2009-08-12 01:49:45 +0000
commit1e6c2a1c179a68836ad3b007f28bc94ec805a80c (patch)
tree517c9a2af233ca255aaa4d217d9fb41ddfee3033 /llvm/test/CodeGen
parent9e8b647539ca657cd737a9d4efa8adef5c4d77d4 (diff)
downloadbcm5719-llvm-1e6c2a1c179a68836ad3b007f28bc94ec805a80c.tar.gz
bcm5719-llvm-1e6c2a1c179a68836ad3b007f28bc94ec805a80c.zip
Shrink ADDS, ADC, RSB, and SUBS.
llvm-svn: 78776
Diffstat (limited to 'llvm/test/CodeGen')
-rw-r--r--llvm/test/CodeGen/Thumb2/carry.ll12
-rw-r--r--llvm/test/CodeGen/Thumb2/thumb2-adc.ll18
-rw-r--r--llvm/test/CodeGen/Thumb2/thumb2-adc2.ll6
-rw-r--r--llvm/test/CodeGen/Thumb2/thumb2-add4.ll17
-rw-r--r--llvm/test/CodeGen/Thumb2/thumb2-add6.ll5
-rw-r--r--llvm/test/CodeGen/Thumb2/thumb2-neg.ll4
-rw-r--r--llvm/test/CodeGen/Thumb2/thumb2-sbc.ll8
-rw-r--r--llvm/test/CodeGen/Thumb2/thumb2-sbc2.ll6
-rw-r--r--llvm/test/CodeGen/Thumb2/thumb2-sub5.ll5
9 files changed, 61 insertions, 20 deletions
diff --git a/llvm/test/CodeGen/Thumb2/carry.ll b/llvm/test/CodeGen/Thumb2/carry.ll
index 3388e225497..a55c16f2198 100644
--- a/llvm/test/CodeGen/Thumb2/carry.ll
+++ b/llvm/test/CodeGen/Thumb2/carry.ll
@@ -1,15 +1,21 @@
-; RUN: llvm-as < %s | llc -march=thumb -mattr=+thumb2 | grep "subs\\.w r" | count 2
-; RUN: llvm-as < %s | llc -march=thumb -mattr=+thumb2 | grep "adc\\.w r"
-; RUN: llvm-as < %s | llc -march=thumb -mattr=+thumb2 | grep "sbc\\.w r" | count 2
+; RUN: llvm-as < %s | llc -march=thumb -mattr=+thumb2 | FileCheck %s
define i64 @f1(i64 %a, i64 %b) {
entry:
+; CHECK: f1:
+; CHECK: subs r0, r0, r2
+; CHECK: sbcs r1, r3
%tmp = sub i64 %a, %b
ret i64 %tmp
}
define i64 @f2(i64 %a, i64 %b) {
entry:
+; CHECK: f2:
+; CHECK: adds r0, r0, r0
+; CHECK: adcs r1, r1
+; CHECK: subs r0, r0, r2
+; CHECK: sbcs r1, r3
%tmp1 = shl i64 %a, 1
%tmp2 = sub i64 %tmp1, %b
ret i64 %tmp2
diff --git a/llvm/test/CodeGen/Thumb2/thumb2-adc.ll b/llvm/test/CodeGen/Thumb2/thumb2-adc.ll
index c1565b30096..dd1cd1d41a5 100644
--- a/llvm/test/CodeGen/Thumb2/thumb2-adc.ll
+++ b/llvm/test/CodeGen/Thumb2/thumb2-adc.ll
@@ -1,32 +1,48 @@
-; RUN: llvm-as < %s | llc -march=thumb -mattr=+thumb2 | grep {adc\\W*r\[0-9\],\\W*r\[0-9\],\\W*#\[0-9\]*} | grep {#171\\|#1179666\\|#872428544\\|#1448498774\\|#66846720} | count 5
+; RUN: llvm-as < %s | llc -march=thumb -mattr=+thumb2 | FileCheck %s
; 734439407618 = 0x000000ab00000002
define i64 @f1(i64 %a) {
+; CHECK: f1:
+; CHECK: adds r0, #2
%tmp = add i64 %a, 734439407618
ret i64 %tmp
}
; 5066626890203138 = 0x0012001200000002
define i64 @f2(i64 %a) {
+; CHECK: f2:
+; CHECK: adds r0, #2
%tmp = add i64 %a, 5066626890203138
ret i64 %tmp
}
; 3747052064576897026 = 0x3400340000000002
define i64 @f3(i64 %a) {
+; CHECK: f3:
+; CHECK: adds r0, #2
%tmp = add i64 %a, 3747052064576897026
ret i64 %tmp
}
; 6221254862626095106 = 0x5656565600000002
define i64 @f4(i64 %a) {
+; CHECK: f4:
+; CHECK: adds r0, #2
%tmp = add i64 %a, 6221254862626095106
ret i64 %tmp
}
; 287104476244869122 = 0x03fc000000000002
define i64 @f5(i64 %a) {
+; CHECK: f5:
+; CHECK: adds r0, #2
%tmp = add i64 %a, 287104476244869122
ret i64 %tmp
}
+define i64 @f6(i64 %a, i64 %b) {
+; CHECK: f6:
+; CHECK: adds r0, r0, r2
+ %tmp = add i64 %a, %b
+ ret i64 %tmp
+}
diff --git a/llvm/test/CodeGen/Thumb2/thumb2-adc2.ll b/llvm/test/CodeGen/Thumb2/thumb2-adc2.ll
deleted file mode 100644
index 1c1d609e053..00000000000
--- a/llvm/test/CodeGen/Thumb2/thumb2-adc2.ll
+++ /dev/null
@@ -1,6 +0,0 @@
-; RUN: llvm-as < %s | llc -march=thumb -mattr=+thumb2 | grep {adc\\.w\\W*r\[0-9\],\\W*r\[0-9\],\\W*r\[0-9\]*} | count 1
-
-define i64 @f1(i64 %a, i64 %b) {
- %tmp = add i64 %a, %b
- ret i64 %tmp
-}
diff --git a/llvm/test/CodeGen/Thumb2/thumb2-add4.ll b/llvm/test/CodeGen/Thumb2/thumb2-add4.ll
index 1cc35913637..34620bcc5dc 100644
--- a/llvm/test/CodeGen/Thumb2/thumb2-add4.ll
+++ b/llvm/test/CodeGen/Thumb2/thumb2-add4.ll
@@ -1,31 +1,46 @@
-; RUN: llvm-as < %s | llc -march=thumb -mattr=+thumb2 | grep {adds\\.w\\W*r\[0-9\],\\W*r\[0-9\],\\W*#\[0-9\]*} | grep {#171\\|#1179666\\|#872428544\\|#1448498774\\|#66846720} | count 5
+; RUN: llvm-as < %s | llc -march=thumb -mattr=+thumb2 | FileCheck %s
; 171 = 0x000000ab
define i64 @f1(i64 %a) {
+; CHECK: f1:
+; CHECK: adds r0, #171
+; CHECK: adc r1, r1, #0
%tmp = add i64 %a, 171
ret i64 %tmp
}
; 1179666 = 0x00120012
define i64 @f2(i64 %a) {
+; CHECK: f2:
+; CHECK: adds.w r0, r0, #1179666
+; CHECK: adc r1, r1, #0
%tmp = add i64 %a, 1179666
ret i64 %tmp
}
; 872428544 = 0x34003400
define i64 @f3(i64 %a) {
+; CHECK: f3:
+; CHECK: adds.w r0, r0, #872428544
+; CHECK: adc r1, r1, #0
%tmp = add i64 %a, 872428544
ret i64 %tmp
}
; 1448498774 = 0x56565656
define i64 @f4(i64 %a) {
+; CHECK: f4:
+; CHECK: adds.w r0, r0, #1448498774
+; CHECK: adc r1, r1, #0
%tmp = add i64 %a, 1448498774
ret i64 %tmp
}
; 66846720 = 0x03fc0000
define i64 @f5(i64 %a) {
+; CHECK: f5:
+; CHECK: adds.w r0, r0, #66846720
+; CHECK: adc r1, r1, #0
%tmp = add i64 %a, 66846720
ret i64 %tmp
}
diff --git a/llvm/test/CodeGen/Thumb2/thumb2-add6.ll b/llvm/test/CodeGen/Thumb2/thumb2-add6.ll
index 628232f9daa..ca6df050e6d 100644
--- a/llvm/test/CodeGen/Thumb2/thumb2-add6.ll
+++ b/llvm/test/CodeGen/Thumb2/thumb2-add6.ll
@@ -1,6 +1,9 @@
-; RUN: llvm-as < %s | llc -march=thumb -mattr=+thumb2 | grep {adds\\.w\\W*r\[0-9\],\\W*r\[0-9\],\\W*r\[0-9\]} | count 1
+; RUN: llvm-as < %s | llc -march=thumb -mattr=+thumb2 | FileCheck %s
define i64 @f1(i64 %a, i64 %b) {
+; CHECK: f1:
+; CHECK: adds r0, r0, r2
+; CHECK: adcs r1, r3
%tmp = add i64 %a, %b
ret i64 %tmp
}
diff --git a/llvm/test/CodeGen/Thumb2/thumb2-neg.ll b/llvm/test/CodeGen/Thumb2/thumb2-neg.ll
index 894c5287397..7a26c58e8ca 100644
--- a/llvm/test/CodeGen/Thumb2/thumb2-neg.ll
+++ b/llvm/test/CodeGen/Thumb2/thumb2-neg.ll
@@ -1,6 +1,8 @@
-; RUN: llvm-as < %s | llc -march=thumb -mattr=+thumb2 | grep {rsb\\.w\\W*r\[0-9\],\\W*r\[0-9\],\\W*#0} | count 1
+; RUN: llvm-as < %s | llc -march=thumb -mattr=+thumb2 | FileCheck %s
define i32 @f1(i32 %a) {
+; CHECK: f1:
+; CHECK: rsbs r0, r0, #0
%tmp = sub i32 0, %a
ret i32 %tmp
}
diff --git a/llvm/test/CodeGen/Thumb2/thumb2-sbc.ll b/llvm/test/CodeGen/Thumb2/thumb2-sbc.ll
new file mode 100644
index 00000000000..78d6d33aa7e
--- /dev/null
+++ b/llvm/test/CodeGen/Thumb2/thumb2-sbc.ll
@@ -0,0 +1,8 @@
+; RUN: llvm-as < %s | llc -march=thumb -mattr=+thumb2 | FileCheck %s
+
+define i64 @f1(i64 %a, i64 %b) {
+; CHECK: f1:
+; CHECK: subs r0, r0, r2
+ %tmp = sub i64 %a, %b
+ ret i64 %tmp
+}
diff --git a/llvm/test/CodeGen/Thumb2/thumb2-sbc2.ll b/llvm/test/CodeGen/Thumb2/thumb2-sbc2.ll
deleted file mode 100644
index 2bf02f8c1bd..00000000000
--- a/llvm/test/CodeGen/Thumb2/thumb2-sbc2.ll
+++ /dev/null
@@ -1,6 +0,0 @@
-; RUN: llvm-as < %s | llc -march=thumb -mattr=+thumb2 | grep {sbc\\.w\\W*r\[0-9\],\\W*r\[0-9\],\\W*r\[0-9\]*} | count 1
-
-define i64 @f1(i64 %a, i64 %b) {
- %tmp = sub i64 %a, %b
- ret i64 %tmp
-}
diff --git a/llvm/test/CodeGen/Thumb2/thumb2-sub5.ll b/llvm/test/CodeGen/Thumb2/thumb2-sub5.ll
index 8fab55ad712..1110dad06b4 100644
--- a/llvm/test/CodeGen/Thumb2/thumb2-sub5.ll
+++ b/llvm/test/CodeGen/Thumb2/thumb2-sub5.ll
@@ -1,6 +1,9 @@
-; RUN: llvm-as < %s | llc -march=thumb -mattr=+thumb2 | grep {subs\\.w\\W*r\[0-9\],\\W*r\[0-9\],\\W*r\[0-9\]} | count 1
+; RUN: llvm-as < %s | llc -march=thumb -mattr=+thumb2 | FileCheck %s
define i64 @f1(i64 %a, i64 %b) {
+; CHECK: f1:
+; CHECK: subs r0, r0, r2
+; CHECK: sbcs r1, r3
%tmp = sub i64 %a, %b
ret i64 %tmp
}
OpenPOWER on IntegriCloud