From: Chris Lattner Date: Sun, 17 Aug 2003 20:19:31 +0000 (+0000) Subject: New testcase to ensure that switch folding happens correctly X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=09864a1ef0f71c2ded71fe56ec6ee9f75ab6f7a6;p=oota-llvm.git New testcase to ensure that switch folding happens correctly git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7922 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/test/Transforms/SimplifyCFG/2003-08-17-FoldSwitch.ll b/test/Transforms/SimplifyCFG/2003-08-17-FoldSwitch.ll new file mode 100644 index 00000000000..79b55a4c611 --- /dev/null +++ b/test/Transforms/SimplifyCFG/2003-08-17-FoldSwitch.ll @@ -0,0 +1,49 @@ +; RUN: as < %s | opt -simplifycfg | dis | not grep switch + +int %test1() { ; Test normal folding + switch uint 5, label %Default [ + uint 0, label %Foo + uint 1, label %Bar + uint 2, label %Baz + uint 5, label %TheDest + ] +Default:ret int -1 +Foo: ret int -2 +Bar: ret int -3 +Baz: ret int -4 +TheDest:ret int 1234 +} + +int %test2() { ; Test folding to default dest + switch uint 3, label %Default [ + uint 0, label %Foo + uint 1, label %Bar + uint 2, label %Baz + uint 5, label %TheDest + ] +Default:ret int 1234 +Foo: ret int -2 +Bar: ret int -5 +Baz: ret int -6 +TheDest:ret int -8 +} + +int %test3(bool %C) { ; Test folding all to same dest + br bool %C, label %Start, label %TheDest +Start: + switch uint 3, label %TheDest [ + uint 0, label %TheDest + uint 1, label %TheDest + uint 2, label %TheDest + uint 5, label %TheDest + ] +TheDest: ret int 1234 +} + +int %test4(uint %C) { ; Test folding switch -> branch + switch uint %C, label %L1 [ + uint 0, label %L2 + ] +L1: ret int 0 +L2: ret int 1 +}