[MIParser] Set RegClassOrRegBank during instruction parsing
[llvm-complete.git] / test / Transforms / SCCP / switch-constantfold-crash.ll
blob7596a56b81229c427da39f6ec97e32e4468911d5
1 ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
2 ; RUN: opt -ipsccp < %s -S | FileCheck %s
3 ; RUN: opt -passes=ipsccp < %s -S | FileCheck %s
5 define void @barney() {
6 ; CHECK-LABEL: @barney(
7 ; CHECK-NEXT:  bb:
8 ; CHECK-NEXT:    br label %bb9
9 ; CHECK:       bb6:
10 ; CHECK-NEXT:    unreachable
11 ; CHECK:       bb9:
12 ; CHECK-NEXT:    unreachable
14 bb:
15   br label %bb9
17 bb6:                                              ; preds = %bb9
18   unreachable
20 bb7:                                              ; preds = %bb9
21   unreachable
23 bb9:                                              ; preds = %bb
24   switch i16 0, label %bb6 [
25   i16 61, label %bb7
26   ]
29 define void @blam() {
30 ; CHECK-LABEL: @blam(
31 ; CHECK-NEXT:  bb:
32 ; CHECK-NEXT:    br label %bb16
33 ; CHECK:       bb16:
34 ; CHECK-NEXT:    br label %bb38
35 ; CHECK:       bb38:
36 ; CHECK-NEXT:    unreachable
38 bb:
39   br label %bb16
41 bb16:                                             ; preds = %bb
42   switch i32 0, label %bb38 [
43   i32 66, label %bb17
44   i32 63, label %bb18
45   i32 86, label %bb19
46   ]
48 bb17:                                             ; preds = %bb16
49   unreachable
51 bb18:                                             ; preds = %bb16
52   unreachable
54 bb19:                                             ; preds = %bb16
55   unreachable
57 bb38:                                             ; preds = %bb16
58   unreachable
62 define void @hoge() {
63 ; CHECK-LABEL: @hoge(
64 ; CHECK-NEXT:  bb:
65 ; CHECK-NEXT:    br label %bb2
66 ; CHECK:       bb2:
67 ; CHECK-NEXT:    unreachable
68 ; CHECK:       bb3:
69 ; CHECK-NEXT:    unreachable
71 bb:
72   switch i16 undef, label %bb1 [
73   i16 135, label %bb2
74   i16 66, label %bb2
75   ]
77 bb1:                                              ; preds = %bb
78   ret void
80 bb2:                                              ; preds = %bb, %bb
81   switch i16 0, label %bb3 [
82   i16 61, label %bb4
83   i16 54, label %bb4
84   i16 49, label %bb4
85   ]
87 bb3:                                              ; preds = %bb2
88   unreachable
90 bb4:                                              ; preds = %bb2, %bb2, %bb2
91   unreachable