Pirama Arumuga Nainar | f3ef533 | 2016-03-03 15:48:50 -0800 | [diff] [blame] | 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 | |