48 lines · plain
1; RUN: opt %loadNPMPolly '-passes=polly<no-default-opts>' -S < %s | FileCheck %s2;3; This caused an lnt crash at some point, just verify it will run through and4; produce the PHI node in the exit we are looking for.5;6; CHECK: %eps1.addr.0.s2a = alloca double7; CHECK-NOT: %eps1.addr.0.ph.s2a = alloca double8;9; CHECK-LABEL: polly.merge_new_and_old:10; CHECK: %eps1.addr.0.ph.merge = phi double [ %eps1.addr.0.ph.final_reload, %polly.exiting ], [ %eps1.addr.0.ph, %if.end.47.region_exiting ]11;12; CHECK-LABEL: polly.start:13; CHECK-NEXT: store double %eps1, ptr %eps1.s2a14;15; CHECK-LABEL: polly.exiting:16; CHECK-NEXT: %eps1.addr.0.ph.final_reload = load double, ptr %eps1.addr.0.s2a17;18define void @dbisect(ptr %c, ptr %b, double %eps1, ptr %eps2) {19entry:20 br label %entry.split21 22entry.split: ; preds = %entry23 store double 0.000000e+00, ptr %b, align 824 br i1 false, label %for.inc, label %for.end25 26if.end: ; preds = %if.then, %for.body27 %0 = load double, ptr %c, align 828 br label %for.inc29 30for.inc: ; preds = %if.then.36, %if.end31 br i1 false, label %if.end, label %for.cond.for.end_crit_edge32 33for.cond.for.end_crit_edge: ; preds = %for.inc34 br label %for.end35 36for.end: ; preds = %for.cond.for.end_crit_edge, %entry.split37 %cmp45 = fcmp ugt double %eps1, 0.000000e+0038 br i1 %cmp45, label %if.end.47, label %if.then.4639 40if.then.46: ; preds = %for.end41 %1 = load double, ptr %eps2, align 842 br label %if.end.4743 44if.end.47: ; preds = %if.then.46, %for.end45 %eps1.addr.0 = phi double [ %1, %if.then.46 ], [ %eps1, %for.end ]46 ret void47}48