diff options
-rw-r--r-- | test/Transforms/SimplifyCFG/UnreachableEliminate.ll | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/test/Transforms/SimplifyCFG/UnreachableEliminate.ll b/test/Transforms/SimplifyCFG/UnreachableEliminate.ll new file mode 100644 index 0000000000..09c41a90dc --- /dev/null +++ b/test/Transforms/SimplifyCFG/UnreachableEliminate.ll @@ -0,0 +1,29 @@ +; RUN: llvm-as < %s | opt -simplifycfg | llvm-dis | not grep unreachable + +void %test1(bool %C, bool* %BP) { + br bool %C, label %T, label %F +T: + store bool %C, bool* %BP ;; dead + unreachable +F: + ret void +} + +void %test2() { + invoke void %test2() to label %N unwind label %U +U: + unreachable +N: + ret void +} + +int %test3(int %v) { + switch int %v, label %default [ int 1, label %U + int 2, label %T] +default: + ret int 1 +U: + unreachable +T: + ret int 2 +} |