comparison polly/test/ForwardOpTree/noforward_load_conditional.ll @ 252:1f2b6ac9f198 llvm-original

LLVM16-1
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Fri, 18 Aug 2023 09:04:13 +0900
parents c4bab56944e8
children
comparison
equal deleted inserted replaced
237:c80f45b162ad 252:1f2b6ac9f198
13 ; 13 ;
14 ; bodyB: 14 ; bodyB:
15 ; A[j] = val; 15 ; A[j] = val;
16 ; } 16 ; }
17 ; 17 ;
18 define void @func(i32 %n, double* noalias nonnull %A, double* noalias nonnull %B) { 18 define void @func(i32 %n, ptr noalias nonnull %A, ptr noalias nonnull %B) {
19 entry: 19 entry:
20 br label %for 20 br label %for
21 21
22 for: 22 for:
23 %j = phi i32 [0, %entry], [%j.inc, %inc] 23 %j = phi i32 [0, %entry], [%j.inc, %inc]
24 %j.cmp = icmp slt i32 %j, %n 24 %j.cmp = icmp slt i32 %j, %n
25 br i1 %j.cmp, label %bodyA, label %exit 25 br i1 %j.cmp, label %bodyA, label %exit
26 26
27 bodyA: 27 bodyA:
28 %B_idx = getelementptr inbounds double, double* %B, i32 %j 28 %B_idx = getelementptr inbounds double, ptr %B, i32 %j
29 %val = load double, double* %B_idx 29 %val = load double, ptr %B_idx
30 %cond = icmp slt i32 %j, 1 30 %cond = icmp slt i32 %j, 1
31 br i1 %cond, label %bodyA_true, label %bodyB 31 br i1 %cond, label %bodyA_true, label %bodyB
32 32
33 bodyA_true: 33 bodyA_true:
34 store double 0.0, double* %B_idx 34 store double 0.0, ptr %B_idx
35 br label %bodyB 35 br label %bodyB
36 36
37 bodyB: 37 bodyB:
38 %A_idx = getelementptr inbounds double, double* %A, i32 %j 38 %A_idx = getelementptr inbounds double, ptr %A, i32 %j
39 store double %val, double* %A_idx 39 store double %val, ptr %A_idx
40 br label %inc 40 br label %inc
41 41
42 inc: 42 inc:
43 %j.inc = add nuw nsw i32 %j, 1 43 %j.inc = add nuw nsw i32 %j, 1
44 br label %for 44 br label %for