xref: /llvm-project/llvm/test/Transforms/SimplifyCFG/merge-default.ll (revision 07b9d231ff9baa6473b0dd588a3ce5330d3e4871)
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
2; RUN: opt -passes=simplifycfg -simplifycfg-require-and-preserve-domtree=1 -S < %s | FileCheck %s
3
4target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
5target triple = "x86_64-unknown-linux-gnu"
6
7declare void @g()
8declare void @f()
9
10define void @foo(i32 %Kind) {
11; CHECK-LABEL: @foo(
12; CHECK-NEXT:  entry:
13; CHECK-NEXT:    switch i32 [[KIND:%.*]], label [[SW_EPILOG:%.*]] [
14; CHECK-NEXT:      i32 15, label [[SW_BB2:%.*]]
15; CHECK-NEXT:      i32 2, label [[SW_BB:%.*]]
16; CHECK-NEXT:    ]
17; CHECK:       sw.bb:
18; CHECK-NEXT:    call void @g()
19; CHECK-NEXT:    call void @g()
20; CHECK-NEXT:    br label [[SW_EPILOG]]
21; CHECK:       sw.bb2:
22; CHECK-NEXT:    call void @f()
23; CHECK-NEXT:    br label [[SW_EPILOG]]
24; CHECK:       sw.epilog:
25; CHECK-NEXT:    ret void
26;
27
28entry:
29  switch i32 %Kind, label %sw.epilog [
30  i32 1, label %sw.epilog
31  i32 2, label %sw.bb
32  i32 15, label %sw.bb2
33  ]
34
35sw.bb:
36  call void @g()
37  call void @g()
38  br label %sw.epilog
39
40sw.bb2:
41  call void @f()
42  br label %sw.epilog
43
44sw.epilog:
45  ret void
46}
47