Lines Matching refs:IV
9 ; Consider range check of type i16 and i32, while IV is of type i64
10 ; We can loop predicate this because the IV range is within i16 and within i32.
27 ; CHECK-NEXT: [[IV:%.*]] = phi i64 [ 0, [[ENTRY:%.*]] ], [ [[IV_NEXT:%.*]], [[LOOP]] ]
28 ; CHECK-NEXT: [[IV_TRUNC_32:%.*]] = trunc i64 [[IV]] to i32
29 ; CHECK-NEXT: [[IV_TRUNC_16:%.*]] = trunc i64 [[IV]] to i16
39 ; CHECK-NEXT: [[IV_NEXT]] = add nuw nsw i64 [[IV]], 1
43 ; CHECK-NEXT: [[IV_LCSSA:%.*]] = phi i64 [ [[IV]], [[LOOP]] ]
76 ; Consider an IV of type long and an array access into int array.
77 ; IV is of type i64 while the range check operands are of type i32 and i64.
101 ; CHECK-NEXT: [[IV:%.*]] = phi i64 [ 0, [[ENTRY:%.*]] ], [ [[IV_NEXT:%.*]], [[LOOP]] ]
102 ; CHECK-NEXT: [[IV_TRUNC:%.*]] = trunc i64 [[IV]] to i32
114 ; CHECK-NEXT: [[IV_NEXT]] = add nuw nsw i64 [[IV]], 1
115 ; CHECK-NEXT: [[LATCH_CHECK:%.*]] = icmp ult i64 [[IV]], 15
118 ; CHECK-NEXT: [[IV_LCSSA:%.*]] = phi i64 [ [[IV]], [[LOOP]] ]
154 ; cannot narrow the IV to the range type, because we lose information.
163 ; CHECK-NEXT: [[IV:%.*]] = phi i64 [ 5, [[ENTRY:%.*]] ], [ [[IV_NEXT:%.*]], [[LOOP]] ]
164 ; CHECK-NEXT: [[IV_TRUNC_32:%.*]] = trunc i64 [[IV]] to i32
173 ; CHECK-NEXT: [[IV_NEXT]] = add i64 [[IV]], 1
177 ; CHECK-NEXT: [[IV_LCSSA:%.*]] = phi i64 [ [[IV]], [[LOOP]] ]