1 ; RUN: opt %loadPolly -polly-detect-unprofitable -polly-scops -polly-allow-nonaffine -analyze < %s | FileCheck %s
4 ; for (int i = 0; i < 128; i++)
5 ; for (int j = 0; j < 16; j++)
9 ; CHECK: ReadAccess := [Reduction Type: +] [Scalar: 0]
10 ; CHECK: { Stmt_bb7[i0, i1] -> MemRef_A[o0] : o0 <= 2046 and o0 >= 0 };
11 ; CHECK: MayWriteAccess := [Reduction Type: +] [Scalar: 0]
12 ; CHECK: { Stmt_bb7[i0, i1] -> MemRef_A[o0] : o0 <= 2046 and o0 >= 0 };
14 target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
16 define void @f(i32* %A) {
20 bb4: ; preds = %bb13, %bb
21 %indvars.iv1 = phi i64 [ %indvars.iv.next2, %bb13 ], [ 0, %bb ]
22 %exitcond3 = icmp ne i64 %indvars.iv1, 128
23 br i1 %exitcond3, label %bb5, label %bb14
28 bb6: ; preds = %bb11, %bb5
29 %indvars.iv = phi i64 [ %indvars.iv.next, %bb11 ], [ 0, %bb5 ]
30 %exitcond = icmp ne i64 %indvars.iv, 16
31 br i1 %exitcond, label %bb7, label %bb12
34 %tmp = mul nsw i64 %indvars.iv1, %indvars.iv
35 %tmp8 = getelementptr inbounds i32, i32* %A, i64 %tmp
36 %tmp9 = load i32* %tmp8, align 4
37 %tmp10 = add nsw i32 %tmp9, 1
38 store i32 %tmp10, i32* %tmp8, align 4
42 %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
49 %indvars.iv.next2 = add nuw nsw i64 %indvars.iv1, 1