[llvm] [LV] Rework collectUnitStridePredicates (PR #216362)
Ramkumar Ramachandra via llvm-commits
llvm-commits at lists.llvm.org
Mon Sep 21 01:04:21 PDT 2026
================
@@ -68,20 +68,57 @@ define i64 @predicated_iv_with_liveout(ptr %dst, i64 %n) {
; THRESHOLD0-LABEL: define i64 @predicated_iv_with_liveout(
; THRESHOLD0-SAME: ptr [[DST:%.*]], i64 [[N:%.*]]) {
; THRESHOLD0-NEXT: [[ENTRY:.*]]:
+; THRESHOLD0-NEXT: [[TMP0:%.*]] = call i64 @llvm.smax.i64(i64 [[N]], i64 1)
+; THRESHOLD0-NEXT: [[MIN_ITERS_CHECK:%.*]] = icmp ult i64 [[TMP0]], 4
+; THRESHOLD0-NEXT: br i1 [[MIN_ITERS_CHECK]], label %[[SCALAR_PH:.*]], label %[[VECTOR_SCEVCHECK:.*]]
+; THRESHOLD0: [[VECTOR_SCEVCHECK]]:
+; THRESHOLD0-NEXT: [[SMAX:%.*]] = call i64 @llvm.smax.i64(i64 [[N]], i64 1)
----------------
artagnon wrote:
Ah, found it. It looks the complexity of the predicate is actually zero?
```cpp
unsigned TotalComplexity = PSE.getPredicate().getComplexity();
```
hence, this check fails:
```cpp
if (TotalComplexity > SCEVCheckThreshold) {
```
(confirmed via interactive debugging)
https://github.com/llvm/llvm-project/pull/216362
More information about the llvm-commits
mailing list