Run DCE after a LoopFlatten test to reduce spurious output [nfc]
[llvm-project.git] / llvm / test / Analysis / ScalarEvolution / 2008-08-04-LongAddRec.ll
blobb2e378bba9a4541a48ba6119b64ccaf1e555b3b5
1 ; RUN: opt < %s -disable-output "-passes=print<scalar-evolution>" -scalar-evolution-max-iterations=0 2>&1 | FileCheck %s
2 ; PR2621
4 define i32 @a() nounwind  {
5 entry:
6         br label %bb1
8 bb:             ; preds = %bb1
9         add i16 %x17.0, 1               ; <i16>:0 [#uses=2]
10         add i16 %0, %x16.0              ; <i16>:1 [#uses=2]
11         add i16 %1, %x15.0              ; <i16>:2 [#uses=2]
12         add i16 %2, %x14.0              ; <i16>:3 [#uses=2]
13         add i16 %3, %x13.0              ; <i16>:4 [#uses=2]
14         add i16 %4, %x12.0              ; <i16>:5 [#uses=2]
15         add i16 %5, %x11.0              ; <i16>:6 [#uses=2]
16         add i16 %6, %x10.0              ; <i16>:7 [#uses=2]
17         add i16 %7, %x9.0               ; <i16>:8 [#uses=2]
18         add i16 %8, %x8.0               ; <i16>:9 [#uses=2]
19         add i16 %9, %x7.0               ; <i16>:10 [#uses=2]
20         add i16 %10, %x6.0              ; <i16>:11 [#uses=2]
21         add i16 %11, %x5.0              ; <i16>:12 [#uses=2]
22         add i16 %12, %x4.0              ; <i16>:13 [#uses=2]
23         add i16 %13, %x3.0              ; <i16>:14 [#uses=2]
24         add i16 %14, %x2.0              ; <i16>:15 [#uses=2]
25         add i16 %15, %x1.0              ; <i16>:16 [#uses=1]
26         add i32 %i.0, 1         ; <i32>:17 [#uses=1]
27         br label %bb1
29 bb1:            ; preds = %bb, %entry
30         %x2.0 = phi i16 [ 0, %entry ], [ %15, %bb ]             ; <i16> [#uses=1]
31         %x3.0 = phi i16 [ 0, %entry ], [ %14, %bb ]             ; <i16> [#uses=1]
32         %x4.0 = phi i16 [ 0, %entry ], [ %13, %bb ]             ; <i16> [#uses=1]
33         %x5.0 = phi i16 [ 0, %entry ], [ %12, %bb ]             ; <i16> [#uses=1]
34         %x6.0 = phi i16 [ 0, %entry ], [ %11, %bb ]             ; <i16> [#uses=1]
35         %x7.0 = phi i16 [ 0, %entry ], [ %10, %bb ]             ; <i16> [#uses=1]
36         %x8.0 = phi i16 [ 0, %entry ], [ %9, %bb ]              ; <i16> [#uses=1]
37         %x9.0 = phi i16 [ 0, %entry ], [ %8, %bb ]              ; <i16> [#uses=1]
38         %x10.0 = phi i16 [ 0, %entry ], [ %7, %bb ]             ; <i16> [#uses=1]
39         %x11.0 = phi i16 [ 0, %entry ], [ %6, %bb ]             ; <i16> [#uses=1]
40         %x12.0 = phi i16 [ 0, %entry ], [ %5, %bb ]             ; <i16> [#uses=1]
41         %x13.0 = phi i16 [ 0, %entry ], [ %4, %bb ]             ; <i16> [#uses=1]
42         %x14.0 = phi i16 [ 0, %entry ], [ %3, %bb ]             ; <i16> [#uses=1]
43         %x15.0 = phi i16 [ 0, %entry ], [ %2, %bb ]             ; <i16> [#uses=1]
44         %x16.0 = phi i16 [ 0, %entry ], [ %1, %bb ]             ; <i16> [#uses=1]
45         %x17.0 = phi i16 [ 0, %entry ], [ %0, %bb ]             ; <i16> [#uses=1]
46         %i.0 = phi i32 [ 0, %entry ], [ %17, %bb ]              ; <i32> [#uses=2]
47         %x1.0 = phi i16 [ 0, %entry ], [ %16, %bb ]             ; <i16> [#uses=2]
48         icmp ult i32 %i.0, 8888         ; <i1>:18 [#uses=1]
49         br i1 %18, label %bb, label %bb2
51 bb2:            ; preds = %bb1
52         zext i16 %x1.0 to i32           ; <i32>:19 [#uses=1]
53         ret i32 %19
56 ; CHECK: Exits: -19168