[llvm] [LAA] Rework getStrideFromPointer, speculate more (PR #212816)
Ramkumar Ramachandra via llvm-commits
llvm-commits at lists.llvm.org
Mon Aug 3 06:04:06 PDT 2026
================
@@ -225,8 +226,19 @@ define void @test_versioned_with_different_uses(i32 %offset, ptr noalias %dst.1,
; CHECK: inner.loop.preheader:
; CHECK-NEXT: br label [[VECTOR_SCEVCHECK:%.*]]
; CHECK: vector.scevcheck:
+; CHECK-NEXT: [[TMP1:%.*]] = icmp slt i32 [[OFFSET]], 0
+; CHECK-NEXT: [[TMP2:%.*]] = select i1 [[TMP1]], i32 [[TMP0]], i32 [[OFFSET]]
+; CHECK-NEXT: [[MUL:%.*]] = call { i32, i1 } @llvm.umul.with.overflow.i32(i32 [[TMP2]], i32 200)
----------------
artagnon wrote:
Right, should be fixed by https://github.com/llvm/llvm-project/pull/213662 -- the LAA output is identical, and the issue is stray predicates being added by LVL.
https://github.com/llvm/llvm-project/pull/212816
More information about the llvm-commits
mailing list