[flang] Fix length handling in character kind implicit conversion (#74586)
[llvm-project.git] / polly / test / ScopInfo / intra-non-affine-stmt-phi-node.ll
blob859972b2740210c2a2a48db21ac07e8c726d0065
1 ; RUN: opt %loadPolly -polly-print-scops -disable-output \
2 ; RUN:     < %s | FileCheck %s
4 ; CHECK:      Statements {
5 ; CHECK-NEXT:     Stmt_loop__TO__backedge
6 ; CHECK-NEXT:         Domain :=
7 ; CHECK-NEXT:             { Stmt_loop__TO__backedge[i0] : 0 <= i0 <= 100 };
8 ; CHECK-NEXT:         Schedule :=
9 ; CHECK-NEXT:             { Stmt_loop__TO__backedge[i0] -> [i0, 0] };
10 ; CHECK-NEXT:         MustWriteAccess :=    [Reduction Type: NONE] [Scalar: 1]
11 ; CHECK-NEXT:             { Stmt_loop__TO__backedge[i0] -> MemRef_merge__phi[] };
12 ; CHECK-NEXT:     Stmt_backedge
13 ; CHECK-NEXT:         Domain :=
14 ; CHECK-NEXT:             { Stmt_backedge[i0] : 0 <= i0 <= 100 };
15 ; CHECK-NEXT:         Schedule :=
16 ; CHECK-NEXT:             { Stmt_backedge[i0] -> [i0, 1] };
17 ; CHECK-NEXT:         ReadAccess :=    [Reduction Type: NONE] [Scalar: 1]
18 ; CHECK-NEXT:             { Stmt_backedge[i0] -> MemRef_merge__phi[] };
19 ; CHECK-NEXT:         MustWriteAccess :=    [Reduction Type: NONE] [Scalar: 0]
20 ; CHECK-NEXT:             { Stmt_backedge[i0] -> MemRef_A[0] };
21 ; CHECK-NEXT: }
23 define void @foo(ptr %A, i1 %cond0, i1 %cond1) {
24 entry:
25   br label %loop
27 loop:
28   %indvar = phi i64 [0, %entry], [%indvar.next, %backedge]
29   %val0 = fadd float 1.0, 2.0
30   %val1 = fadd float 1.0, 2.0
31   br i1 %cond0, label %branch1, label %backedge
33 branch1:
34   %val2 = fadd float 1.0, 2.0
35   br i1 %cond1, label %branch2, label %backedge
37 branch2:
38   br label %backedge
40 backedge:
41   %merge = phi float [%val0, %loop], [%val1, %branch1], [%val2, %branch2]
42   %indvar.next = add i64 %indvar, 1
43   store float %merge, ptr %A
44   %cmp = icmp sle i64 %indvar.next, 100
45   br i1 %cmp, label %loop, label %exit
47 exit:
48   ret void