comparison polly/test/ScopDetectionDiagnostics/ReportLoopBound-01.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
35 ; ALLOWNONAFFINEALL: remark: ReportLoopBound-01.c:1:12: No profitable polyhedral optimization found 35 ; ALLOWNONAFFINEALL: remark: ReportLoopBound-01.c:1:12: No profitable polyhedral optimization found
36 ; ALLOWNONAFFINEALL: remark: ReportLoopBound-01.c:3:5: Invalid Scop candidate ends here. 36 ; ALLOWNONAFFINEALL: remark: ReportLoopBound-01.c:3:5: Invalid Scop candidate ends here.
37 37
38 target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128" 38 target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
39 39
40 define void @f(i32* %A, i32 %n) !dbg !4 { 40 define void @f(ptr %A, i32 %n) !dbg !4 {
41 entry: 41 entry:
42 br label %entry.split 42 br label %entry.split
43 43
44 entry.split: ; preds = %entry 44 entry.split: ; preds = %entry
45 tail call void @llvm.dbg.value(metadata i32* %A, i64 0, metadata !13, metadata !DIExpression()), !dbg !14 45 tail call void @llvm.dbg.value(metadata ptr %A, i64 0, metadata !13, metadata !DIExpression()), !dbg !14
46 tail call void @llvm.dbg.value(metadata i32* %A, i64 0, metadata !13, metadata !DIExpression()), !dbg !14 46 tail call void @llvm.dbg.value(metadata ptr %A, i64 0, metadata !13, metadata !DIExpression()), !dbg !14
47 tail call void @llvm.dbg.value(metadata i32 %n, i64 0, metadata !15, metadata !DIExpression()), !dbg !16 47 tail call void @llvm.dbg.value(metadata i32 %n, i64 0, metadata !15, metadata !DIExpression()), !dbg !16
48 tail call void @llvm.dbg.value(metadata i32 0, i64 0, metadata !18, metadata !DIExpression()), !dbg !20 48 tail call void @llvm.dbg.value(metadata i32 0, i64 0, metadata !18, metadata !DIExpression()), !dbg !20
49 %idxprom = sext i32 %n to i64, !dbg !21 49 %idxprom = sext i32 %n to i64, !dbg !21
50 %arrayidx = getelementptr inbounds i32, i32* %A, i64 %idxprom, !dbg !21 50 %arrayidx = getelementptr inbounds i32, ptr %A, i64 %idxprom, !dbg !21
51 %0 = load i32, i32* %arrayidx, align 4, !dbg !21 51 %0 = load i32, ptr %arrayidx, align 4, !dbg !21
52 %cmp3 = icmp sgt i32 %0, 0, !dbg !21 52 %cmp3 = icmp sgt i32 %0, 0, !dbg !21
53 br i1 %cmp3, label %for.body.lr.ph, label %for.end, !dbg !21 53 br i1 %cmp3, label %for.body.lr.ph, label %for.end, !dbg !21
54 54
55 for.body.lr.ph: ; preds = %entry.split 55 for.body.lr.ph: ; preds = %entry.split
56 br label %for.body, !dbg !22 56 br label %for.body, !dbg !22
57 57
58 for.body: ; preds = %for.body.lr.ph, %for.body 58 for.body: ; preds = %for.body.lr.ph, %for.body
59 %indvar = phi i64 [ 0, %for.body.lr.ph ], [ %indvar.next, %for.body ] 59 %indvar = phi i64 [ 0, %for.body.lr.ph ], [ %indvar.next, %for.body ]
60 %arrayidx2 = getelementptr i32, i32* %A, i64 %indvar, !dbg !24 60 %arrayidx2 = getelementptr i32, ptr %A, i64 %indvar, !dbg !24
61 %1 = add i64 %indvar, 1, !dbg !24 61 %1 = add i64 %indvar, 1, !dbg !24
62 %inc = trunc i64 %1 to i32, !dbg !21 62 %inc = trunc i64 %1 to i32, !dbg !21
63 store i32 0, i32* %arrayidx2, align 4, !dbg !24 63 store i32 0, ptr %arrayidx2, align 4, !dbg !24
64 tail call void @llvm.dbg.value(metadata !{null}, i64 0, metadata !18, metadata !DIExpression()), !dbg !20 64 tail call void @llvm.dbg.value(metadata !{null}, i64 0, metadata !18, metadata !DIExpression()), !dbg !20
65 %arrayidx3 = getelementptr inbounds i32, i32* %arrayidx, i64 %indvar, !dbg !21 65 %arrayidx3 = getelementptr inbounds i32, ptr %arrayidx, i64 %indvar, !dbg !21
66 %2 = load i32, i32* %arrayidx3, align 4, !dbg !21 66 %2 = load i32, ptr %arrayidx3, align 4, !dbg !21
67 %cmp = icmp slt i32 %inc, %2, !dbg !21 67 %cmp = icmp slt i32 %inc, %2, !dbg !21
68 %indvar.next = add i64 %indvar, 1, !dbg !21 68 %indvar.next = add i64 %indvar, 1, !dbg !21
69 br i1 %cmp, label %for.body, label %for.cond.for.end_crit_edge, !dbg !21 69 br i1 %cmp, label %for.body, label %for.cond.for.end_crit_edge, !dbg !21
70 70
71 for.cond.for.end_crit_edge: ; preds = %for.body 71 for.cond.for.end_crit_edge: ; preds = %for.body