54 lines · plain
1; RUN: opt %loadNPMPolly '-passes=polly-custom<scops>' -polly-print-detect -polly-print-scops -disable-output < %s 2>&1 | FileCheck %s2;3; Check that we do not create a SCoP if there is no statement executed.4;5; CHECK-NOT: Context6;7; void jd(int *A, int *B) {8; for (int i = 0; i < 1024; i++)9; for (int j = i; j < 0; j++)10; A[i] = B[i];11; }12;13target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"14 15define void @jd(ptr %A, ptr %B) {16entry:17 br label %for.cond18 19for.cond: ; preds = %for.inc6, %entry20 %indvars.iv = phi i64 [ %indvars.iv.next, %for.inc6 ], [ 0, %entry ]21 %exitcond = icmp ne i64 %indvars.iv, 102422 br i1 %exitcond, label %for.body, label %for.end823 24for.body: ; preds = %for.cond25 %tmp = trunc i64 %indvars.iv to i3226 br label %for.cond127 28for.cond1: ; preds = %for.inc, %for.body29 %j.0 = phi i32 [ %tmp, %for.body ], [ %inc, %for.inc ]30 %cmp2 = icmp slt i32 %j.0, 031 br i1 %cmp2, label %for.body3, label %for.end32 33for.body3: ; preds = %for.cond134 %arrayidx = getelementptr inbounds i32, ptr %B, i64 %indvars.iv35 %tmp1 = load i32, ptr %arrayidx, align 436 %arrayidx5 = getelementptr inbounds i32, ptr %A, i64 %indvars.iv37 store i32 %tmp1, ptr %arrayidx5, align 438 br label %for.inc39 40for.inc: ; preds = %for.body341 %inc = add nsw i32 %j.0, 142 br label %for.cond143 44for.end: ; preds = %for.cond145 br label %for.inc646 47for.inc6: ; preds = %for.end48 %indvars.iv.next = add nuw nsw i64 %indvars.iv, 149 br label %for.cond50 51for.end8: ; preds = %for.cond52 ret void53}54