• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1; RUN: llc -march=hexagon -O3 -hexagon-instsimplify=0 < %s | FileCheck %s
2
3; CHECK-LABEL: f0:
4; CHECK: loop0(.LBB{{[0-9]+}}_{{[0-9]+}},#3)
5; CHECK: endloop0
6define void @f0(i8* nocapture %a0, i32 %a1, i32 %a2) #0 {
7b0:
8  br label %b1
9
10b1:                                               ; preds = %b0
11  br label %b2
12
13b2:                                               ; preds = %b2, %b1
14  %v0 = phi i32 [ 0, %b1 ], [ %v1, %b2 ]
15  %v1 = add nsw i32 %v0, 1
16  %v2 = icmp slt i32 %v1, 3
17  br i1 %v2, label %b2, label %b3
18
19b3:                                               ; preds = %b2
20  ret void
21}
22
23; CHECK-LABEL: f1:
24; CHECK: loop0(.LBB{{[0-9]+}}_{{[0-9]+}},#2)
25; CHECK: endloop0
26define void @f1(i8* nocapture %a0, i32 %a1, i32 %a2) #0 {
27b0:
28  br label %b1
29
30b1:                                               ; preds = %b0
31  br label %b2
32
33b2:                                               ; preds = %b2, %b1
34  %v0 = phi i32 [ 0, %b1 ], [ %v1, %b2 ]
35  %v1 = add nsw i32 %v0, 2
36  %v2 = icmp slt i32 %v1, 3
37  br i1 %v2, label %b2, label %b3
38
39b3:                                               ; preds = %b2
40  ret void
41}
42
43; CHECK-LABEL: f2:
44; CHECK: loop0(.LBB{{[0-9]+}}_{{[0-9]+}},#1)
45; CHECK: endloop0
46define void @f2(i8* nocapture %a0, i32 %a1, i32 %a2) #0 {
47b0:
48  br label %b1
49
50b1:                                               ; preds = %b0
51  br label %b2
52
53b2:                                               ; preds = %b2, %b1
54  %v0 = phi i32 [ 0, %b1 ], [ %v1, %b2 ]
55  %v1 = add nsw i32 %v0, 3
56  %v2 = icmp slt i32 %v1, 3
57  br i1 %v2, label %b2, label %b3
58
59b3:                                               ; preds = %b2
60  ret void
61}
62
63; CHECK-LABEL: f3:
64; CHECK: loop0(.LBB{{[0-9]+}}_{{[0-9]+}},#4)
65; CHECK: endloop0
66define void @f3(i8* nocapture %a0, i32 %a1, i32 %a2) #0 {
67b0:
68  br label %b1
69
70b1:                                               ; preds = %b0
71  br label %b2
72
73b2:                                               ; preds = %b2, %b1
74  %v0 = phi i32 [ 0, %b1 ], [ %v1, %b2 ]
75  %v1 = add nsw i32 %v0, 1
76  %v2 = icmp sle i32 %v1, 3
77  br i1 %v2, label %b2, label %b3
78
79b3:                                               ; preds = %b2
80  ret void
81}
82
83; CHECK-LABEL: f4:
84; CHECK: loop0(.LBB{{[0-9]+}}_{{[0-9]+}},#2)
85; CHECK: endloop0
86define void @f4(i8* nocapture %a0, i32 %a1, i32 %a2) #0 {
87b0:
88  br label %b1
89
90b1:                                               ; preds = %b0
91  br label %b2
92
93b2:                                               ; preds = %b2, %b1
94  %v0 = phi i32 [ 0, %b1 ], [ %v1, %b2 ]
95  %v1 = add nsw i32 %v0, 2
96  %v2 = icmp sle i32 %v1, 3
97  br i1 %v2, label %b2, label %b3
98
99b3:                                               ; preds = %b2
100  ret void
101}
102
103; CHECK-LABEL: f5:
104; CHECK: loop0(.LBB{{[0-9]+}}_{{[0-9]+}},#2)
105; CHECK: endloop0
106define void @f5(i8* nocapture %a0, i32 %a1, i32 %a2) #0 {
107b0:
108  br label %b1
109
110b1:                                               ; preds = %b0
111  br label %b2
112
113b2:                                               ; preds = %b2, %b1
114  %v0 = phi i32 [ 0, %b1 ], [ %v1, %b2 ]
115  %v1 = add nsw i32 %v0, 3
116  %v2 = icmp sle i32 %v1, 3
117  br i1 %v2, label %b2, label %b3
118
119b3:                                               ; preds = %b2
120  ret void
121}
122
123attributes #0 = { nounwind }
124