[clang] [llvm] [RISCV][LLVM][Clang] Add experimental `Zvvm` config intrinsics (PR #203774)

via cfe-commits cfe-commits at lists.llvm.org
Mon Jun 15 21:21:01 PDT 2026


imkiva wrote:

> Is this the API we want?  This looks very similar to rounding modes (see https://reviews.llvm.org/D113439 / https://reviews.llvm.org/D121376 / etc.)



Thanks, this is the right precedent to look at. I agree using arbitrary
stateful IR to model the semantics of future matrix operations would not be the
right long-term direction, similar to the VXRM discussion.

My intent in this PR is narrower: these intrinsics implement the spec-defined C
configuration/query API. In particular, `llvm.riscv.ime.vsetlambda.nonzero` is
only a backend primitive for the nonzero arm of `__riscv_vsetlambda`; Clang
emits a separate `readlambda` path for `requested_lambda == 0`, because that
case is a read-only query.

For future IME matrix operation intrinsics/codegen, I agree we should not rely
on a hidden selected-lambda IR state. Those operations should carry the required
IME configuration, such as lambda/altfmt/bs, explicitly on the intrinsic or
pseudo, and a target pass should materialize/coalesce the corresponding vtype
high-field updates, analogous to the VXRM rounding-mode model.

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


More information about the cfe-commits mailing list