diff options
| author | Anton Korobeynikov <asl@math.spbu.ru> | 2007-04-04 21:14:49 +0000 |
|---|---|---|
| committer | Anton Korobeynikov <asl@math.spbu.ru> | 2007-04-04 21:14:49 +0000 |
| commit | 915e61736b27d8eca68c871f87386b24989f17a6 (patch) | |
| tree | db5b5bde55a030ef2766e848433b91a821766875 /llvm/test | |
| parent | 9da1cde86c50e0c2267330c98818d009cebf43ac (diff) | |
| download | bcm5719-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.ll | 47 | ||||
| -rw-r--r-- | llvm/test/CodeGen/Generic/switch-lower-feature.ll | 8 |
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) { |

