xref: /llvm-project/polly/test/CodeGen/read-only-scalars.ll (revision e1f056f692d869708c1898d9d65a69ac5584a0ed)
1; RUN: opt %loadNPMPolly -polly-analyze-read-only-scalars=false -passes=polly-codegen \
2; RUN:     \
3; RUN:     -S < %s | FileCheck %s
4; RUN: opt %loadNPMPolly -polly-analyze-read-only-scalars=true -passes=polly-codegen \
5; RUN:     \
6; RUN:     -S < %s | FileCheck %s -check-prefix=SCALAR
7
8; CHECK-NOT: alloca
9
10; SCALAR-LABEL: entry:
11; SCALAR-NEXT: %scalar.s2a = alloca float
12
13; SCALAR-LABEL: polly.start:
14; SCALAR-NEXT:  store float %scalar, ptr %scalar.s2a
15
16; SCALAR-LABEL: polly.stmt.stmt1:
17; SCALAR-NEXT:  %scalar.s2a.reload = load float, ptr %scalar.s2a
18; SCALAR-NEXT:  %val_p_scalar_ = load float, ptr %A,
19; SCALAR-NEXT:  %p_sum = fadd float %val_p_scalar_, %scalar.s2a.reload
20
21define void @foo(ptr noalias %A, float %scalar) {
22entry:
23  br label %loop
24
25loop:
26  %indvar = phi i64 [0, %entry], [%indvar.next, %loop.backedge]
27  br label %stmt1
28
29stmt1:
30  %val = load float, ptr %A
31  %sum = fadd float %val, %scalar
32  store float %sum, ptr %A
33  br label %loop.backedge
34
35loop.backedge:
36  %indvar.next = add i64 %indvar, 1
37  %cond = icmp sle i64 %indvar, 100
38  br i1 %cond, label %loop, label %exit
39
40exit:
41  ret void
42}
43