OSDN Git Service

Add a testcase for switch instruction induction
authorChris Lattner <sabre@nondot.org>
Sat, 28 Feb 2004 21:30:39 +0000 (21:30 +0000)
committerChris Lattner <sabre@nondot.org>
Sat, 28 Feb 2004 21:30:39 +0000 (21:30 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11965 91177308-0d34-0410-b5e6-96231b3b80d8

test/Transforms/SimplifyCFG/switch_formation.ll [new file with mode: 0644]

diff --git a/test/Transforms/SimplifyCFG/switch_formation.ll b/test/Transforms/SimplifyCFG/switch_formation.ll
new file mode 100644 (file)
index 0000000..f225e8d
--- /dev/null
@@ -0,0 +1,36 @@
+; RUN: llvm-as < %s | opt -simplifycfg | llvm-dis | not grep 'br'
+
+bool %_ZN4llvm11SetCondInst7classofEPKNS_11InstructionE({uint, uint}* %I) {
+entry:
+       %tmp.1.i = getelementptr {uint, uint}* %I, long 0, ubyte 1
+       %tmp.2.i = load uint* %tmp.1.i
+       %tmp.2 = seteq uint %tmp.2.i, 14
+       br bool %tmp.2, label %shortcirc_done.4, label %shortcirc_next.0
+
+shortcirc_next.0:              ; preds = %entry
+       %tmp.6 = seteq uint %tmp.2.i, 15                ; <bool> [#uses=1]
+       br bool %tmp.6, label %shortcirc_done.4, label %shortcirc_next.1
+
+shortcirc_next.1:              ; preds = %shortcirc_next.0
+       %tmp.11 = seteq uint %tmp.2.i, 16               ; <bool> [#uses=1]
+       br bool %tmp.11, label %shortcirc_done.4, label %shortcirc_next.2
+
+shortcirc_next.2:              ; preds = %shortcirc_next.1
+       %tmp.16 = seteq uint %tmp.2.i, 17               ; <bool> [#uses=1]
+       br bool %tmp.16, label %shortcirc_done.4, label %shortcirc_next.3
+
+shortcirc_next.3:              ; preds = %shortcirc_next.2
+       %tmp.21 = seteq uint %tmp.2.i, 18               ; <bool> [#uses=1]
+       br bool %tmp.21, label %shortcirc_done.4, label %shortcirc_next.4
+
+shortcirc_next.4:              ; preds = %shortcirc_next.3
+       %tmp.26 = seteq uint %tmp.2.i, 19               ; <bool> [#uses=1]
+       br label %UnifiedReturnBlock
+
+shortcirc_done.4:              ; preds = %entry, %shortcirc_next.0, %shortcirc_next.1, %shortcirc_next.2, %shortcirc_next.3
+       br label %UnifiedReturnBlock
+
+UnifiedReturnBlock:            ; preds = %shortcirc_next.4, %shortcirc_done.4
+       %UnifiedRetVal = phi bool [ %tmp.26, %shortcirc_next.4 ], [ true, %shortcirc_done.4 ]           ; <bool> [#uses=1]
+       ret bool %UnifiedRetVal
+}