1; RUN: llc -verify-loop-info -verify-dom-info -march=x86-64 < %s
2; PR5243
3
4@.str96 = external constant [37 x i8], align 8    ; <[37 x i8]*> [#uses=1]
5
6define void @foo() nounwind {
7bb:
8  br label %ybb1
9
10ybb1:                                              ; preds = %yybb13, %xbb6, %bb
11  switch i32 undef, label %bb18 [
12    i32 150, label %ybb2
13    i32 151, label %bb17
14    i32 152, label %bb19
15    i32 157, label %ybb8
16  ]
17
18ybb2:                                              ; preds = %ybb1
19  %tmp = icmp eq i8** undef, null                 ; <i1> [#uses=1]
20  br i1 %tmp, label %bb3, label %xbb6
21
22bb3:                                              ; preds = %ybb2
23  unreachable
24
25xbb4:                                              ; preds = %xbb6
26  store i32 0, i32* undef, align 8
27  br i1 undef, label %xbb6, label %bb5
28
29bb5:                                              ; preds = %xbb4
30  call fastcc void @decl_mode_check_failed() nounwind
31  unreachable
32
33xbb6:                                              ; preds = %xbb4, %ybb2
34  %tmp7 = icmp slt i32 undef, 0                   ; <i1> [#uses=1]
35  br i1 %tmp7, label %xbb4, label %ybb1
36
37ybb8:                                              ; preds = %ybb1
38  %tmp9 = icmp eq i8** undef, null                ; <i1> [#uses=1]
39  br i1 %tmp9, label %bb10, label %ybb12
40
41bb10:                                             ; preds = %ybb8
42  %tmp11 = load i8*, i8** undef, align 8               ; <i8*> [#uses=1]
43  call void (i8*, ...) @fatal(i8* getelementptr inbounds ([37 x i8], [37 x i8]* @.str96, i64 0, i64 0), i8* %tmp11) nounwind
44  unreachable
45
46ybb12:                                             ; preds = %ybb8
47  br i1 undef, label %bb15, label %ybb13
48
49ybb13:                                             ; preds = %ybb12
50  %tmp14 = icmp sgt i32 undef, 0                  ; <i1> [#uses=1]
51  br i1 %tmp14, label %bb16, label %ybb1
52
53bb15:                                             ; preds = %ybb12
54  call void (i8*, ...) @fatal(i8* getelementptr inbounds ([37 x i8], [37 x i8]* @.str96, i64 0, i64 0), i8* undef) nounwind
55  unreachable
56
57bb16:                                             ; preds = %ybb13
58  unreachable
59
60bb17:                                             ; preds = %ybb1
61  unreachable
62
63bb18:                                             ; preds = %ybb1
64  unreachable
65
66bb19:                                             ; preds = %ybb1
67  unreachable
68}
69
70declare void @fatal(i8*, ...)
71
72declare fastcc void @decl_mode_check_failed() nounwind
73