[PATCH] D108694: [RISCV] Add the zvl extension according to the v1.0-rc1 spec

Hsiangkai Wang via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Aug 26 01:09:16 PDT 2021


HsiangKai added a comment.

In D108694#2966553 <https://reviews.llvm.org/D108694#2966553>, @craig.topper wrote:

> I think we need to visit some larger aspects of our vector implementation. Here are some thoughts.
>
> -Most uses of Subtarget.hasStdExtV() don't really mean what the spec calls the standard V extension. They just means that we have vector instructions. Could be V, could be one of the Zve32* or Zve64* extensions.
> -V extension passed to -march should imply at least Zvl128b.
> -V extension passed to -march should enable F and D.
> -Does Zvl32b passed to march enable vector instructions? Or do we still need Zve32* or Zve64* or V?
> -If Zvl32b is in effect the i64 and f64 RVV intrinsics need to be disabled.

We need to apply the constraints of Zve* to intrinsics/pseudo instructions. I am not sure what is the behavior if users specify V and Zve* at the same time? I think Zve* is more complicated. We could prepare another patch for it.

Could we support Zvl32b? We already have an implicit constraint of vlen >= 64 from our VLA types, right?


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D108694/new/

https://reviews.llvm.org/D108694



More information about the llvm-commits mailing list