[PATCH] D148073: [SCEV] Improve willNotOverflow by checking min/max in wide range with context

Max Kazantsev via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Apr 12 00:47:22 PDT 2023


mkazantsev added inline comments.


================
Comment at: llvm/test/Analysis/ScalarEvolution/guards.ll:26
 ; CHECK-NEXT:    call void (i1, ...) @llvm.experimental.guard(i1 true) [ "deopt"() ]
-; CHECK-NEXT:    [[IV_INC_CMP:%.*]] = icmp ult i32 [[IV_INC]], [[LEN]]
+; CHECK-NEXT:    [[IV_INC_CMP:%.*]] = icmp slt i32 [[IV_INC]], [[LEN]]
 ; CHECK-NEXT:    call void (i1, ...) @llvm.experimental.guard(i1 [[IV_INC_CMP]]) [ "deopt"() ]
----------------
Arguably regression


================
Comment at: llvm/test/Transforms/IndVarSimplify/elim-extend.ll:141
+; CHECK-NEXT:    [[LFTR_WIDEIV:%.*]] = trunc i64 [[INDVARS_IV_NEXT]] to i32
+; CHECK-NEXT:    [[EXITCOND:%.*]] = icmp ne i32 [[LFTR_WIDEIV]], [[LIMITDEC]]
 ; CHECK-NEXT:    br i1 [[EXITCOND]], label [[INNERLOOP]], label [[INNEREXIT:%.*]]
----------------
Regression, but apparently fix should be in other place.


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D148073/new/

https://reviews.llvm.org/D148073



More information about the llvm-commits mailing list