From c3b1a220a7a8ebc67e97a3dd40584f7d6d83e6f5 Mon Sep 17 00:00:00 2001 From: Owen Anderson <resistor@mac.com> Date: Tue, 27 Jun 2006 22:24:59 +0000 Subject: [PATCH] Testcase that Nate found where LoopUnswitch chokes on eliminating a dead case from a switch instruction. llvm-svn: 28946 --- .../LoopUnswitch/2006-06-27-DeadSwitchCase.ll | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 llvm/test/Regression/Transforms/LoopUnswitch/2006-06-27-DeadSwitchCase.ll diff --git a/llvm/test/Regression/Transforms/LoopUnswitch/2006-06-27-DeadSwitchCase.ll b/llvm/test/Regression/Transforms/LoopUnswitch/2006-06-27-DeadSwitchCase.ll new file mode 100644 index 000000000000..b7c6df83a056 --- /dev/null +++ b/llvm/test/Regression/Transforms/LoopUnswitch/2006-06-27-DeadSwitchCase.ll @@ -0,0 +1,31 @@ +; RUN: llvm-as < %s | opt -loop-unswitch -disable-output +implementation ; Functions: + +void %init_caller_save() { +entry: + br label %cond_true78 + +cond_next20: ; preds = %cond_true64 + br label %bb31 + +bb31: ; preds = %cond_true64, %cond_true64, %cond_next20 + %iftmp.29.1 = phi uint [ 0, %cond_next20 ], [ 0, %cond_true64 ], [ 0, %cond_true64 ] ; <uint> [#uses=0] + br label %bb54 + +bb54: ; preds = %cond_true78, %bb31 + br bool false, label %bb75, label %cond_true64 + +cond_true64: ; preds = %bb54 + switch int %i.0.0, label %cond_next20 [ + int 17, label %bb31 + int 18, label %bb31 + ] + +bb75: ; preds = %bb54 + %tmp74.0 = add int %i.0.0, 1 ; <int> [#uses=1] + br label %cond_true78 + +cond_true78: ; preds = %bb75, %entry + %i.0.0 = phi int [ 0, %entry ], [ %tmp74.0, %bb75 ] ; <int> [#uses=2] + br label %bb54 +}