[llvm] [polly] [SCEV] Use SCEVPtrToAddr instead of SCEVPtrToInt in SCEV. (PR #180244)
Florian Hahn via llvm-commits
llvm-commits at lists.llvm.org
Thu Jul 23 02:28:35 PDT 2026
================
@@ -8,33 +8,45 @@ declare void @llvm.memmove.p0.p0.i64(ptr writeonly captures(none), ptr readonly
define void @redundant_int_iv(ptr %first) {
; CHECK-LABEL: define void @redundant_int_iv(
-; CHECK-SAME: ptr [[FIRST:%.*]]) local_unnamed_addr #[[ATTR0:[0-9]+]] {
+; CHECK-SAME: ptr [[FIRST:%.*]]) local_unnamed_addr #[[ATTR1:[0-9]+]] {
; CHECK-NEXT: [[ENTRY:.*]]:
; CHECK-NEXT: [[PTR_INT1:%.*]] = ptrtoint ptr [[FIRST]] to i64
; CHECK-NEXT: [[OFF2:%.*]] = add i64 [[PTR_INT1]], 1
; CHECK-NEXT: [[EC_OUTER3:%.*]] = icmp slt i64 [[OFF2]], 0
; CHECK-NEXT: br i1 [[EC_OUTER3]], label %[[INNER_PH:.*]], label %[[EXIT:.*]]
; CHECK: [[INNER_PH]]:
+; CHECK-NEXT: [[PTR_INT5:%.*]] = phi i64 [ [[PTR_INT:%.*]], %[[INNER_PH]] ], [ [[PTR_INT1]], %[[ENTRY]] ]
; CHECK-NEXT: [[PTR_IV4:%.*]] = phi ptr [ [[LAST:%.*]], %[[INNER_PH]] ], [ [[FIRST]], %[[ENTRY]] ]
; CHECK-NEXT: [[LAST]] = getelementptr i8, ptr [[PTR_IV4]], i64 7
; CHECK-NEXT: [[CUR_NEXT:%.*]] = getelementptr i8, ptr [[PTR_IV4]], i64 1
-; CHECK-NEXT: [[TMP0:%.*]] = load i8, ptr [[PTR_IV4]], align 1
-; CHECK-NEXT: store i8 [[TMP0]], ptr [[CUR_NEXT]], align 1
+; CHECK-NEXT: [[CUR_INT:%.*]] = ptrtoint ptr [[CUR_NEXT]] to i64
----------------
fhahn wrote:
this is a reduced version of the biggest regression in `stockfish/tbprobe __merge_sort_with_buffer` from https://github.com/dtcxzyw/llvm-opt-benchmark-nightly/pull/734
https://github.com/llvm/llvm-project/pull/180244
More information about the llvm-commits
mailing list