comparison polly/test/ScopInfo/run-time-check-read-only-arrays.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
9 ; 9 ;
10 ; This test case verifies that we do not create run-time checks for two 10 ; This test case verifies that we do not create run-time checks for two
11 ; read-only arrays. 11 ; read-only arrays.
12 target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128" 12 target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
13 13
14 define void @foo(float* %A, float* %B, float* %C, i64 %N) { 14 define void @foo(ptr %A, ptr %B, ptr %C, i64 %N) {
15 entry: 15 entry:
16 br label %for.body 16 br label %for.body
17 17
18 for.body: 18 for.body:
19 %indvar = phi i64 [ 0, %entry ], [ %indvar.next, %for.body ] 19 %indvar = phi i64 [ 0, %entry ], [ %indvar.next, %for.body ]
20 %arrayidx.A = getelementptr float, float* %A, i64 %indvar 20 %arrayidx.A = getelementptr float, ptr %A, i64 %indvar
21 %arrayidx.B = getelementptr float, float* %B, i64 %indvar 21 %arrayidx.B = getelementptr float, ptr %B, i64 %indvar
22 %arrayidx.C = getelementptr float, float* %C, i64 %indvar 22 %arrayidx.C = getelementptr float, ptr %C, i64 %indvar
23 %val.A = load float, float* %arrayidx.A 23 %val.A = load float, ptr %arrayidx.A
24 %val.B = load float, float* %arrayidx.B 24 %val.B = load float, ptr %arrayidx.B
25 %add = fadd float %val.A, %val.B 25 %add = fadd float %val.A, %val.B
26 store float %add, float* %arrayidx.C 26 store float %add, ptr %arrayidx.C
27 %indvar.next = add nsw i64 %indvar, 1 27 %indvar.next = add nsw i64 %indvar, 1
28 %exitcond = icmp ne i64 %indvar.next, %N 28 %exitcond = icmp ne i64 %indvar.next, %N
29 br i1 %exitcond, label %for.body, label %for.end 29 br i1 %exitcond, label %for.body, label %for.end
30 30
31 for.end: 31 for.end: