58 lines · plain
1; RUN: opt %loadNPMPolly '-passes=polly-custom<deps>' -polly-print-deps -disable-output < %s | FileCheck %s2;3; CHECK: RAW dependences:4; CHECK-NEXT: [N] -> { Stmt_S1[i0] -> Stmt_S2[] : N >= 11 and 0 <= i0 <= 1023; Stmt_S0[] -> Stmt_S1[o0] : N >= 11 and 0 <= o0 <= 1023 }5; CHECK-NEXT: WAR dependences:6; CHECK-NEXT: [N] -> { Stmt_S1[i0] -> Stmt_S2[] : N >= 11 and 0 <= i0 <= 1023 }7; CHECK-NEXT: WAW dependences:8; CHECK-NEXT: [N] -> { Stmt_S1[i0] -> Stmt_S2[] : N >= 11 and 0 <= i0 <= 1023; Stmt_S0[] -> Stmt_S1[o0] : N >= 11 and 0 <= o0 <= 1023 }9; CHECK-NEXT: Reduction dependences:10; CHECK-NEXT: [N] -> { Stmt_S1[i0] -> Stmt_S1[1 + i0] : N >= 11 and 0 <= i0 <= 1022 }11;12; void f(int *sum, int N) {13; if (N >= 10) {14; S0: *sum = 0;15; for (int i = 0; i < 1024; i++)16; S1: *sum += i;17; S2: *sum = *sum * 3;18; }19; }20target datalayout = "e-m:e-p:32:32-i64:64-v128:64:128-n32-S64"21 22define void @f(ptr %sum, i32 %N) {23entry:24 br label %entry.125 26entry.1:27 %excond = icmp sgt i32 %N, 1028 br i1 %excond, label %S0, label %f.end29 30S0:31 store i32 0, ptr %sum, align 432 br label %for.cond33 34for.cond: ; preds = %for.inc, %S035 %i.0 = phi i32 [ 0, %S0 ], [ %inc, %for.inc ]36 %exitcond = icmp ne i32 %i.0, 102437 br i1 %exitcond, label %S1, label %S238 39S1: ; preds = %for.cond40 %tmp = load i32, ptr %sum, align 441 %add = add nsw i32 %tmp, %i.042 store i32 %add, ptr %sum, align 443 br label %for.inc44 45for.inc: ; preds = %S146 %inc = add nsw i32 %i.0, 147 br label %for.cond48 49S2: ; preds = %for.cond50 %tmp1 = load i32, ptr %sum, align 451 %mul = mul nsw i32 %tmp1, 352 store i32 %mul, ptr %sum, align 453 br label %f.end54 55f.end:56 ret void57}58