Merging r260703:
[oota-llvm.git] / test / Transforms / SimplifyCFG / preserve-make-implicit-on-switch-to-br.ll
1 ; RUN: opt %s -simplifycfg -S | FileCheck %s
2
3 ; ConstantFoldTerminator function can convert SwitchInst with one case (and default) to
4 ; a conditional BranchInst. This test checks the converted BranchInst preserve the 
5 ; make.implicit metadata.
6
7 declare i32 @consume(i32*)
8 declare void @trap()
9
10 define i32 @copy-metadata(i32* %x) {
11
12 entry:
13   %x.int = ptrtoint i32* %x to i64
14   
15 ; CHECK: br i1 %cond, label %is_null, label %default, !make.implicit !0
16   switch i64 %x.int, label %default [
17     i64 0, label %is_null
18   ], !make.implicit !0
19   
20 default:
21   %0 = call i32 @consume(i32* %x)
22   ret i32 %0
23
24 is_null:
25   call void @trap()
26   unreachable
27 }
28
29 !0 = !{}
30