annotate polly/test/CodeGen/non-hoisted-load-needed-as-base-ptr.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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
236
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
1 ; RUN: opt %loadPolly -tbaa -polly-codegen -disable-output %s
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
2 ;
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
3 target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
4
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 236
diff changeset
5 %struct.1 = type { ptr, ptr, ptr, i32, i32, i32, i32, i32, i32, i32, i32, i32, ptr, ptr, ptr, ptr, ptr, i32, [38 x i8], [128 x i8], [38 x i32], [256 x i8], [256 x i8], [256 x i8], %struct.4, [25 x [16 x %struct.4]], [128 x [64 x i16]] }
236
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
6 %struct.2 = type { i16, i16, i32, i32 }
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
7 %struct.3 = type { i8, i8, i16, i16 }
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
8 %struct.4 = type { i16, i8, i8 }
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
9
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 236
diff changeset
10 define void @AllocUnitsRare(ptr %p, i32 %indx) {
236
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
11 entry:
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
12 br label %do.body
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
13
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
14 do.body: ; preds = %do.body, %entry
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
15 %i.0 = phi i32 [ %inc, %do.body ], [ %indx, %entry ]
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
16 %inc = add i32 %i.0, 1
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
17 br i1 undef, label %do.body, label %do.end
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
18
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
19 do.end: ; preds = %do.body
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 236
diff changeset
20 %Base.i = getelementptr inbounds %struct.1, ptr %p, i32 0, i32 12
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 236
diff changeset
21 %tmp.i = load ptr, ptr %Base.i, align 8, !tbaa !0
236
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
22 %idxprom.i = zext i32 %inc to i64
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 236
diff changeset
23 %FreeList.i = getelementptr inbounds %struct.1, ptr %p, i32 0, i32 20
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 236
diff changeset
24 %arrayidx.i = getelementptr inbounds [38 x i32], ptr %FreeList.i, i64 0, i64 %idxprom.i
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 236
diff changeset
25 %tmp2.i = load i32, ptr %tmp.i, align 4, !tbaa !8
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 236
diff changeset
26 store i32 %tmp2.i, ptr %arrayidx.i, align 4, !tbaa !8
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 236
diff changeset
27 %Indx2Units.i = getelementptr inbounds %struct.1, ptr %p, i32 0, i32 18
236
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
28 %cmp.i = icmp ne i32 0, 3
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
29 br i1 %cmp.i, label %if.then.i, label %SplitBlock.exit
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
30
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
31 if.then.i: ; preds = %do.end
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
32 br label %SplitBlock.exit
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
33
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
34 SplitBlock.exit: ; preds = %if.then.i, %do.end
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
35 ret void
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
36 }
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
37
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
38 !0 = !{!1, !2, i64 64}
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
39 !1 = !{!"", !2, i64 0, !2, i64 8, !2, i64 16, !5, i64 24, !5, i64 28, !5, i64 32, !5, i64 36, !5, i64 40, !5, i64 44, !5, i64 48, !5, i64 52, !5, i64 56, !2, i64 64, !2, i64 72, !2, i64 80, !2, i64 88, !2, i64 96, !5, i64 104, !3, i64 108, !3, i64 146, !3, i64 276, !3, i64 428, !3, i64 684, !3, i64 940, !6, i64 1196, !3, i64 1200, !3, i64 2800}
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
40 !2 = !{!"any pointer", !3, i64 0}
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
41 !3 = !{!"omnipotent char", !4, i64 0}
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
42 !4 = !{!"Simple C/C++ TBAA"}
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
43 !5 = !{!"int", !3, i64 0}
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
44 !6 = !{!"", !7, i64 0, !3, i64 2, !3, i64 3}
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
45 !7 = !{!"short", !3, i64 0}
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
46 !8 = !{!5, !5, i64 0}