1; RUN: opt %loadPolly -polly-process-unprofitable -polly-scops -polly-invariant-load-hoisting=true -analyze < %s | FileCheck %s 2; 3; CHECK: Invariant Accesses: 4; CHECK-NEXT: ReadAccess := [Reduction Type: NONE] [Scalar: 0] 5; CHECK-NEXT: { Stmt_bb2[i0] -> MemRef_C[0] }; 6; 7; void f(int *A, int *C) { 8; for (int i = 0; i < 1024; i++) 9; if (*C) 10; A[i] = 0; 11; } 12; 13target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128" 14 15define void @f(i32* %A, i32* %C) { 16bb: 17 br label %bb1 18 19bb1: ; preds = %bb7, %bb 20 %indvars.iv = phi i64 [ %indvars.iv.next, %bb7 ], [ 0, %bb ] 21 %exitcond = icmp ne i64 %indvars.iv, 1024 22 br i1 %exitcond, label %bb2, label %bb8 23 24bb2: ; preds = %bb1 25 %tmp = load i32, i32* %C, align 4 26 %tmp3 = icmp eq i32 %tmp, 0 27 br i1 %tmp3, label %bb6, label %bb4 28 29bb4: ; preds = %bb2 30 %tmp5 = getelementptr inbounds i32, i32* %A, i64 %indvars.iv 31 store i32 0, i32* %tmp5, align 4 32 br label %bb6 33 34bb6: ; preds = %bb2, %bb4 35 br label %bb7 36 37bb7: ; preds = %bb6 38 %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 39 br label %bb1 40 41bb8: ; preds = %bb1 42 ret void 43} 44