; RUN: opt < %s -instcombine -S | FileCheck %s ; CHECK: no_crash define float @no_crash(float %a) nounwind { entry: br label %for.body for.body: %sum.057 = phi float [ 0.000000e+00, %entry ], [ %add5, %bb0 ] %add5 = fadd float %sum.057, %a ; PR14592 br i1 undef, label %bb0, label %end bb0: br label %for.body end: ret float %add5 } ; CHECK: fold_phi define float @fold_phi(float %a) nounwind { entry: br label %for.body for.body: ; CHECK: phi float ; CHECK-NEXT: br i1 undef %sum.057 = phi float [ 0.000000e+00, %entry ], [ %add5, %bb0 ] %add5 = fadd float %sum.057, 1.0 ;; Should be moved to the latch! br i1 undef, label %bb0, label %end ; CHECK: bb0: bb0: ; CHECK: fadd float br label %for.body end: ret float %add5 }