[llvm] [VP][RISCV] Add vp.cttz.elts intrinsic and its RISC-V codegen (PR #90502)

Craig Topper via llvm-commits llvm-commits at lists.llvm.org
Mon Apr 29 12:59:17 PDT 2024


topperc wrote:

> > > I wish I could test the expansion logics (i.e. fallback) for this intrinsics but `vfirst` is in every RVV extensions and AArch64 doesn't really support the combination of VP intrinsics + scalable vectors.
> > 
> > 
> > Can you test it with fixed vectors on another target?
> 
> I tried with something like
> 
> ```
> define i32 @fixed_v4i32(<4 x i32> %src, <4 x i1> %m, i32 %evl) {
>    %r = call i32 @llvm.vp.cttz.elts.i32.v4i32(<4 x i32> %src, i1 0, <4 x i1> %m, i32 %evl)
>    ret i32 %r
> }
> ```
> 
> With AArch64 (both with and without SVE). And it failed during type legalization when it tried to promote EVL from i32 to i64, which I thought the legalizer is not suppose to try. I'm not sure if I'm missing any flags

Are you sure its failing on the EVL and not the i1 mask?

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


More information about the llvm-commits mailing list