From 8de6d3e5105e2d4c0db899996606c7eb81a07e22 Mon Sep 17 00:00:00 2001 From: Hans Wennborg Date: Thu, 4 Dec 2014 22:19:25 +0000 Subject: [PATCH 1/1] Add some tests for SimplifyCFG's ConstantFoldTerminator(). NFC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@223395 91177308-0d34-0410-b5e6-96231b3b80d8 --- test/Transforms/SimplifyCFG/switch-to-br.ll | 64 +++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 test/Transforms/SimplifyCFG/switch-to-br.ll diff --git a/test/Transforms/SimplifyCFG/switch-to-br.ll b/test/Transforms/SimplifyCFG/switch-to-br.ll new file mode 100644 index 00000000000..01484cda98b --- /dev/null +++ b/test/Transforms/SimplifyCFG/switch-to-br.ll @@ -0,0 +1,64 @@ +; RUN: opt %s -simplifycfg -S | FileCheck %s + +declare i32 @f(i32) + +define i32 @basic(i32 %x) { +; CHECK-LABEL: @basic +; CHECK-LABEL: entry: +; CHECK-NEXT: call i32 @f(i32 0) +; CHECK-NEXT: ret i32 %0 + +entry: + switch i32 %x, label %default [ + i32 5, label %default + i32 6, label %default + i32 7, label %default + ] +default: + %0 = call i32 @f(i32 0) + ret i32 %0 +} + + +define i32 @constant() { +; CHECK-LABEL: @constant +; CHECK-LABEL: entry: +; CHECK-NEXT: call i32 @f(i32 1) +; CHECK-NEXT: ret i32 %0 + +entry: + switch i32 42, label %default [ + i32 41, label %default + i32 42, label %a + i32 43, label %b + ] +default: + %0 = call i32 @f(i32 0) + ret i32 %0 +a: + %1 = call i32 @f(i32 1) + ret i32 %1 +b: + %2 = call i32 @f(i32 2) + ret i32 %2 +} + + +define i32 @unreachable(i32 %x) { +; CHECK-LABEL: @unreachable +; CHECK-LABEL: entry: +; CHECK-NEXT: call i32 @f(i32 0) +; CHECK-NEXT: ret i32 %0 + +entry: + switch i32 %x, label %unreachable [ + i32 5, label %a + i32 6, label %a + i32 7, label %a + ] +unreachable: + unreachable +a: + %0 = call i32 @f(i32 0) + ret i32 %0 +} -- 2.34.1