59 lines · plain
1; RUN: opt %loadNPMPolly -polly-stmt-granularity=bb '-passes=polly-custom<scops>' -polly-print-scops -disable-output < %s 2>&1 | FileCheck %s2;3; void g();4; int f(int *A) {5; int a0 = 0, a1 = 0, a2 = 0;6; for (int i = 0; i < 1000; i++) {7; a0 = 2 * i;8; // split9; A[0] = i;10; a1 = 2 * i;11; // split12; a2 = 2 * i;13; }14; g();15; return a1 + a2;16; }17;18; CHECK: Stmt_bb119; CHECK: MustWriteAccess := [Reduction Type: NONE] [Scalar: 1]20; CHECK: { Stmt_bb1[i0] -> MemRef_a_0[] };21; CHECK: Stmt_bb222; CHECK: MustWriteAccess := [Reduction Type: NONE] [Scalar: 1]23; CHECK: { Stmt_bb2[i0] -> MemRef_a_1[] };24; CHECK: Stmt_bb325; CHECK: MustWriteAccess := [Reduction Type: NONE] [Scalar: 1]26; CHECK: { Stmt_bb3[i0] -> MemRef_a_2[] };27 28target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"29 30define i32 @f(ptr %A) {31bb:32 br label %bb133 34bb1: ; preds = %bb3, %bb35 %i.0 = phi i32 [ 0, %bb ], [ %tmp4, %bb3 ]36 %a.0 = mul i32 %i.0, 237 br label %bb238 39bb2: ; preds = %bb140 %a.1 = mul i32 %i.0, 241 store i32 %i.0, ptr %A, align 442 br label %bb343 44bb3: ; preds = %bb245 %tmp = shl nsw i32 %i.0, 146 %tmp4 = add nuw nsw i32 %i.0, 147 %a.2 = mul i32 %i.0, 248 %exitcond = icmp ne i32 %i.0, 100049 br i1 %exitcond, label %bb1, label %bb550 51bb5: ; preds = %bb152 call void (...) @g() #253 %add = add i32 %a.0, %a.154 %add2 = add i32 %add, %a.255 ret i32 %add256}57 58declare void @g(...) #159