@@ -6,15 +6,15 @@ define void @f0(i1 %c) {
6
6
; CHECK-LABEL: 'f0'
7
7
; CHECK-NEXT: Classifying expressions for: @f0
8
8
; CHECK-NEXT: %start = select i1 %c, i32 127, i32 0
9
- ; CHECK-NEXT: --> %start U: [0,128) S: [-128 ,128)
9
+ ; CHECK-NEXT: --> %start U: [0,128) S: [0 ,128)
10
10
; CHECK-NEXT: %step = select i1 %c, i32 -1, i32 1
11
11
; CHECK-NEXT: --> %step U: [1,0) S: [-2,2)
12
12
; CHECK-NEXT: %loop.iv = phi i32 [ 0, %entry ], [ %loop.iv.inc, %loop ]
13
13
; CHECK-NEXT: --> {0,+,1}<%loop> U: [0,128) S: [0,128) Exits: 127 LoopDispositions: { %loop: Computable }
14
14
; CHECK-NEXT: %iv = phi i32 [ %start, %entry ], [ %iv.next, %loop ]
15
15
; CHECK-NEXT: --> {%start,+,%step}<%loop> U: [0,128) S: [0,128) Exits: ((127 * %step)<nsw> + %start) LoopDispositions: { %loop: Computable }
16
16
; CHECK-NEXT: %iv.next = add i32 %iv, %step
17
- ; CHECK-NEXT: --> {(%step + %start),+,%step}<%loop> U: [-384 ,256) S: [-384 ,256) Exits: ((128 * %step)<nsw> + %start) LoopDispositions: { %loop: Computable }
17
+ ; CHECK-NEXT: --> {(%step + %start),+,%step}<%loop> U: [-256 ,256) S: [-256 ,256) Exits: ((128 * %step)<nsw> + %start) LoopDispositions: { %loop: Computable }
18
18
; CHECK-NEXT: %loop.iv.inc = add i32 %loop.iv, 1
19
19
; CHECK-NEXT: --> {1,+,1}<%loop> U: [1,129) S: [1,129) Exits: 128 LoopDispositions: { %loop: Computable }
20
20
; CHECK-NEXT: Determining loop execution counts for: @f0
@@ -45,7 +45,7 @@ define void @f1(i1 %c) {
45
45
; CHECK-LABEL: 'f1'
46
46
; CHECK-NEXT: Classifying expressions for: @f1
47
47
; CHECK-NEXT: %start = select i1 %c, i32 120, i32 0
48
- ; CHECK-NEXT: --> %start U: [0,121) S: [-128,128 )
48
+ ; CHECK-NEXT: --> %start U: [0,121) S: [0,121 )
49
49
; CHECK-NEXT: %step = select i1 %c, i32 -8, i32 8
50
50
; CHECK-NEXT: --> %step U: [8,-7) S: [-16,16)
51
51
; CHECK-NEXT: %loop.iv = phi i32 [ 0, %entry ], [ %loop.iv.inc, %loop ]
@@ -81,7 +81,7 @@ define void @f1(i1 %c) {
81
81
; CHECK-NEXT: %iv.m7 = sub i32 %iv, 7
82
82
; CHECK-NEXT: --> {(-7 + %start)<nsw>,+,%step}<%loop> U: [-7,114) S: [-7,114) Exits: (-7 + (15 * %step)<nsw> + %start) LoopDispositions: { %loop: Computable }
83
83
; CHECK-NEXT: %iv.next = add i32 %iv, %step
84
- ; CHECK-NEXT: --> {(%step + %start),+,%step}<%loop> U: [0,-7) S: [-384,368 ) Exits: ((16 * %step)<nsw> + %start) LoopDispositions: { %loop: Computable }
84
+ ; CHECK-NEXT: --> {(%step + %start),+,%step}<%loop> U: [0,-7) S: [-256,361 ) Exits: ((16 * %step)<nsw> + %start) LoopDispositions: { %loop: Computable }
85
85
; CHECK-NEXT: %loop.iv.inc = add i32 %loop.iv, 1
86
86
; CHECK-NEXT: --> {1,+,1}<%loop> U: [1,17) S: [1,17) Exits: 16 LoopDispositions: { %loop: Computable }
87
87
; CHECK-NEXT: Determining loop execution counts for: @f1
@@ -131,17 +131,17 @@ define void @f2(i1 %c) {
131
131
; CHECK-LABEL: 'f2'
132
132
; CHECK-NEXT: Classifying expressions for: @f2
133
133
; CHECK-NEXT: %start = select i1 %c, i32 127, i32 0
134
- ; CHECK-NEXT: --> %start U: [0,128) S: [-128 ,128)
134
+ ; CHECK-NEXT: --> %start U: [0,128) S: [0 ,128)
135
135
; CHECK-NEXT: %step = select i1 %c, i32 -1, i32 1
136
136
; CHECK-NEXT: --> %step U: [1,0) S: [-2,2)
137
137
; CHECK-NEXT: %loop.iv = phi i32 [ 0, %entry ], [ %loop.iv.inc, %loop ]
138
138
; CHECK-NEXT: --> {0,+,1}<%loop> U: [0,128) S: [0,128) Exits: 127 LoopDispositions: { %loop: Computable }
139
139
; CHECK-NEXT: %iv = phi i32 [ %start, %entry ], [ %iv.next, %loop ]
140
140
; CHECK-NEXT: --> {%start,+,%step}<%loop> U: [0,128) S: [0,128) Exits: ((127 * %step)<nsw> + %start) LoopDispositions: { %loop: Computable }
141
141
; CHECK-NEXT: %iv.sext = sext i32 %iv to i64
142
- ; CHECK-NEXT: --> {(sext i32 %start to i64),+,(sext i32 %step to i64)}<nsw><%loop> U: [0,128) S: [0,128) Exits: ((sext i32 %start to i64) + (127 * (sext i32 %step to i64))<nsw>) LoopDispositions: { %loop: Computable }
142
+ ; CHECK-NEXT: --> {(zext i32 %start to i64),+,(sext i32 %step to i64)}<nsw><%loop> U: [0,128) S: [0,128) Exits: ((zext i32 %start to i64) + (127 * (sext i32 %step to i64))<nsw>) LoopDispositions: { %loop: Computable }
143
143
; CHECK-NEXT: %iv.next = add i32 %iv, %step
144
- ; CHECK-NEXT: --> {(%step + %start),+,%step}<nw><%loop> U: [-384 ,256) S: [-384 ,256) Exits: ((128 * %step)<nsw> + %start) LoopDispositions: { %loop: Computable }
144
+ ; CHECK-NEXT: --> {(%step + %start),+,%step}<nw><%loop> U: [-256 ,256) S: [-256 ,256) Exits: ((128 * %step)<nsw> + %start) LoopDispositions: { %loop: Computable }
145
145
; CHECK-NEXT: %loop.iv.inc = add i32 %loop.iv, 1
146
146
; CHECK-NEXT: --> {1,+,1}<%loop> U: [1,129) S: [1,129) Exits: 128 LoopDispositions: { %loop: Computable }
147
147
; CHECK-NEXT: Determining loop execution counts for: @f2
@@ -173,9 +173,9 @@ define void @f3(i1 %c) {
173
173
; CHECK-LABEL: 'f3'
174
174
; CHECK-NEXT: Classifying expressions for: @f3
175
175
; CHECK-NEXT: %start = select i1 %c, i16 1000, i16 0
176
- ; CHECK-NEXT: --> %start U: [0,1001) S: [-1024,1024 )
176
+ ; CHECK-NEXT: --> %start U: [0,1001) S: [0,1001 )
177
177
; CHECK-NEXT: %step = select i1 %c, i16 1, i16 509
178
- ; CHECK-NEXT: --> %step U: [1,510) S: [-512,512 )
178
+ ; CHECK-NEXT: --> %step U: [1,510) S: [1,510 )
179
179
; CHECK-NEXT: %loop.iv = phi i16 [ 0, %entry ], [ %loop.iv.inc, %loop ]
180
180
; CHECK-NEXT: --> {0,+,1}<%loop> U: [0,128) S: [0,128) Exits: 127 LoopDispositions: { %loop: Computable }
181
181
; CHECK-NEXT: %iv = phi i16 [ %start, %entry ], [ %iv.next, %loop ]
@@ -222,7 +222,7 @@ define void @f4(i1 %c) {
222
222
; CHECK-LABEL: 'f4'
223
223
; CHECK-NEXT: Classifying expressions for: @f4
224
224
; CHECK-NEXT: %start = select i1 %c, i32 127, i32 0
225
- ; CHECK-NEXT: --> %start U: [0,128) S: [-128 ,128)
225
+ ; CHECK-NEXT: --> %start U: [0,128) S: [0 ,128)
226
226
; CHECK-NEXT: %step = select i1 %c, i32 -1, i32 1
227
227
; CHECK-NEXT: --> %step U: [1,0) S: [-2,2)
228
228
; CHECK-NEXT: %loop.iv = phi i32 [ 0, %entry ], [ %loop.iv.inc, %loop ]
@@ -232,7 +232,7 @@ define void @f4(i1 %c) {
232
232
; CHECK-NEXT: %iv.trunc = trunc i32 %iv to i16
233
233
; CHECK-NEXT: --> {(trunc i32 %start to i16),+,(trunc i32 %step to i16)}<%loop> U: full-set S: full-set Exits: ((trunc i32 %start to i16) + (127 * (trunc i32 %step to i16))<nsw>) LoopDispositions: { %loop: Computable }
234
234
; CHECK-NEXT: %iv.next = add i32 %iv, %step
235
- ; CHECK-NEXT: --> {(%step + %start),+,%step}<%loop> U: [-384 ,256) S: [-384 ,256) Exits: ((128 * %step)<nsw> + %start) LoopDispositions: { %loop: Computable }
235
+ ; CHECK-NEXT: --> {(%step + %start),+,%step}<%loop> U: [-256 ,256) S: [-256 ,256) Exits: ((128 * %step)<nsw> + %start) LoopDispositions: { %loop: Computable }
236
236
; CHECK-NEXT: %loop.iv.inc = add i32 %loop.iv, 1
237
237
; CHECK-NEXT: --> {1,+,1}<%loop> U: [1,129) S: [1,129) Exits: 128 LoopDispositions: { %loop: Computable }
238
238
; CHECK-NEXT: Determining loop execution counts for: @f4
@@ -270,7 +270,7 @@ define void @f5(i1 %c) {
270
270
; CHECK-LABEL: 'f5'
271
271
; CHECK-NEXT: Classifying expressions for: @f5
272
272
; CHECK-NEXT: %start = select i1 %c, i32 127, i32 0
273
- ; CHECK-NEXT: --> %start U: [0,128) S: [-128 ,128)
273
+ ; CHECK-NEXT: --> %start U: [0,128) S: [0 ,128)
274
274
; CHECK-NEXT: %step = select i1 %c, i32 -1, i32 1
275
275
; CHECK-NEXT: --> %step U: [1,0) S: [-2,2)
276
276
; CHECK-NEXT: %loop.iv = phi i16 [ 0, %entry ], [ %loop.iv.inc, %loop ]
@@ -280,7 +280,7 @@ define void @f5(i1 %c) {
280
280
; CHECK-NEXT: %iv.trunc = trunc i32 %iv to i16
281
281
; CHECK-NEXT: --> {(trunc i32 %start to i16),+,(trunc i32 %step to i16)}<%loop> U: [0,128) S: [0,128) Exits: ((trunc i32 %start to i16) + (127 * (trunc i32 %step to i16))<nsw>) LoopDispositions: { %loop: Computable }
282
282
; CHECK-NEXT: %iv.next = add i32 %iv, %step
283
- ; CHECK-NEXT: --> {(%step + %start),+,%step}<%loop> U: [-384 ,256) S: [-384 ,256) Exits: ((128 * %step)<nsw> + %start) LoopDispositions: { %loop: Computable }
283
+ ; CHECK-NEXT: --> {(%step + %start),+,%step}<%loop> U: [-256 ,256) S: [-256 ,256) Exits: ((128 * %step)<nsw> + %start) LoopDispositions: { %loop: Computable }
284
284
; CHECK-NEXT: %loop.iv.inc = add i16 %loop.iv, 1
285
285
; CHECK-NEXT: --> {1,+,1}<%loop> U: [1,129) S: [1,129) Exits: 128 LoopDispositions: { %loop: Computable }
286
286
; CHECK-NEXT: Determining loop execution counts for: @f5
@@ -313,7 +313,7 @@ define void @f6(i1 %c) {
313
313
; CHECK-LABEL: 'f6'
314
314
; CHECK-NEXT: Classifying expressions for: @f6
315
315
; CHECK-NEXT: %start = select i1 %c, i32 127, i32 0
316
- ; CHECK-NEXT: --> %start U: [0,128) S: [-128 ,128)
316
+ ; CHECK-NEXT: --> %start U: [0,128) S: [0 ,128)
317
317
; CHECK-NEXT: %step = select i1 %c, i32 -2, i32 0
318
318
; CHECK-NEXT: --> %step U: [0,-1) S: [-2,2)
319
319
; CHECK-NEXT: %loop.iv = phi i16 [ 0, %entry ], [ %loop.iv.inc, %loop ]
@@ -323,9 +323,9 @@ define void @f6(i1 %c) {
323
323
; CHECK-NEXT: %step.plus.one = add i32 %step, 1
324
324
; CHECK-NEXT: --> (1 + %step)<nuw><nsw> U: [1,0) S: [-1,3) Exits: (1 + %step)<nuw><nsw> LoopDispositions: { %loop: Invariant }
325
325
; CHECK-NEXT: %iv.next = add i32 %iv, %step.plus.one
326
- ; CHECK-NEXT: --> {(1 + %step + %start),+,(1 + %step)<nuw><nsw>}<%loop> U: [-256 ,384) S: [-256 ,384) Exits: (128 + (128 * %step)<nsw> + %start) LoopDispositions: { %loop: Computable }
326
+ ; CHECK-NEXT: --> {(1 + %step + %start),+,(1 + %step)<nuw><nsw>}<%loop> U: [-128 ,384) S: [-128 ,384) Exits: (128 + (128 * %step)<nsw> + %start) LoopDispositions: { %loop: Computable }
327
327
; CHECK-NEXT: %iv.sext = sext i32 %iv to i64
328
- ; CHECK-NEXT: --> {(sext i32 %start to i64),+,(1 + (sext i32 %step to i64))<nuw><nsw>}<nsw><%loop> U: [0,128) S: [0,128) Exits: (127 + (sext i32 %start to i64) + (127 * (sext i32 %step to i64))<nsw>) LoopDispositions: { %loop: Computable }
328
+ ; CHECK-NEXT: --> {(zext i32 %start to i64),+,(1 + (sext i32 %step to i64))<nuw><nsw>}<nsw><%loop> U: [0,128) S: [0,128) Exits: (127 + (zext i32 %start to i64) + (127 * (sext i32 %step to i64))<nsw>) LoopDispositions: { %loop: Computable }
329
329
; CHECK-NEXT: %loop.iv.inc = add i16 %loop.iv, 1
330
330
; CHECK-NEXT: --> {1,+,1}<%loop> U: [1,129) S: [1,129) Exits: 128 LoopDispositions: { %loop: Computable }
331
331
; CHECK-NEXT: Determining loop execution counts for: @f6
@@ -359,7 +359,7 @@ define void @f7(i1 %c) {
359
359
; CHECK-LABEL: 'f7'
360
360
; CHECK-NEXT: Classifying expressions for: @f7
361
361
; CHECK-NEXT: %start = select i1 %c, i32 127, i32 0
362
- ; CHECK-NEXT: --> %start U: [0,128) S: [-128 ,128)
362
+ ; CHECK-NEXT: --> %start U: [0,128) S: [0 ,128)
363
363
; CHECK-NEXT: %step = select i1 %c, i32 -1, i32 1
364
364
; CHECK-NEXT: --> %step U: [1,0) S: [-2,2)
365
365
; CHECK-NEXT: %loop.iv = phi i16 [ 0, %entry ], [ %loop.iv.inc, %loop ]
@@ -369,7 +369,7 @@ define void @f7(i1 %c) {
369
369
; CHECK-NEXT: %iv.trunc = trunc i32 %iv to i16
370
370
; CHECK-NEXT: --> {(trunc i32 %start to i16),+,(trunc i32 %step to i16)}<%loop> U: [0,128) S: [0,128) Exits: ((trunc i32 %start to i16) + (127 * (trunc i32 %step to i16))<nsw>) LoopDispositions: { %loop: Computable }
371
371
; CHECK-NEXT: %iv.next = add i32 %iv, %step
372
- ; CHECK-NEXT: --> {(%step + %start),+,%step}<%loop> U: [-384 ,256) S: [-384 ,256) Exits: ((128 * %step)<nsw> + %start) LoopDispositions: { %loop: Computable }
372
+ ; CHECK-NEXT: --> {(%step + %start),+,%step}<%loop> U: [-256 ,256) S: [-256 ,256) Exits: ((128 * %step)<nsw> + %start) LoopDispositions: { %loop: Computable }
373
373
; CHECK-NEXT: %iv.trunc.plus.one = add i16 %iv.trunc, 1
374
374
; CHECK-NEXT: --> {(1 + (trunc i32 %start to i16))<nuw><nsw>,+,(trunc i32 %step to i16)}<%loop> U: [1,129) S: [1,129) Exits: (1 + (trunc i32 %start to i16) + (127 * (trunc i32 %step to i16))<nsw>) LoopDispositions: { %loop: Computable }
375
375
; CHECK-NEXT: %iv.trunc.plus.two = add i16 %iv.trunc, 2
0 commit comments