31 lines · plain
1; RUN: opt %loadNPMPolly '-passes=polly<no-default-opts>' -S < %s | FileCheck %s2;3; llvm.org/PR254394; The dominance of the generated non-affine subregion block was based on the5; scop's merge block, therefore resulted in an invalid DominanceTree.6; It resulted in some values as assumed to be unusable in the actual generated7; exit block. Here we check whether the value %escaping is taken from the8; generated block.9;10; CHECK-LABEL: polly.stmt.subregion_entry:11; CHECK: %p_escaping = select i1 undef, i32 undef, i32 undef12;13; CHECK-LABEL: polly.stmt.polly.merge_new_and_old.exit:14; CHECK: store i32 %p_escaping, ptr %escaping.s2a15 16define i32 @func() {17entry:18 br label %subregion_entry19 20subregion_entry:21 %escaping = select i1 undef, i32 undef, i32 undef22 %cond = or i1 undef, undef23 br i1 %cond, label %subregion_exit, label %subregion_if24 25subregion_if:26 br label %subregion_exit27 28subregion_exit:29 ret i32 %escaping30}31