Bump version to 19.1.0-rc3
[llvm-project.git] / llvm / test / Transforms / SimplifyCFG / switch-profmd.ll
bloba5de5284d6691b5e87ee0d2359685715748732e4
1 ; RUN: opt -S -passes=simplifycfg -simplifycfg-require-and-preserve-domtree=1 < %s | FileCheck %s
3 declare i32 @f(i32 %val)
5 ; Check that eliminating cases with unreachable branches keeps
6 ; prof branch_weights metadata consistent with switch instruction.
7 define i32 @test_switch_to_unreachable(i32 %val) {
8 ; CHECK-LABEL: test_switch_to_unreachable
9 ; CHECK: switch
10 ; CHECK-NOT: i32 0, label %on0
11   switch i32 %val, label %otherwise [
12     i32 0, label %on0
13     i32 1, label %on1
14     i32 2, label %on2
15   ], !prof !{!"branch_weights", i32 99, i32 0, i32 1, i32 2}
16 ; CHECK: !prof ![[MD0:[0-9]+]]
18 otherwise:
19   %result = call i32 @f(i32 -1)
20   ret i32 %result
22 on0:
23   unreachable
24   ret i32 125
26 on1:
27   %result1 = call i32 @f(i32 -2)
28   ret i32 %result1
30 on2:
31   %result2 = call i32 @f(i32 -3)
32   ret i32 %result2
35 ; CHECK: ![[MD0]] = !{!"branch_weights", i32 99, i32 2, i32 1}