summaryrefslogtreecommitdiffstats
path: root/llvm/test
diff options
context:
space:
mode:
authorAnton Korobeynikov <asl@math.spbu.ru>2007-04-04 21:14:49 +0000
committerAnton Korobeynikov <asl@math.spbu.ru>2007-04-04 21:14:49 +0000
commit915e61736b27d8eca68c871f87386b24989f17a6 (patch)
treedb5b5bde55a030ef2766e848433b91a821766875 /llvm/test
parent9da1cde86c50e0c2267330c98818d009cebf43ac (diff)
downloadbcm5719-llvm-915e61736b27d8eca68c871f87386b24989f17a6.tar.gz
bcm5719-llvm-915e61736b27d8eca68c871f87386b24989f17a6.zip
Properly emit range comparisons for switch cases, where neighbour cases
go to the same destination. Now we're producing really good code for switch-lower-feature.ll testcase llvm-svn: 35672
Diffstat (limited to 'llvm/test')
-rw-r--r--llvm/test/CodeGen/Generic/switch-lower-feature-2.ll47
-rw-r--r--llvm/test/CodeGen/Generic/switch-lower-feature.ll8
2 files changed, 51 insertions, 4 deletions
diff --git a/llvm/test/CodeGen/Generic/switch-lower-feature-2.ll b/llvm/test/CodeGen/Generic/switch-lower-feature-2.ll
new file mode 100644
index 00000000000..9363f034cc4
--- /dev/null
+++ b/llvm/test/CodeGen/Generic/switch-lower-feature-2.ll
@@ -0,0 +1,47 @@
+; RUN: llvm-as < %s | llc -march=x86 -o - | grep jb | wc -l | grep 1 &&
+; RUN: llvm-as < %s | llc -march=x86 -o - | grep \$6 | wc -l | grep 2 &&
+; RUN: llvm-as < %s | llc -march=x86 -o - | grep 1024 | wc -l | grep 1 &&
+; RUN: llvm-as < %s | llc -march=x86 -o - | grep 1023 | wc -l | grep 1 &&
+; RUN: llvm-as < %s | llc -march=x86 -o - | grep 119 | wc -l | grep 1 &&
+; RUN: llvm-as < %s | llc -march=x86 -o - | grep JTI | wc -l | grep 2 &&
+; RUN: llvm-as < %s | llc -march=x86 -o - | grep jg | wc -l | grep 1 &&
+; RUN: llvm-as < %s | llc -march=x86 -o - | grep ja | wc -l | grep 1 &&
+; RUN: llvm-as < %s | llc -march=x86 -o - | grep js | wc -l | grep 1
+
+define i32 @main(i32 %tmp158) {
+entry:
+ switch i32 %tmp158, label %bb336 [
+ i32 -2147483648, label %bb338
+ i32 -2147483647, label %bb338
+ i32 -2147483646, label %bb338
+ i32 120, label %bb338
+ i32 121, label %bb339
+ i32 122, label %bb340
+ i32 123, label %bb341
+ i32 124, label %bb342
+ i32 125, label %bb343
+ i32 126, label %bb336
+ i32 1024, label %bb338
+ i32 0, label %bb338
+ i32 1, label %bb338
+ i32 2, label %bb338
+ i32 3, label %bb338
+ i32 4, label %bb338
+ i32 5, label %bb338
+ ]
+bb336:
+ ret i32 10
+bb338:
+ ret i32 11
+bb339:
+ ret i32 12
+bb340:
+ ret i32 13
+bb341:
+ ret i32 14
+bb342:
+ ret i32 15
+bb343:
+ ret i32 18
+
+}
diff --git a/llvm/test/CodeGen/Generic/switch-lower-feature.ll b/llvm/test/CodeGen/Generic/switch-lower-feature.ll
index 1eb46050d05..a1345cb8716 100644
--- a/llvm/test/CodeGen/Generic/switch-lower-feature.ll
+++ b/llvm/test/CodeGen/Generic/switch-lower-feature.ll
@@ -1,10 +1,10 @@
-; RUN: llvm-as < %s | llc -march=x86 -o - | grep \$5 | wc -l | grep 1 &&
+; RUN: llvm-as < %s | llc -march=x86 -o - | grep \$7 | wc -l | grep 1 &&
; RUN: llvm-as < %s | llc -march=x86 -o - | grep \$6 | wc -l | grep 1 &&
; RUN: llvm-as < %s | llc -march=x86 -o - | grep 1024 | wc -l | grep 1 &&
; RUN: llvm-as < %s | llc -march=x86 -o - | grep 1023 | wc -l | grep 1 &&
-; RUN: llvm-as < %s | llc -march=x86 -o - | grep 1024 | wc -l | grep 1 &&
-; RUN: llvm-as < %s | llc -march=x86 -o - | grep jg | wc -l | grep 2 &&
-; RUN: llvm-as < %s | llc -march=x86 -o - | grep ja | wc -l | grep 2 &&
+; RUN: llvm-as < %s | llc -march=x86 -o - | grep jg | wc -l | grep 1 &&
+; RUN: llvm-as < %s | llc -march=x86 -o - | grep jb | wc -l | grep 1 &&
+; RUN: llvm-as < %s | llc -march=x86 -o - | grep jae | wc -l | grep 1 &&
; RUN: llvm-as < %s | llc -march=x86 -o - | grep je | wc -l | grep 1
define i32 @main(i32 %tmp158) {
OpenPOWER on IntegriCloud