xref: /llvm-project/polly/test/CodeGen/invariant_load_canonicalize_array_baseptrs.ll (revision e1f056f692d869708c1898d9d65a69ac5584a0ed)
1*e1f056f6Srahulana-quic; RUN: opt %loadNPMPolly -passes=polly-codegen -S < %s \
235f70200SMichael Kruse; RUN:  -polly-invariant-load-hoisting \
335f70200SMichael Kruse; RUN:  | FileCheck %s
435f70200SMichael Kruse
5fc78ebadSNikita Popov; CHECK: %polly.access.A = getelementptr ptr, ptr %A, i64 0
6fc78ebadSNikita Popov; CHECK: %polly.access.A.load = load ptr, ptr %polly.access.A
7fc78ebadSNikita Popov; CHECK: store float 4.200000e+01, ptr %polly.access.A.load
8fc78ebadSNikita Popov; CHECK: store float 4.800000e+01, ptr %polly.access.A.load
935f70200SMichael Kruse
10fc78ebadSNikita Popovdefine void @foo(ptr %A) {
1135f70200SMichael Krusestart:
1235f70200SMichael Kruse  br label %loop
1335f70200SMichael Kruse
1435f70200SMichael Kruseloop:
1535f70200SMichael Kruse  %indvar = phi i64 [0, %start], [%indvar.next, %latch]
1635f70200SMichael Kruse  %indvar.next = add nsw i64 %indvar, 1
1735f70200SMichael Kruse  %icmp = icmp slt i64 %indvar.next, 1024
1835f70200SMichael Kruse  br i1 %icmp, label %body1, label %exit
1935f70200SMichael Kruse
2035f70200SMichael Krusebody1:
21fc78ebadSNikita Popov  %baseA = load ptr, ptr %A
22fc78ebadSNikita Popov  store float 42.0, ptr %baseA
2335f70200SMichael Kruse  br label %body2
2435f70200SMichael Kruse
2535f70200SMichael Krusebody2:
26fc78ebadSNikita Popov  %baseB = load ptr, ptr %A
27fc78ebadSNikita Popov  store float 48.0, ptr %baseB
2835f70200SMichael Kruse  br label %latch
2935f70200SMichael Kruse
3035f70200SMichael Kruselatch:
3135f70200SMichael Kruse  br label %loop
3235f70200SMichael Kruse
3335f70200SMichael Kruseexit:
3435f70200SMichael Kruse  ret void
3535f70200SMichael Kruse
3635f70200SMichael Kruse}
37