Update Polly tests to handle explicitly typed gep changes in LLVM
[polly-mirror.git] / test / ScopInfo / reduction_escaping_intermediate.ll
blobcc08afed88fd80c96e50f9c791b3e952c35d5766
1 ; RUN: opt %loadPolly -polly-detect-unprofitable -basicaa -polly-scops -analyze < %s | FileCheck %s
3 ; void f(int N, int * restrict sums, int * restrict escape) {
4 ;   int i, j;
5 ;   for (i = 0; i < 1024; i++) {
6 ;     for (j = 0; j < 1024; j++) {
7 ;       sums[i] += 5;
8 ;       escape[N - i + j] = sums[i];
9 ;     }
10 ;   }
11 ; }
13 ; CHECK: Reduction Type: NONE
14 ; CHECK: sums
15 ; CHECK: Reduction Type: NONE
16 ; CHECK: sums
17 ; CHECK: Reduction Type: NONE
18 ; CHECK: escape
19 target datalayout = "e-m:e-p:32:32-i64:64-v128:64:128-n32-S64"
21 define void @f(i32 %N, i32* noalias %sums, i32* noalias %escape) {
22 entry:
23   br label %for.cond
25 for.cond:                                         ; preds = %for.inc7, %entry
26   %i.0 = phi i32 [ 0, %entry ], [ %inc8, %for.inc7 ]
27   %exitcond1 = icmp ne i32 %i.0, 1024
28   br i1 %exitcond1, label %for.body, label %for.end9
30 for.body:                                         ; preds = %for.cond
31   br label %for.cond1
33 for.cond1:                                        ; preds = %for.inc, %for.body
34   %j.0 = phi i32 [ 0, %for.body ], [ %inc, %for.inc ]
35   %exitcond = icmp ne i32 %j.0, 1024
36   br i1 %exitcond, label %for.body3, label %for.end
38 for.body3:                                        ; preds = %for.cond1
39   %arrayidx = getelementptr inbounds i32, i32* %sums, i32 %i.0
40   %tmp = load i32* %arrayidx, align 4
41   %add = add nsw i32 %tmp, 5
42   store i32 %add, i32* %arrayidx, align 4
43   %sub = sub nsw i32 %N, %i.0
44   %add5 = add nsw i32 %sub, %j.0
45   %arrayidx6 = getelementptr inbounds i32, i32* %escape, i32 %add5
46   store i32 %add, i32* %arrayidx6, align 4
47   br label %for.inc
49 for.inc:                                          ; preds = %for.body3
50   %inc = add nsw i32 %j.0, 1
51   br label %for.cond1
53 for.end:                                          ; preds = %for.cond1
54   br label %for.inc7
56 for.inc7:                                         ; preds = %for.end
57   %inc8 = add nsw i32 %i.0, 1
58   br label %for.cond
60 for.end9:                                         ; preds = %for.cond
61   ret void