xref: /llvm-project/polly/test/CodeGen/20110226-Ignore-Dead-Code.ll (revision e1f056f692d869708c1898d9d65a69ac5584a0ed)
1; RUN: opt %loadNPMPolly -passes=polly-codegen < %s
2target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64"
3
4define void @main() nounwind {
5.split:
6  br label %0
7
8.loopexit.loopexit:                               ; preds = %.preheader.us
9  br label %.loopexit.simregexit
10
11.loopexit.simregexit:                             ; preds = %.loopexit.loopexit, %._crit_edge
12  br label %.loopexit
13
14.loopexit:                                        ; preds = %.loopexit.simregexit
15  %indvar.next16 = add i64 %indvar15, 1
16  %exitcond53 = icmp eq i64 %indvar.next16, 2048
17  br i1 %exitcond53, label %2, label %0
18
19; <label>:0                                       ; preds = %.loopexit, %.split
20  %indvar15 = phi i64 [ 0, %.split ], [ %indvar.next16, %.loopexit ]
21  br label %.simregentry
22
23.simregentry:                                     ; preds = %0
24  %indvar15.ph = phi i64 [ %indvar15, %0 ]
25  %tmp67 = add i64 %indvar15, 1
26  %i.06 = trunc i64 %tmp67 to i32
27  %tmp25 = add i64 undef, 1
28  %1 = icmp slt i32 %i.06, 2048
29  br i1 %1, label %.lr.ph.preheader, label %._crit_edge.simregexit
30
31.lr.ph.preheader:                                 ; preds = %.simregentry
32  br label %.lr.ph
33
34.lr.ph:                                           ; preds = %.lr.ph, %.lr.ph.preheader
35  %indvar33 = phi i64 [ %indvar.next34, %.lr.ph ], [ 0, %.lr.ph.preheader ]
36  %indvar.next34 = add i64 %indvar33, 1
37  %exitcond40 = icmp eq i64 %indvar.next34, 0
38  br i1 %exitcond40, label %._crit_edge.loopexit, label %.lr.ph
39
40._crit_edge.loopexit:                             ; preds = %.lr.ph
41  br label %._crit_edge.simregexit
42
43._crit_edge.simregexit:                           ; preds = %.simregentry, %._crit_edge.loopexit
44  br label %._crit_edge
45
46._crit_edge:                                      ; preds = %._crit_edge.simregexit
47  br i1 false, label %.loopexit.simregexit, label %.preheader.us.preheader
48
49.preheader.us.preheader:                          ; preds = %._crit_edge
50  br label %.preheader.us
51
52.preheader.us:                                    ; preds = %.preheader.us, %.preheader.us.preheader
53  %exitcond26.old = icmp eq i64 undef, %tmp25
54  br i1 false, label %.loopexit.loopexit, label %.preheader.us
55
56; <label>:2                                       ; preds = %.loopexit
57  ret void
58}
59