[llvm] [LV] Don't consider VPValues without underlying value as generating vectors (PR #150992)
David Sherwood via llvm-commits
llvm-commits at lists.llvm.org
Tue Jul 29 01:37:58 PDT 2025
================
@@ -790,65 +790,16 @@ define void @exit_cond_zext_iv(ptr %dst, i64 %N) {
; PRED-LABEL: define void @exit_cond_zext_iv(
; PRED-SAME: ptr [[DST:%.*]], i64 [[N:%.*]]) {
; PRED-NEXT: [[ENTRY:.*]]:
-; PRED-NEXT: [[UMAX1:%.*]] = call i64 @llvm.umax.i64(i64 [[N]], i64 1)
----------------
david-arm wrote:
Looks like @fhahn add this test to gain coverage of loops with casted indices. See 6084dcbfce6a54f6cb88e40ef490e0dd25984f81. Presumably the reason we're not vectorising this loop any more is because for fixed-width vectors there are no vector operations (because the store is scalarised?) and for scalable vectors the cost is too high. It would be good if you could rewrite this test to avoid having to use scatter instructions in the loop, i.e. by modifying this
```
%gep = getelementptr {[100 x i32], i32, i32}, ptr %dst, i64 %iv.conv, i32 2
```
so that we're doing contiguous stores. Then you'll presumably need to add a new dedicated test to demonstrate the effect of the code change in this PR.
https://github.com/llvm/llvm-project/pull/150992
More information about the llvm-commits
mailing list