Skip to content

Commit 0755bb4

Browse files
committed
[DA] add testcase
Make sure the testcase for this bug continues to work: #31196
1 parent 503da3b commit 0755bb4

File tree

1 file changed

+67
-0
lines changed

1 file changed

+67
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
; RUN: opt < %s -disable-output "-passes=print<da>" -aa-pipeline=basic-aa 2>&1 \
2+
; RUN: | FileCheck %s
3+
4+
define void @foo(i32* nocapture %A, i32 %n) {
5+
entry:
6+
%n.cmp = icmp sgt i32 %n, 0
7+
br i1 %n.cmp, label %for.j.header, label %exit
8+
9+
for.j.header:
10+
%j= phi i32 [ %j.inc, %for.j.latch ], [ 0, %entry ]
11+
br label %for.i.header
12+
13+
for.i.header:
14+
%i = phi i32 [ %i.inc, %for.i.latch ], [ 0, %for.j.header ]
15+
br label %for.di.header
16+
17+
for.di.header:
18+
%di = phi i32 [ -1, %for.i.header ], [ %di.inc, %for.di.latch ]
19+
%di.add = add nsw i32 %di, %i
20+
br label %for.dj.header
21+
22+
for.dj.header:
23+
%dj = phi i32 [ -1, %for.di.header ], [ %dj.inc, %body ]
24+
%dj.add = add nsw i32 %dj, %j
25+
br label %while.x
26+
27+
while.x:
28+
%x = phi i32 [ %di.add, %for.dj.header ], [ %x.inc, %while.x ]
29+
%x.cmp = icmp slt i32 %x, 0
30+
%x.inc = add nsw i32 %x, %n
31+
br i1 %x.cmp, label %while.x, label %while.y
32+
33+
while.y:
34+
%y = phi i32 [ %y.inc, %while.y ], [ %dj.add, %while.x ]
35+
%y.cmp = icmp slt i32 %y, 0
36+
%y.inc = add nsw i32 %y, %n
37+
br i1 %y.cmp, label %while.y, label %body
38+
39+
body:
40+
%mul = mul nsw i32 %y, %n
41+
%add = add nsw i32 %mul, %x
42+
%idxprom = sext i32 %add to i64
43+
%arrayidx = getelementptr inbounds i32, i32* %A, i64 %idxprom
44+
; CHECK: da analyze - output [* * * *]
45+
store i32 7, i32* %arrayidx, align 4
46+
%dj.inc = add nsw i32 %dj, 1
47+
%dj.exitcond = icmp eq i32 %dj.inc, 2
48+
br i1 %dj.exitcond, label %for.di.latch, label %for.dj.header
49+
50+
for.di.latch:
51+
%di.inc = add nsw i32 %di, 1
52+
%di.exitcond = icmp eq i32 %di.inc, 2
53+
br i1 %di.exitcond, label %for.i.latch, label %for.di.header
54+
55+
for.i.latch:
56+
%i.inc = add nuw nsw i32 %i, 1
57+
%i.exitcond = icmp eq i32 %i.inc, %n
58+
br i1 %i.exitcond, label %for.j.latch, label %for.i.header
59+
60+
for.j.latch:
61+
%j.inc = add nuw nsw i32 %j, 1
62+
%j.exitcond = icmp eq i32 %j.inc, %n
63+
br i1 %j.exitcond, label %exit, label %for.j.header
64+
65+
exit:
66+
ret void
67+
}

0 commit comments

Comments
 (0)