1; RUN: opt %loadPolly -polly-codegen -verify-dom-info -analyze < %s 2 3; Verify that the DominatorTree is preserved correctly for the inserted 4; %polly.stmt.exit.exit block, which serves as new exit block for the generated 5; subregion. In particulat, it must be dominated by %polly.stmt.subregion.enter, 6; the generated subregion's entry block. 7 8define void @func(i32 %n, i32* noalias nonnull %A) { 9entry: 10 br label %loop 11 12loop: 13 %i = phi i32 [0, %entry], [%i.inc, %loop.inc] 14 %i.cmp = icmp slt i32 %i, %n 15 br i1 %i.cmp, label %body, label %return 16 17body: 18 %skipcond = icmp slt i32 %i, 5 19 br i1 %skipcond, label %subregion.enter, label %subregion.skip 20 21subregion.skip: 22 br label %exit 23 24subregion.enter: 25 %sqr = mul i32 %i, %i 26 %cond = icmp eq i32 %sqr, 0 27 store i32 %i, i32* %A 28 br i1 %cond, label %subregion.true, label %subregion.false 29 30subregion.true: 31 br label %exit 32 33subregion.false: 34 br label %exit 35 36exit: 37 br label %loop.inc 38 39loop.inc: 40 %i.inc = add nuw nsw i32 %i, 1 41 br label %loop 42 43return: 44 ret void 45} 46