; RUN: opt %loadPolly -polly-detect -polly-scops -analyze \
; RUN:                -polly-allow-nonaffine-loops < %s | FileCheck %s

; The BasicBlock "guaranteed" is always executed inside the non-affine subregion
; region_entry->region_exit. As such, writes accesses in blocks that always
; execute are MustWriteAccesses. Before Polly commit r255473, we only assumed
; that the subregion's entry block is guaranteed to execute.

; CHECK-NOT: MayWriteAccess
; CHECK:      MustWriteAccess :=  [Reduction Type: NONE] [Scalar: 0]
; CHECK-NEXT:     { Stmt_region_entry__TO__region_exit[i0] -> MemRef_A[0] };
; CHECK-NOT: MayWriteAccess

define void @f(i32* %A, i32* %B, i32* %C, float %b) {
entry:
  br label %for.cond

for.cond:
  %indvar = phi i32 [ %indvar.next, %for.inc ], [ 0, %entry ]
  %exitcond = icmp ne i32 %indvar, 1024
  br i1 %exitcond, label %region_entry, label %return

region_entry:
  br label %bb2

bb2:
  br label %guaranteed

bb3:
  br label %bb3

guaranteed:
  %ptr = getelementptr i32, i32* %B, i32 %indvar
  %val = load i32, i32* %ptr
  %cmp = icmp eq i32 %val, 0
  store i32 0, i32* %A
  br i1 %cmp, label %bb5, label %bb6

bb5:
  br label %region_exit

bb6:
  %ptr2 = getelementptr i32, i32* %C, i32 %indvar
  %val2 = load i32, i32* %ptr2
  %cmp2 = icmp eq i32 %val2, 0
  br i1 %cmp2, label %region_exit, label %region_entry

region_exit:
  br label %for.inc

for.inc:
  %indvar.next = add i32 %indvar, 1
  br label %for.cond

return:
  ret void
}
