Lines Matching +full:- +full:iv
1 ; RUN: opt -S -indvars %s | FileCheck %s
2 target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
3 target triple = "x86_64-unknown-linux-gnu"
6 ; CHECK-LABEL: @test1
11 %indvars.iv = phi i64 [ %start, %entry ], [ %indvars.iv.next, %loop ]
12 %indvars.iv.next = add nsw i64 %indvars.iv, 1
13 ; CHECK: %cmp1 = icmp slt i64 %start, -1
14 %cmp1 = icmp slt i64 %indvars.iv, -1
22 ; CHECK-LABEL: @test2
27 %indvars.iv = phi i64 [ %start, %entry ], [ %indvars.iv.next, %loop ]
28 %indvars.iv.next = add nsw i64 %indvars.iv, 1
29 ; CHECK: %cmp1 = icmp sle i64 %start, -1
30 %cmp1 = icmp sle i64 %indvars.iv, -1
39 ; CHECK-LABEL: @test3
44 %indvars.iv = phi i64 [ %start, %entry ], [ %indvars.iv.next, %backedge ]
45 %indvars.iv.next = add nsw i64 %indvars.iv, 1
46 %cmp = icmp eq i64 %indvars.iv.next, 25
52 ; CHECK: %cmp1 = icmp slt i64 %start, -1
53 %cmp1 = icmp slt i64 %indvars.iv, -1
61 ; CHECK-LABEL: @test4
66 %indvars.iv = phi i64 [ %start, %entry ], [ %indvars.iv.next, %backedge ]
67 %indvars.iv.next = add nsw i64 %indvars.iv, 1
68 %cmp = icmp eq i64 %indvars.iv.next, 25
74 ; CHECK: %cmp1 = icmp sgt i64 %start, -1
75 %cmp1 = icmp sgt i64 %indvars.iv, -1
83 ; CHECK-LABEL: @test5
88 %indvars.iv = phi i64 [ %start, %entry ], [ %indvars.iv.next, %backedge ]
89 %indvars.iv.next = add nuw i64 %indvars.iv, 1
90 %cmp = icmp eq i64 %indvars.iv.next, 25
97 %cmp1 = icmp ugt i64 %indvars.iv, 100
105 ; CHECK-LABEL: @test6
110 %indvars.iv = phi i64 [ %start, %entry ], [ %indvars.iv.next, %backedge ]
111 %indvars.iv.next = add nuw i64 %indvars.iv, 1
112 %cmp = icmp eq i64 %indvars.iv.next, 25
119 %cmp1 = icmp ult i64 %indvars.iv, 100
127 ; CHECK-LABEL: @test7
134 %indvars.iv = phi i64 [ %start, %entry ], [ %indvars.iv.next, %loop ]
135 %indvars.iv.next = add nsw i64 %indvars.iv, %inc
136 ; CHECK: %cmp1 = icmp slt i64 %start, -1
137 %cmp1 = icmp slt i64 %indvars.iv, -1
146 ; Negative test - we can't show that the internal branch executes, so we can't
149 ; CHECK-LABEL: @test1_neg
154 %indvars.iv = phi i64 [ %start, %entry ], [ %indvars.iv.next, %backedge ]
155 %indvars.iv.next = add nsw i64 %indvars.iv, 1
156 %cmp = icmp eq i64 %indvars.iv.next, 25
161 ; CHECK: %cmp1 = icmp slt i64 %indvars.iv, -1
162 %cmp1 = icmp slt i64 %indvars.iv, -1
176 ; CHECK-LABEL: @test2_neg
181 %indvars.iv = phi i64 [ %start, %entry ], [ %indvars.iv.next, %backedge ]
182 %indvars.iv.next = add nsw i64 %indvars.iv, 1
183 %cmp = icmp eq i64 %indvars.iv.next, 25
184 ; CHECK: %cmp1 = icmp slt i64 %indvars.iv, -1
185 %cmp1 = icmp slt i64 %indvars.iv, -1
202 ; CHECK-LABEL: @test3_neg
207 %indvars.iv = phi i64 [ %start, %entry ], [ %indvars.iv.next, %loop ]
208 %indvars.iv.next = add nsw i64 %indvars.iv, 1
209 ; CHECK: %cmp1 = icmp slt i64 %indvars.iv, -1
210 %cmp1 = icmp slt i64 %indvars.iv, -1
218 ; CHECK-LABEL: @test4_neg
223 %indvars.iv = phi i64 [ %start, %entry ], [ %indvars.iv.next, %backedge ]
224 %indvars.iv.next = add nsw i64 %indvars.iv, 1
225 %cmp = icmp eq i64 %indvars.iv.next, 25
231 ; CHECK: %cmp1 = icmp sgt i64 %indvars.iv, -1
232 %cmp1 = icmp sgt i64 %indvars.iv, -1
243 ; CHECK-LABEL: @test5_neg
248 %indvars.iv = phi i64 [ %start, %entry ], [ %indvars.iv.next, %loop ]
249 %indvars.iv.next = add nsw i64 %indvars.iv, %inc
250 ; CHECK: %cmp1 = icmp slt i64 %indvars.iv, -1
251 %cmp1 = icmp slt i64 %indvars.iv, -1
259 ; CHECK-LABEL: @test8
266 %indvars.iv = phi i64 [ %start, %entry ], [ %indvars.iv.next, %loop ]
267 %indvars.iv.next = add nsw i64 %indvars.iv, %inc
268 ; CHECK: %cmp1 = icmp slt i64 %indvars.iv, -1
269 %cmp1 = icmp slt i64 %indvars.iv, -1
276 !1 = !{i64 -1, i64 100}