xref: /llvm-project/polly/test/CodeGen/phi_with_one_exit_edge.ll (revision e1f056f692d869708c1898d9d65a69ac5584a0ed)
1; RUN: opt %loadNPMPolly -passes=polly-codegen -S < %s | FileCheck %s
2;
3;
4; CHECK: polly.merge_new_and_old:
5; CHECK:   %sumA.merge = phi float [ %sumA.final_reload, %polly.exiting ], [ %sumA, %loopA ]
6; CHECK:   br label %next
7;
8; CHECK: next:
9; CHECK:   %result = phi float [ %sumA.merge, %polly.merge_new_and_old ]
10; CHECK:   ret float %result
11;
12define float @foo(ptr %A, i64 %param) {
13entry:
14  br label %entry.split
15
16entry.split:
17  br label %loopA
18
19loopA:
20  %indvarA = phi i64 [0, %entry.split], [%indvar.nextA, %loopA]
21  %indvar.nextA = add i64 %indvarA, 1
22  %valA = load float, ptr %A
23  %sumA = fadd float %valA, %valA
24  store float %valA, ptr %A
25  %cndA = icmp eq i64 %indvar.nextA, 100
26  br i1 %cndA, label %next, label %loopA
27
28next:
29  %result = phi float [%sumA, %loopA]
30  ret float %result
31
32}
33