[LAA] Add clarifying comments for the checking pointer grouping algorithm. NFC
[oota-llvm.git] / test / Analysis / ScalarEvolution / 2008-08-04-LongAddRec.ll
1 ; RUN: opt < %s -analyze -scalar-evolution \
2 ; RUN:   -scalar-evolution-max-iterations=0 | FileCheck %s
3 ; PR2621
4
5 define i32 @a() nounwind  {
6 entry:
7         br label %bb1
8
9 bb:             ; preds = %bb1
10         add i16 %x17.0, 1               ; <i16>:0 [#uses=2]
11         add i16 %0, %x16.0              ; <i16>:1 [#uses=2]
12         add i16 %1, %x15.0              ; <i16>:2 [#uses=2]
13         add i16 %2, %x14.0              ; <i16>:3 [#uses=2]
14         add i16 %3, %x13.0              ; <i16>:4 [#uses=2]
15         add i16 %4, %x12.0              ; <i16>:5 [#uses=2]
16         add i16 %5, %x11.0              ; <i16>:6 [#uses=2]
17         add i16 %6, %x10.0              ; <i16>:7 [#uses=2]
18         add i16 %7, %x9.0               ; <i16>:8 [#uses=2]
19         add i16 %8, %x8.0               ; <i16>:9 [#uses=2]
20         add i16 %9, %x7.0               ; <i16>:10 [#uses=2]
21         add i16 %10, %x6.0              ; <i16>:11 [#uses=2]
22         add i16 %11, %x5.0              ; <i16>:12 [#uses=2]
23         add i16 %12, %x4.0              ; <i16>:13 [#uses=2]
24         add i16 %13, %x3.0              ; <i16>:14 [#uses=2]
25         add i16 %14, %x2.0              ; <i16>:15 [#uses=2]
26         add i16 %15, %x1.0              ; <i16>:16 [#uses=1]
27         add i32 %i.0, 1         ; <i32>:17 [#uses=1]
28         br label %bb1
29
30 bb1:            ; preds = %bb, %entry
31         %x2.0 = phi i16 [ 0, %entry ], [ %15, %bb ]             ; <i16> [#uses=1]
32         %x3.0 = phi i16 [ 0, %entry ], [ %14, %bb ]             ; <i16> [#uses=1]
33         %x4.0 = phi i16 [ 0, %entry ], [ %13, %bb ]             ; <i16> [#uses=1]
34         %x5.0 = phi i16 [ 0, %entry ], [ %12, %bb ]             ; <i16> [#uses=1]
35         %x6.0 = phi i16 [ 0, %entry ], [ %11, %bb ]             ; <i16> [#uses=1]
36         %x7.0 = phi i16 [ 0, %entry ], [ %10, %bb ]             ; <i16> [#uses=1]
37         %x8.0 = phi i16 [ 0, %entry ], [ %9, %bb ]              ; <i16> [#uses=1]
38         %x9.0 = phi i16 [ 0, %entry ], [ %8, %bb ]              ; <i16> [#uses=1]
39         %x10.0 = phi i16 [ 0, %entry ], [ %7, %bb ]             ; <i16> [#uses=1]
40         %x11.0 = phi i16 [ 0, %entry ], [ %6, %bb ]             ; <i16> [#uses=1]
41         %x12.0 = phi i16 [ 0, %entry ], [ %5, %bb ]             ; <i16> [#uses=1]
42         %x13.0 = phi i16 [ 0, %entry ], [ %4, %bb ]             ; <i16> [#uses=1]
43         %x14.0 = phi i16 [ 0, %entry ], [ %3, %bb ]             ; <i16> [#uses=1]
44         %x15.0 = phi i16 [ 0, %entry ], [ %2, %bb ]             ; <i16> [#uses=1]
45         %x16.0 = phi i16 [ 0, %entry ], [ %1, %bb ]             ; <i16> [#uses=1]
46         %x17.0 = phi i16 [ 0, %entry ], [ %0, %bb ]             ; <i16> [#uses=1]
47         %i.0 = phi i32 [ 0, %entry ], [ %17, %bb ]              ; <i32> [#uses=2]
48         %x1.0 = phi i16 [ 0, %entry ], [ %16, %bb ]             ; <i16> [#uses=2]
49         icmp ult i32 %i.0, 8888         ; <i1>:18 [#uses=1]
50         br i1 %18, label %bb, label %bb2
51
52 bb2:            ; preds = %bb1
53         zext i16 %x1.0 to i32           ; <i32>:19 [#uses=1]
54         ret i32 %19
55 }
56
57 ; CHECK: Exits: -19168
58