[clang][modules] Don't prevent translation of FW_Private includes when explicitly...
[llvm-project.git] / polly / test / ScopInfo / invariant_load_canonicalize_array_baseptrs_4c.ll
blobaefacff6b46fd22359e150c63474ad078a1ac720
1 ; RUN: opt %loadPolly -polly-print-scops -disable-output < %s \
2 ; RUN:  -polly-invariant-load-hoisting \
3 ; RUN:  | FileCheck %s
5 ; Verify that arrays with different element types are not coalesced.
7 ; CHECK:      Statements {
8 ; CHECK-NEXT:   Stmt_body1
9 ; CHECK-NEXT:         Domain :=
10 ; CHECK-NEXT:             { Stmt_body1[i0] : 0 <= i0 <= 1022 };
11 ; CHECK-NEXT:         Schedule :=
12 ; CHECK-NEXT:             { Stmt_body1[i0] -> [i0, 0] };
13 ; CHECK-NEXT:         MustWriteAccess :=        [Reduction Type: NONE] [Scalar: 0]
14 ; CHECK-NEXT:             { Stmt_body1[i0] -> MemRef_baseB[0] };
15 ; CHECK-NEXT:   Stmt_body2
16 ; CHECK-NEXT:         Domain :=
17 ; CHECK-NEXT:             { Stmt_body2[i0] : 0 <= i0 <= 1022 };
18 ; CHECK-NEXT:         Schedule :=
19 ; CHECK-NEXT:             { Stmt_body2[i0] -> [i0, 1] };
20 ; CHECK-NEXT:         MustWriteAccess :=        [Reduction Type: NONE] [Scalar: 0]
21 ; CHECK-NEXT:             { Stmt_body2[i0] -> MemRef_baseA[0] };
22 ; CHECK-NEXT: }
24 define void @foo(ptr %A, i64 %n, i64 %m) {
25 start:
26   br label %loop
28 loop:
29   %indvar = phi i64 [0, %start], [%indvar.next, %latch]
30   %indvar.next = add nsw i64 %indvar, 1
31   %icmp = icmp slt i64 %indvar.next, 1024
32   br i1 %icmp, label %body1, label %exit
34 body1:
35   %baseB = load ptr, ptr %A
36   store float 42.0, ptr %baseB
37   br label %body2
39 body2:
40   %baseA = load ptr, ptr %A
41   store i64 42, ptr %baseA
42   br label %latch
44 latch:
45   br label %loop
47 exit:
48   ret void