xref: /llvm-project/llvm/test/CodeGen/PowerPC/unreachable-mbb-jtreference-elimination.ll (revision 732f63d96dc5b2cc5a5ad4e1db16bb3b4297fa24)
1; RUN: llc -O2 --verify-machineinstrs -stop-before=livevars -ppc-min-jump-table-entries=4 \
2; RUN:   -mtriple=powerpc64le-unknown-unknown < %s | FileCheck %s
3
4define dso_local void @foo() #0 {
5; CHECK-LABEL: fixedStack:
6; CHECK-NEXT:  stack: []
7; CHECK-NEXT:  entry_values: []
8; CHECK-NEXT:  callSites: []
9; CHECK-NEXT:  debugValueSubstitutions: []
10; CHECK-NEXT:  constants: []
11; CHECK-NEXT:  machineFunctionInfo: {}
12; CHECK-NEXT:  jumpTable:
13; CHECK-NEXT:    kind:            label-difference32
14; CHECK-NEXT:    entries:
15; CHECK-NEXT:      - id:              0
16; CHECK-NEXT:        blocks:          [  ]
17; CHECK-NEXT:  body:             |
18; CHECK-NEXT:    bb.0.entry:
19; CHECK-NEXT:      successors: %bb.1(0x80000000)
20; CHECK:           B %bb.1
21; CHECK:         bb.1.next11:
22; CHECK-NEXT:      successors: %bb.2(0x80000000)
23; CHECK:           B %bb.2
24; CHECK:         bb.2.if.end139:
25entry:
26  br label %next11
27next11:                                           ; preds = %entry
28  br i1 false, label %if.then12, label %if.end139
29if.then12:                                        ; preds = %next11
30  br label %for.cond14
31for.cond14:                                       ; preds = %if.then12
32  switch i32 undef, label %sw.epilog [
33    i32 1, label %sw.bb
34    i32 4, label %sw.bb
35    i32 6, label %sw.bb
36    i32 7, label %sw.bb
37    i32 9, label %sw.bb
38    i32 12, label %sw.bb
39    i32 15, label %sw.bb
40    i32 16, label %sw.bb
41    i32 24, label %sw.bb
42    i32 0, label %sw.bb26
43    i32 2, label %sw.bb26
44    i32 3, label %sw.bb26
45    i32 8, label %sw.bb26
46    i32 10, label %sw.bb26
47    i32 11, label %sw.bb26
48    i32 13, label %sw.bb26
49    i32 17, label %sw.bb26
50    i32 18, label %sw.bb26
51    i32 20, label %sw.bb26
52    i32 19, label %sw.bb26
53    i32 21, label %sw.bb26
54    i32 22, label %sw.bb26
55    i32 23, label %sw.bb26
56    i32 25, label %sw.bb26
57    i32 27, label %sw.bb26
58    i32 28, label %sw.bb26
59    i32 26, label %sw.bb37
60    i32 29, label %sw.bb37
61    i32 30, label %sw.bb53
62  ]
63
64sw.bb:                                            ; preds = %for.cond14
65  unreachable
66sw.bb26:                                          ; preds = %for.cond14
67  unreachable
68sw.bb37:                                          ; preds = %for.cond14
69  unreachable
70sw.bb53:                                          ; preds = %for.cond14
71  unreachable
72sw.epilog:                                        ; preds = %for.cond14
73  unreachable
74if.end139:                                        ; preds = %next11
75  unreachable
76}
77attributes #0 = { noinline optnone }
78