| ; RUN: opt %loadPolly -polly-codegen -verify-dom-info -analyze < %s | 
 |  | 
 | ; Verify that the DominatorTree is preserved correctly for the inserted | 
 | ; %polly.stmt.exit.exit block, which serves as new exit block for the generated | 
 | ; subregion. In particulat, it must be dominated by %polly.stmt.subregion.enter, | 
 | ; the generated subregion's entry block. | 
 |  | 
 | define void @func(i32 %n, i32* noalias nonnull %A) { | 
 | entry: | 
 |   br label %loop | 
 |  | 
 | loop: | 
 |   %i = phi i32 [0, %entry], [%i.inc, %loop.inc] | 
 |   %i.cmp = icmp slt i32 %i, %n | 
 |   br i1 %i.cmp, label %body, label %return | 
 |  | 
 | body: | 
 |   %skipcond = icmp slt i32 %i, 5 | 
 |   br i1 %skipcond, label %subregion.enter, label %subregion.skip | 
 |  | 
 | subregion.skip: | 
 |   br label %exit | 
 |  | 
 | subregion.enter: | 
 |   %sqr = mul i32 %i, %i | 
 |   %cond = icmp eq i32 %sqr, 0 | 
 |   store i32 %i, i32* %A | 
 |   br i1 %cond, label %subregion.true, label %subregion.false | 
 |  | 
 | subregion.true: | 
 |   br label %exit | 
 |  | 
 | subregion.false: | 
 |   br label %exit | 
 |  | 
 | exit: | 
 |   br label %loop.inc | 
 |  | 
 | loop.inc: | 
 |   %i.inc = add nuw nsw i32 %i, 1 | 
 |   br label %loop | 
 |  | 
 | return: | 
 |   ret void | 
 | } |