blob: c677bde116f35918be28c5b758e39ce73f0e1766 [file] [log] [blame]
Stepan Dyatkovskiyaad9c3f2012-04-02 17:16:45 +00001; RUN: opt -loop-unswitch -disable-output -stats -info-output-file - < %s | FileCheck --check-prefix=STATS %s
2; RUN: opt -S -loop-unswitch -verify-loop-info -verify-dom-info %s | FileCheck %s
3
4; STATS: 1 loop-unswitch - Total number of instructions analyzed
5
6; CHECK: %0 = icmp eq i64 undef, 0
7; CHECK-NEXT: br i1 %0, label %"5", label %"4"
8
9; CHECK: "5": ; preds = %entry
10; CHECK-NEXT: br label %"5.split"
11
12; CHECK: "5.split": ; preds = %"5"
13; CHECK-NEXT: br label %"16"
14
15; CHECK: "16": ; preds = %"22", %"5.split"
16; CHECK-NEXT: indirectbr i8* undef, [label %"22", label %"33"]
17
18; CHECK: "22": ; preds = %"16"
19; CHECK-NEXT: br i1 %0, label %"16", label %"26"
20
21; CHECK: "26": ; preds = %"22"
22; CHECK-NEXT: unreachable
23
24define void @foo() {
25entry:
26 %0 = icmp eq i64 undef, 0
27 br i1 %0, label %"5", label %"4"
28
29"4": ; preds = %entry
30 unreachable
31
32"5": ; preds = %entry
33 br label %"16"
34
35"16": ; preds = %"22", %"5"
36 indirectbr i8* undef, [label %"22", label %"33"]
37
38"22": ; preds = %"16"
39 br i1 %0, label %"16", label %"26"
40
41"26": ; preds = %"22"
42 unreachable
43
44"33": ; preds = %"16"
45 unreachable
46}