Update Polly tests to handle explicitly typed gep changes in LLVM
[polly-mirror.git] / test / ScopInfo / independent-blocks-never-stop-on-big-scop.ll
blob8ca6a8adb30c14cd0e13a699fcd1178024403749
1 ; RUN: opt %loadPolly -polly-detect-unprofitable -polly-independent < %s
2 target 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-S128"
3 target triple = "x86_64-unknown-linux-gnu"
5 define i32 @main() nounwind uwtable readnone {
6   %arr = alloca [100 x i32], align 16
7   br label %1
9 ; <label>:1                                       ; preds = %1, %0
10   %indvars.iv3 = phi i64 [ 0, %0 ], [ %indvars.iv.next4, %1 ]
11   %2 = getelementptr inbounds [100 x i32], [100 x i32]* %arr, i64 0, i64 %indvars.iv3
12   %3 = trunc i64 %indvars.iv3 to i32
13   store i32 %3, i32* %2, align 4, !tbaa !0
14   %indvars.iv.next4 = add i64 %indvars.iv3, 1
15   %lftr.wideiv5 = trunc i64 %indvars.iv.next4 to i32
16   %exitcond6 = icmp eq i32 %lftr.wideiv5, 100
17   br i1 %exitcond6, label %.preheader, label %1
19 .preheader:                                       ; preds = %.preheader, %1
20   %indvars.iv = phi i64 [ %indvars.iv.next, %.preheader ], [ 0, %1 ]
21   %4 = getelementptr inbounds [100 x i32], [100 x i32]* %arr, i64 0, i64 %indvars.iv
22   %5 = load i32* %4, align 4, !tbaa !0
23   %6 = xor i32 %5, -1
24   %7 = shl i32 %5, 15
25   %8 = add nsw i32 %7, %6
26   %9 = ashr i32 %8, 12
27   %10 = xor i32 %9, %8
28   %11 = mul i32 %10, 9
29   %12 = ashr i32 %11, 4
30   %13 = xor i32 %12, %11
31   %14 = mul nsw i32 %13, 20571
32   %15 = ashr i32 %14, 16
33   %16 = xor i32 %15, %14
34   %17 = xor i32 %16, -1
35   %18 = shl i32 %16, 15
36   %19 = add nsw i32 %18, %17
37   %20 = ashr i32 %19, 12
38   %21 = xor i32 %20, %19
39   %22 = mul i32 %21, 5
40   %23 = ashr i32 %22, 4
41   %24 = xor i32 %23, %22
42   %25 = mul nsw i32 %24, 20576
43   %26 = ashr i32 %25, 16
44   %27 = xor i32 %26, %25
45   %28 = xor i32 %27, -1
46   %29 = shl i32 %27, 15
47   %30 = add nsw i32 %29, %28
48   %31 = ashr i32 %30, 12
49   %32 = xor i32 %31, %30
50   %33 = mul i32 %32, 5
51   %34 = ashr i32 %33, 4
52   %35 = xor i32 %34, %33
53   %36 = mul nsw i32 %35, 2057
54   %37 = ashr i32 %36, 16
55   %38 = xor i32 %37, %36
56   %39 = xor i32 %38, -1
57   %40 = shl i32 %38, 15
58   %41 = add nsw i32 %40, %39
59   %42 = ashr i32 %41, 12
60   %43 = xor i32 %42, %41
61   %44 = mul i32 %43, 5
62   %45 = ashr i32 %44, 4
63   %46 = xor i32 %45, %44
64   %47 = mul nsw i32 %46, 20572
65   %48 = ashr i32 %47, 16
66   %49 = xor i32 %48, %47
67   %50 = xor i32 %49, -1
68   %51 = shl i32 %49, 15
69   %52 = add nsw i32 %51, %50
70   %53 = ashr i32 %52, 12
71   %54 = xor i32 %53, %52
72   %55 = mul i32 %54, 5
73   %56 = ashr i32 %55, 4
74   %57 = xor i32 %56, %55
75   %58 = mul nsw i32 %57, 2051
76   %59 = ashr i32 %58, 16
77   %60 = xor i32 %59, %58
78   %61 = xor i32 %60, -1
79   %62 = shl i32 %60, 15
80   %63 = add nsw i32 %62, %61
81   %64 = ashr i32 %63, 12
82   %65 = xor i32 %64, %63
83   %66 = mul i32 %65, 5
84   %67 = ashr i32 %66, 4
85   %68 = xor i32 %67, %66
86   %69 = mul nsw i32 %68, 2057
87   %70 = ashr i32 %69, 16
88   %71 = xor i32 %70, %69
89   %72 = xor i32 %71, -1
90   %73 = shl i32 %71, 15
91   %74 = add nsw i32 %73, %72
92   %75 = ashr i32 %74, 12
93   %76 = xor i32 %75, %74
94   %77 = mul i32 %76, 5
95   %78 = ashr i32 %77, 4
96   %79 = xor i32 %78, %77
97   %80 = mul nsw i32 %79, 205
98   %81 = ashr i32 %80, 17
99   %82 = xor i32 %81, %80
100   %83 = xor i32 %82, -1
101   %84 = shl i32 %82, 15
102   %85 = add nsw i32 %84, %83
103   %86 = ashr i32 %85, 12
104   %87 = xor i32 %86, %85
105   %88 = mul i32 %87, 5
106   %89 = ashr i32 %88, 4
107   %90 = xor i32 %89, %88
108   %91 = mul nsw i32 %90, 2057
109   %92 = ashr i32 %91, 16
110   %93 = xor i32 %92, %91
111   %94 = xor i32 %93, -1
112   %95 = shl i32 %93, 15
113   %96 = add nsw i32 %95, %94
114   %97 = ashr i32 %96, 12
115   %98 = xor i32 %97, %96
116   %99 = mul i32 %98, 5
117   %100 = ashr i32 %99, 3
118   %101 = xor i32 %100, %99
119   %102 = mul nsw i32 %101, 20571
120   %103 = ashr i32 %102, 16
121   %104 = xor i32 %103, %102
122   %105 = xor i32 %104, -1
123   %106 = shl i32 %104, 15
124   %107 = add nsw i32 %106, %105
125   %108 = ashr i32 %107, 12
126   %109 = xor i32 %108, %107
127   %110 = mul i32 %109, 5
128   %111 = ashr i32 %110, 4
129   %112 = xor i32 %111, %110
130   %113 = mul nsw i32 %112, 2057
131   %114 = ashr i32 %113, 16
132   %115 = xor i32 %114, %113
133   %116 = xor i32 %115, -1
134   %117 = shl i32 %115, 15
135   %118 = add nsw i32 %117, %116
136   %119 = ashr i32 %118, 12
137   %120 = xor i32 %119, %118
138   %121 = mul i32 %120, 5
139   %122 = ashr i32 %121, 4
140   %123 = xor i32 %122, %121
141   %124 = mul nsw i32 %123, 20572
142   %125 = ashr i32 %124, 16
143   %126 = xor i32 %125, %124
144   %127 = xor i32 %126, -1
145   %128 = shl i32 %126, 15
146   %129 = add nsw i32 %128, %127
147   %130 = ashr i32 %129, 12
148   %131 = xor i32 %130, %129
149   %132 = mul i32 %131, 5
150   %133 = ashr i32 %132, 4
151   %134 = xor i32 %133, %132
152   %135 = mul nsw i32 %134, 2057
153   %136 = ashr i32 %135, 16
154   %137 = xor i32 %136, %135
155   %138 = xor i32 %137, -1
156   %139 = shl i32 %137, 15
157   %140 = add nsw i32 %139, %138
158   %141 = ashr i32 %140, 12
159   %142 = xor i32 %141, %140
160   %143 = mul i32 %142, 5
161   %144 = ashr i32 %143, 4
162   %145 = xor i32 %144, %143
163   %146 = mul nsw i32 %145, 2057
164   %147 = ashr i32 %146, 16
165   %148 = xor i32 %147, %146
166   %149 = xor i32 %148, -1
167   %150 = shl i32 %148, 15
168   %151 = add nsw i32 %150, %149
169   %152 = ashr i32 %151, 12
170   %153 = xor i32 %152, %151
171   %154 = mul i32 %153, 5
172   %155 = ashr i32 %154, 4
173   %156 = xor i32 %155, %154
174   %157 = mul nsw i32 %156, 2057
175   %158 = ashr i32 %157, 16
176   %159 = xor i32 %158, %157
177   %160 = xor i32 %159, -1
178   %161 = shl i32 %159, 15
179   %162 = add nsw i32 %161, %160
180   %163 = ashr i32 %162, 12
181   %164 = xor i32 %163, %162
182   %165 = mul i32 %164, 5
183   %166 = ashr i32 %165, 4
184   %167 = xor i32 %166, %165
185   %168 = mul nsw i32 %167, 2057
186   %169 = ashr i32 %168, 16
187   %170 = xor i32 %169, %168
188   store i32 %170, i32* %4, align 4, !tbaa !0
189   %indvars.iv.next = add i64 %indvars.iv, 1
190   %lftr.wideiv = trunc i64 %indvars.iv.next to i32
191   %exitcond = icmp eq i32 %lftr.wideiv, 100
192   br i1 %exitcond, label %171, label %.preheader
194 ; <label>:171                                     ; preds = %.preheader
195   ret i32 0
198 !0 = !{!"int", !1}
199 !1 = !{!"omnipotent char", !2}
200 !2 = !{!"Simple C/C++ TBAA", null}