31 lines · plain
1; RUN: opt %loadNPMPolly -polly-process-unprofitable '-passes=polly<no-default-opts>' -S < %s | FileCheck %s2;3; llvm.org/PR254124; %synthgep caused %gep to be synthesized in subregion_if which was reused for5; %retval in subregion_exit, even though it is not dominating subregion_exit.6;7; CHECK-LABEL: polly.stmt.polly.merge_new_and_old.exit:8; CHECK: %scevgep[[R1:[0-9]*]] = getelementptr i8, ptr %arg, i64 169; CHECK: store ptr %scevgep[[R1]], ptr %gep.s2a10; CHECK: br label11 12%struct.hoge = type { double, double, double }13 14define double @func(ptr %arg) {15entry:16 br label %subregion_entry17 18subregion_entry:19 %gep = getelementptr inbounds %struct.hoge, ptr %arg, i64 0, i32 220 %cond = fcmp ogt double undef, undef21 br i1 %cond, label %subregion_if, label %subregion_exit22 23subregion_if:24 %synthgep = load double, ptr %gep25 br label %subregion_exit26 27subregion_exit:28 %retval = load double, ptr %gep29 ret double %retval30}31