blob: c92f0a2be3fc995c98f944d4e71b28946352d9a9 [file] [log] [blame]
Andrew Trickd9fc1ce2012-04-10 05:14:42 +00001; RUN: opt < %s -S -loop-unswitch -verify-loop-info -verify-dom-info | FileCheck %s
2; PR12343: -loop-unswitch crash on indirect branch
Stepan Dyatkovskiyaad9c3f2012-04-02 17:16:45 +00003
4; CHECK: %0 = icmp eq i64 undef, 0
5; CHECK-NEXT: br i1 %0, label %"5", label %"4"
6
7; CHECK: "5": ; preds = %entry
Stepan Dyatkovskiyaad9c3f2012-04-02 17:16:45 +00008; CHECK-NEXT: br label %"16"
9
Andrew Trickd9fc1ce2012-04-10 05:14:42 +000010; CHECK: "16": ; preds = %"22", %"5"
Stepan Dyatkovskiyaad9c3f2012-04-02 17:16:45 +000011; CHECK-NEXT: indirectbr i8* undef, [label %"22", label %"33"]
12
13; CHECK: "22": ; preds = %"16"
14; CHECK-NEXT: br i1 %0, label %"16", label %"26"
15
16; CHECK: "26": ; preds = %"22"
17; CHECK-NEXT: unreachable
18
19define void @foo() {
20entry:
21 %0 = icmp eq i64 undef, 0
22 br i1 %0, label %"5", label %"4"
23
24"4": ; preds = %entry
25 unreachable
26
27"5": ; preds = %entry
28 br label %"16"
29
30"16": ; preds = %"22", %"5"
31 indirectbr i8* undef, [label %"22", label %"33"]
32
33"22": ; preds = %"16"
34 br i1 %0, label %"16", label %"26"
35
36"26": ; preds = %"22"
37 unreachable
38
39"33": ; preds = %"16"
40 unreachable
41}