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 6 define void @foo() nounwind { 7 bb: 8 br label %ybb1 9 10 ybb1: ; 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 18 ybb2: ; preds = %ybb1 19 %tmp = icmp eq i8** undef, null ; <i1> [#uses=1] 20 br i1 %tmp, label %bb3, label %xbb6 21 22 bb3: ; preds = %ybb2 23 unreachable 24 25 xbb4: ; preds = %xbb6 26 store i32 0, i32* undef, align 8 27 br i1 undef, label %xbb6, label %bb5 28 29 bb5: ; preds = %xbb4 30 call fastcc void @decl_mode_check_failed() nounwind 31 unreachable 32 33 xbb6: ; preds = %xbb4, %ybb2 34 %tmp7 = icmp slt i32 undef, 0 ; <i1> [#uses=1] 35 br i1 %tmp7, label %xbb4, label %ybb1 36 37 ybb8: ; preds = %ybb1 38 %tmp9 = icmp eq i8** undef, null ; <i1> [#uses=1] 39 br i1 %tmp9, label %bb10, label %ybb12 40 41 bb10: ; 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 46 ybb12: ; preds = %ybb8 47 br i1 undef, label %bb15, label %ybb13 48 49 ybb13: ; preds = %ybb12 50 %tmp14 = icmp sgt i32 undef, 0 ; <i1> [#uses=1] 51 br i1 %tmp14, label %bb16, label %ybb1 52 53 bb15: ; 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 57 bb16: ; preds = %ybb13 58 unreachable 59 60 bb17: ; preds = %ybb1 61 unreachable 62 63 bb18: ; preds = %ybb1 64 unreachable 65 66 bb19: ; preds = %ybb1 67 unreachable 68 } 69 70 declare void @fatal(i8*, ...) 71 72 declare fastcc void @decl_mode_check_failed() nounwind 73