66 lines · plain
1; RUN: opt %loadNPMPolly '-passes=polly-custom<detect>' -polly-print-detect -disable-output -polly-invariant-load-hoisting=true < %s 2>&1 | FileCheck %s2;3; CHECK-NOT: Valid Region for Scop4;5; void foo(float A[], float B[], long *p) {6; for (long i = 0; i < 1024; i++)7; for (long j = 0; j < 1024; j++)8; if (B[i])9; A[i * (*p) + j] += i * j;10; }11;12target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"13 14define void @foo(ptr %A, ptr %B, ptr %p) {15bb:16 br label %bb217 18bb2: ; preds = %bb21, %bb19 %i.0 = phi i64 [ 0, %bb ], [ %tmp22, %bb21 ]20 %exitcond1 = icmp ne i64 %i.0, 102421 br i1 %exitcond1, label %bb3, label %bb2322 23bb3: ; preds = %bb224 br label %bb425 26bb4: ; preds = %bb18, %bb327 %j.0 = phi i64 [ 0, %bb3 ], [ %tmp19, %bb18 ]28 %exitcond = icmp ne i64 %j.0, 102429 br i1 %exitcond, label %bb5, label %bb2030 31bb5: ; preds = %bb432 %tmp = getelementptr inbounds float, ptr %B, i64 %i.033 %tmp6 = load float, ptr %tmp, align 434 %tmp7 = fcmp une float %tmp6, 0.000000e+0035 br i1 %tmp7, label %bb8, label %bb1736 37bb8: ; preds = %bb538 %tmp9 = mul nuw nsw i64 %i.0, %j.039 %tmp10 = sitofp i64 %tmp9 to float40 %tmp11 = load i64, ptr %p, align 841 %tmp12 = mul nsw i64 %i.0, %tmp1142 %tmp13 = add nsw i64 %tmp12, %j.043 %tmp14 = getelementptr inbounds float, ptr %A, i64 %tmp1344 %tmp15 = load float, ptr %tmp14, align 445 %tmp16 = fadd float %tmp15, %tmp1046 store float %tmp16, ptr %tmp14, align 447 br label %bb1748 49bb17: ; preds = %bb8, %bb550 br label %bb1851 52bb18: ; preds = %bb1753 %tmp19 = add nuw nsw i64 %j.0, 154 br label %bb455 56bb20: ; preds = %bb457 br label %bb2158 59bb21: ; preds = %bb2060 %tmp22 = add nuw nsw i64 %i.0, 161 br label %bb262 63bb23: ; preds = %bb264 ret void65}66