46 lines · plain
1; RUN: opt %loadNPMPolly '-passes=polly<no-default-opts>' -verify-dom-info -disable-output < %s2 3; Verify that the DominatorTree is preserved correctly for the inserted4; %polly.stmt.exit.exit block, which serves as new exit block for the generated5; 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, ptr noalias nonnull %A) {9entry:10 br label %loop11 12loop:13 %i = phi i32 [0, %entry], [%i.inc, %loop.inc]14 %i.cmp = icmp slt i32 %i, %n15 br i1 %i.cmp, label %body, label %return16 17body:18 %skipcond = icmp slt i32 %i, 519 br i1 %skipcond, label %subregion.enter, label %subregion.skip20 21subregion.skip:22 br label %exit23 24subregion.enter:25 %sqr = mul i32 %i, %i26 %cond = icmp eq i32 %sqr, 027 store i32 %i, ptr %A28 br i1 %cond, label %subregion.true, label %subregion.false29 30subregion.true:31 br label %exit32 33subregion.false:34 br label %exit35 36exit:37 br label %loop.inc38 39loop.inc:40 %i.inc = add nuw nsw i32 %i, 141 br label %loop42 43return:44 ret void45}46