forked from OSchip/llvm-project
33 lines
801 B
LLVM
33 lines
801 B
LLVM
; RUN: opt %loadPolly -polly-codegen -S < %s | FileCheck %s
|
|
;
|
|
;
|
|
; CHECK: polly.merge_new_and_old:
|
|
; CHECK: %sumA.merge = phi float [ %sumA.final_reload, %polly.exiting ], [ %sumA, %loopA ]
|
|
; CHECK: br label %next
|
|
;
|
|
; CHECK: next:
|
|
; CHECK: %result = phi float [ %sumA.merge, %polly.merge_new_and_old ]
|
|
; CHECK: ret float %result
|
|
;
|
|
define float @foo(float* %A, i64 %param) {
|
|
entry:
|
|
br label %entry.split
|
|
|
|
entry.split:
|
|
br label %loopA
|
|
|
|
loopA:
|
|
%indvarA = phi i64 [0, %entry.split], [%indvar.nextA, %loopA]
|
|
%indvar.nextA = add i64 %indvarA, 1
|
|
%valA = load float, float* %A
|
|
%sumA = fadd float %valA, %valA
|
|
store float %valA, float* %A
|
|
%cndA = icmp eq i64 %indvar.nextA, 100
|
|
br i1 %cndA, label %next, label %loopA
|
|
|
|
next:
|
|
%result = phi float [%sumA, %loopA]
|
|
ret float %result
|
|
|
|
}
|