45 lines · plain
1; RUN: opt %loadNPMPolly '-passes=polly<no-default-opts>' -S < %s | FileCheck %s2 3define void @foo(ptr %A, i1 %cond0, i1 %cond1) {4entry:5 br label %loop6 7loop:8 %indvar = phi i64 [0, %entry], [%indvar.next, %backedge]9 %val0 = fadd float 1.0, 2.010 %val1 = fadd float 1.0, 2.011 %val2 = fadd float 1.0, 2.012 br i1 %cond0, label %branch1, label %backedge13 14; CHECK-LABEL: polly.stmt.loop:15; CHECK-NEXT: %p_val0 = fadd float 1.000000e+00, 2.000000e+0016; CHECK-NEXT: %p_val1 = fadd float 1.000000e+00, 2.000000e+0017; CHECK-NEXT: %p_val2 = fadd float 1.000000e+00, 2.000000e+0018; CHECK-NEXT: br i119 20branch1:21 br i1 %cond1, label %branch2, label %backedge22 23; CHECK-LABEL: polly.stmt.branch1:24; CHECK-NEXT: br i125 26branch2:27 br label %backedge28 29; CHECK-LABEL: polly.stmt.branch2:30; CHECK-NEXT: br label31 32; CHECK-LABEL: polly.stmt.backedge.exit:33; CHECK: %polly.merge = phi float [ %p_val0, %polly.stmt.loop ], [ %p_val1, %polly.stmt.branch1 ], [ %p_val2, %polly.stmt.branch2 ]34 35backedge:36 %merge = phi float [%val0, %loop], [%val1, %branch1], [%val2, %branch2]37 %indvar.next = add i64 %indvar, 138 store float %merge, ptr %A39 %cmp = icmp sle i64 %indvar.next, 10040 br i1 %cmp, label %loop, label %exit41 42exit:43 ret void44}45