[flang] Fix length handling in character kind implicit conversion (#74586)
[llvm-project.git] / polly / test / ForwardOpTree / noforward_load_writebetween.ll
blobe2272c1c1f13fee85ac9552519a5e6a669bdbb5e
1 ; RUN: opt %loadPolly -polly-print-optree -disable-output < %s | FileCheck %s -match-full-lines
3 ; Cannot rematerialize %val from B[0] at bodyC because B[0] has been
4 ; overwritten in bodyB.
6 ; for (int j = 0; j < n; j += 1) {
7 ; bodyA:
8 ;   double val = B[j];
10 ; bodyB:
11 ;   B[j] = 0.0;
13 ; bodyC:
14 ;   A[j] = val;
15 ; }
17 define void @func(i32 %n, ptr noalias nonnull %A, ptr noalias nonnull %B) {
18 entry:
19   br label %for
21 for:
22   %j = phi i32 [0, %entry], [%j.inc, %inc]
23   %j.cmp = icmp slt i32 %j, %n
24   br i1 %j.cmp, label %bodyA, label %exit
26     bodyA:
27       %B_idx = getelementptr inbounds double, ptr %B, i32 %j
28       %val = load double, ptr %B_idx
29       br label %bodyB
31     bodyB:
32       store double 0.0, ptr %B_idx
33       br label %bodyC
35     bodyC:
36       %A_idx = getelementptr inbounds double, ptr %A, i32 %j
37       store double %val, ptr %A_idx
38       br label %inc
40 inc:
41   %j.inc = add nuw nsw i32 %j, 1
42   br label %for
44 exit:
45   br label %return
47 return:
48   ret void
52 ; CHECK: ForwardOpTree executed, but did not modify anything