[llvm] [LAA] Don't require Stride == 1/-1 for inbounds pointer AddRecs nowrap. (PR #113126)

Florian Hahn via llvm-commits llvm-commits at lists.llvm.org
Mon Nov 4 11:20:56 PST 2024


================
@@ -286,55 +286,58 @@ define void @gather_nxv4i32_ind64_stride2(ptr noalias nocapture %a, ptr noalias
 ; CHECK-NEXT:  entry:
 ; CHECK-NEXT:    [[TMP0:%.*]] = call i64 @llvm.vscale.i64()
 ; CHECK-NEXT:    [[TMP1:%.*]] = shl nuw nsw i64 [[TMP0]], 3
-; CHECK-NEXT:    [[MIN_ITERS_CHECK:%.*]] = icmp ult i64 [[N:%.*]], [[TMP1]]
+; CHECK-NEXT:    [[MIN_ITERS_CHECK:%.*]] = icmp ugt i64 [[N:%.*]], [[TMP1]]
----------------
fhahn wrote:

I double checked what's going on and the successors of the block have been swapped, but the names for the patterns for the blocks haven't been updated automatically (only where they have been used). Updated the pattern names. There's still a change from `ult` to `ule`, which is due to us now vectorizing with interleave groups, which requires the scalar epilogue to execute at least once.

https://github.com/llvm/llvm-project/pull/113126


More information about the llvm-commits mailing list