; RUN: opt %loadPolly -polly-process-unprofitable -polly-codegen -S < %s | FileCheck %s ; ; llvm.org/PR25412 ; %synthgep caused %gep to be synthesized in subregion_if which was reused for ; %retval in subregion_exit, even though it is not dominating subregion_exit. ; ; CHECK-LABEL: polly.stmt.polly.merge_new_and_old.exit: ; CHECK: %scevgep[[R1:[0-9]*]] = getelementptr %struct.hoge, %struct.hoge* %arg, i64 0, i32 2 ; CHECK: store double* %scevgep[[R1]], double** %gep.s2a ; CHECK: br label %struct.hoge = type { double, double, double } define double @func(%struct.hoge* %arg) { entry: br label %subregion_entry subregion_entry: %gep = getelementptr inbounds %struct.hoge, %struct.hoge* %arg, i64 0, i32 2 %cond = fcmp ogt double undef, undef br i1 %cond, label %subregion_if, label %subregion_exit subregion_if: %synthgep = load double, double* %gep br label %subregion_exit subregion_exit: %retval = load double, double* %gep ret double %retval }