aboutsummaryrefslogtreecommitdiff
path: root/test/Transforms/SimplifyCFG/DeadSetCC.ll
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2005-01-01 16:00:56 +0000
committerChris Lattner <sabre@nondot.org>2005-01-01 16:00:56 +0000
commit72a406eb14ab837aeb25b84c1efff3a835e3c31a (patch)
treeb8aed18551c6301d3b28e6107690c1fe7746dcca /test/Transforms/SimplifyCFG/DeadSetCC.ll
parentf5ac6c27acd65ae2c9eafd355b781123d9882087 (diff)
Add new test to make sure simplifycfg doesn't leave around trivially
dead instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19211 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/Transforms/SimplifyCFG/DeadSetCC.ll')
-rw-r--r--test/Transforms/SimplifyCFG/DeadSetCC.ll26
1 files changed, 26 insertions, 0 deletions
diff --git a/test/Transforms/SimplifyCFG/DeadSetCC.ll b/test/Transforms/SimplifyCFG/DeadSetCC.ll
new file mode 100644
index 0000000000..70ccfc8c13
--- /dev/null
+++ b/test/Transforms/SimplifyCFG/DeadSetCC.ll
@@ -0,0 +1,26 @@
+; RUN: llvm-as < %s | opt -simplifycfg | llvm-dis | not grep seteq
+
+; Check that simplifycfg deletes a dead 'seteq' instruction when it
+; folds a conditional branch into a switch instruction.
+
+declare void %foo()
+declare void %bar()
+
+void %testcfg(uint %V) {
+ %C = seteq uint %V, 18
+ %D = seteq uint %V, 180
+ %E = or bool %C, %D
+ br bool %E, label %L1, label %Sw
+Sw:
+ switch uint %V, label %L1 [
+ uint 15, label %L2
+ uint 16, label %L2
+ ]
+L1:
+ call void %foo()
+ ret void
+L2:
+ call void %bar()
+ ret void
+}
+