@@ -61,6 +61,9 @@ define void @nw_implies_nsw(i16 %n) mustprogress {
61
61
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is (128 + (-128 smax %n))
62
62
; CHECK-NEXT: Predicates:
63
63
; CHECK-NEXT: {-128,+,1}<%for.body> Added Flags: <nssw>
64
+ ; CHECK-NEXT: Loop %for.body: Predicated symbolic max backedge-taken count is (128 + (-128 smax %n))
65
+ ; CHECK-NEXT: Predicates:
66
+ ; CHECK-NEXT: {-128,+,1}<%for.body> Added Flags: <nssw>
64
67
;
65
68
entry:
66
69
br label %for.body
@@ -107,6 +110,9 @@ define void @actually_infinite() {
107
110
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is i16 257
108
111
; CHECK-NEXT: Predicates:
109
112
; CHECK-NEXT: {0,+,1}<%for.body> Added Flags: <nusw>
113
+ ; CHECK-NEXT: Loop %for.body: Predicated symbolic max backedge-taken count is i16 257
114
+ ; CHECK-NEXT: Predicates:
115
+ ; CHECK-NEXT: {0,+,1}<%for.body> Added Flags: <nusw>
110
116
;
111
117
entry:
112
118
br label %for.body
@@ -132,6 +138,9 @@ define void @rhs_mustexit_1(i16 %n.raw) mustprogress {
132
138
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is (-1 + (1 umax (-1 + (zext i8 (trunc i16 %n.raw to i8) to i16))<nsw>))
133
139
; CHECK-NEXT: Predicates:
134
140
; CHECK-NEXT: {1,+,1}<nw><%for.body> Added Flags: <nusw>
141
+ ; CHECK-NEXT: Loop %for.body: Predicated symbolic max backedge-taken count is (-1 + (1 umax (-1 + (zext i8 (trunc i16 %n.raw to i8) to i16))<nsw>))
142
+ ; CHECK-NEXT: Predicates:
143
+ ; CHECK-NEXT: {1,+,1}<nw><%for.body> Added Flags: <nusw>
135
144
;
136
145
entry:
137
146
%n.and = and i16 %n.raw , 255
@@ -233,6 +242,9 @@ define void @neg_rhs_wrong_range(i16 %n.raw) mustprogress {
233
242
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is ((-1 + (2 umax (-1 + (zext i8 (trunc i16 %n.raw to i8) to i16))<nsw>)) /u 2)
234
243
; CHECK-NEXT: Predicates:
235
244
; CHECK-NEXT: {2,+,2}<nw><%for.body> Added Flags: <nusw>
245
+ ; CHECK-NEXT: Loop %for.body: Predicated symbolic max backedge-taken count is ((-1 + (2 umax (-1 + (zext i8 (trunc i16 %n.raw to i8) to i16))<nsw>)) /u 2)
246
+ ; CHECK-NEXT: Predicates:
247
+ ; CHECK-NEXT: {2,+,2}<nw><%for.body> Added Flags: <nusw>
236
248
;
237
249
entry:
238
250
%n.and = and i16 %n.raw , 255
@@ -260,6 +272,9 @@ define void @neg_rhs_maybe_infinite(i16 %n.raw) {
260
272
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is (-1 + (1 umax (-1 + (zext i8 (trunc i16 %n.raw to i8) to i16))<nsw>))
261
273
; CHECK-NEXT: Predicates:
262
274
; CHECK-NEXT: {1,+,1}<%for.body> Added Flags: <nusw>
275
+ ; CHECK-NEXT: Loop %for.body: Predicated symbolic max backedge-taken count is (-1 + (1 umax (-1 + (zext i8 (trunc i16 %n.raw to i8) to i16))<nsw>))
276
+ ; CHECK-NEXT: Predicates:
277
+ ; CHECK-NEXT: {1,+,1}<%for.body> Added Flags: <nusw>
263
278
;
264
279
entry:
265
280
%n.and = and i16 %n.raw , 255
@@ -382,6 +397,9 @@ define void @ult_constant_rhs_stride2_neg(i16 %n.raw, i8 %start) {
382
397
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is ((256 + (-1 * (zext i8 (2 + %start) to i16))<nsw>)<nsw> /u 2)
383
398
; CHECK-NEXT: Predicates:
384
399
; CHECK-NEXT: {(2 + %start),+,2}<%for.body> Added Flags: <nusw>
400
+ ; CHECK-NEXT: Loop %for.body: Predicated symbolic max backedge-taken count is ((256 + (-1 * (zext i8 (2 + %start) to i16))<nsw>)<nsw> /u 2)
401
+ ; CHECK-NEXT: Predicates:
402
+ ; CHECK-NEXT: {(2 + %start),+,2}<%for.body> Added Flags: <nusw>
385
403
;
386
404
entry:
387
405
br label %for.body
0 commit comments