blob: d068cceb232e0616ebe8c23268a6ccb9083bc711 [file] [log] [blame]
Tobias Grosserf4ee3712015-10-06 15:36:44 +00001; RUN: opt %loadPolly -polly-scops -analyze < %s | FileCheck %s
Johannes Doerfert883f8c12015-09-15 22:52:53 +00002;
Johannes Doerfert066dbf32016-03-01 13:06:28 +00003; CHECK: Invalid Context:
4; CHECK: [N] -> { : N >= 129 }
Johannes Doerfert883f8c12015-09-15 22:52:53 +00005;
6; void foo(float *A, long N) {
7; for (long i = 0; i < N; i++)
8; if ((signed char)i < 100)
9; A[i] += i;
10; }
11define void @foo(float* %A, i64 %N) {
12bb:
13 br label %bb1
14
15bb1: ; preds = %bb11, %bb
16 %i.0 = phi i64 [ 0, %bb ], [ %tmp12, %bb11 ]
17 %tmp = icmp slt i64 %i.0, %N
18 br i1 %tmp, label %bb2, label %bb13
19
20bb2: ; preds = %bb1
21 %tmp3 = trunc i64 %i.0 to i8
22 %tmp4 = icmp slt i8 %tmp3, 100
23 br i1 %tmp4, label %bb5, label %bb10
24
25bb5: ; preds = %bb2
26 %tmp6 = sitofp i64 %i.0 to float
27 %tmp7 = getelementptr inbounds float, float* %A, i64 %i.0
28 %tmp8 = load float, float* %tmp7, align 4
29 %tmp9 = fadd float %tmp8, %tmp6
30 store float %tmp9, float* %tmp7, align 4
31 br label %bb10
32
33bb10: ; preds = %bb5, %bb2
34 br label %bb11
35
36bb11: ; preds = %bb10
37 %tmp12 = add nuw nsw i64 %i.0, 1
38 br label %bb1
39
40bb13: ; preds = %bb1
41 ret void
42}