47 lines · plain
1; RUN: opt %loadNPMPolly '-passes=polly-custom<detect>' -polly-print-detect -disable-output < %s 2>&1 | FileCheck %s2;3; Check that we will recognize this SCoP.4;5; void f(int *A, long N) {6; int j = 0;7; while (N > j) {8; int x = A[0];9; int i = 1;10; do {11; A[x] = 42;12; A += x;13; } while (i++ < N);14; }15; }16;17; CHECK: Valid Region for Scop: bb1 => bb018;19target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"20 21define void @f(ptr %A, i64 %N) {22bb:23 br label %bb024 25bb0:26 %j = phi i64 [ %j.next, %bb1 ], [ 1, %bb ]27 %tmp = load i32, ptr %A, align 428 %exitcond0 = icmp sgt i64 %N, %j29 %j.next = add nuw nsw i64 %j, 130 br i1 %exitcond0, label %bb1, label %bb1331 32bb1: ; preds = %bb7, %bb033 %i = phi i64 [ %i.next, %bb1 ], [ 1, %bb0 ]34 %.0 = phi ptr [ %A, %bb0 ], [ %tmp12, %bb1 ]35 %tmp8 = sext i32 %tmp to i6436 %tmp9 = getelementptr inbounds i32, ptr %.0, i64 %tmp837 store i32 42, ptr %tmp9, align 438 %tmp11 = sext i32 %tmp to i6439 %tmp12 = getelementptr inbounds i32, ptr %.0, i64 %tmp1140 %i.next = add nuw nsw i64 %i, 141 %exitcond = icmp ne i64 %i, %N42 br i1 %exitcond, label %bb1, label %bb043 44bb13: ; preds = %bb145 ret void46}47