Mercurial > hg > CbC > CbC_llvm
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 |