@@ -29,14 +29,16 @@ define void @f1(ptr noalias %a,
2929; LV-LABEL: @f1(
3030; LV-NEXT: for.body.lver.check:
3131; LV-NEXT: [[TMP0:%.*]] = add i64 [[N:%.*]], -1
32+ ; LV-NEXT: [[TMP1:%.*]] = icmp ugt i64 [[TMP0]], 4294967295
3233; LV-NEXT: [[MUL1:%.*]] = call { i64, i1 } @llvm.umul.with.overflow.i64(i64 4, i64 [[TMP0]])
3334; LV-NEXT: [[MUL_RESULT:%.*]] = extractvalue { i64, i1 } [[MUL1]], 0
3435; LV-NEXT: [[MUL_OVERFLOW:%.*]] = extractvalue { i64, i1 } [[MUL1]], 1
3536; LV-NEXT: [[TMP2:%.*]] = sub i64 0, [[MUL_RESULT]]
3637; LV-NEXT: [[TMP3:%.*]] = getelementptr i8, ptr [[A:%.*]], i64 [[MUL_RESULT]]
3738; LV-NEXT: [[TMP4:%.*]] = icmp ult ptr [[TMP3]], [[A]]
3839; LV-NEXT: [[TMP6:%.*]] = or i1 [[TMP4]], [[MUL_OVERFLOW]]
39- ; LV-NEXT: br i1 [[TMP6]], label [[FOR_BODY_PH_LVER_ORIG:%.*]], label [[FOR_BODY_PH:%.*]]
40+ ; LV-NEXT: [[TMP7:%.*]] = or i1 [[TMP1]], [[TMP6]]
41+ ; LV-NEXT: br i1 [[TMP7]], label [[FOR_BODY_PH_LVER_ORIG:%.*]], label [[FOR_BODY_PH:%.*]]
4042; LV: for.body.ph.lver.orig:
4143; LV-NEXT: br label [[FOR_BODY_LVER_ORIG:%.*]]
4244; LV: for.body.lver.orig:
0 commit comments