Supported
Fully supported by the compiler. This includes everything in Assembly Support, along with - if relevant - C language intrinsics for the instructions and pattern matching by the compiler to recognize idiomatic patterns which can be lowered to the associated instructions.
+``Zbkb``, ``Zbkx``
+ Pattern matching support for these instructions is incomplete.
+
+``Zknd``, ``Zkne``, ``Zknh``, ``Zksed``, ``Zksh``
+ No pattern matching exists. As a result, these instructions can only be used from assembler or via intrinsic calls.
+
``Zve32x``, ``Zve32f``, ``Zvl32b``
LLVM currently assumes a minimum VLEN (vector register width) of 64 bits during compilation, and as a result ``Zve32x`` and ``Zve32f`` are supported only for VLEN>=64. Assembly support doesn't have this restriction.
-
Experimental Extensions
=======================
To use an experimental extension from `clang`, you must add `-menable-experimental-extensions` to the command line, and specify the exact version of the experimental extension you are using. To use an experimental extension with LLVM's internal developer tools (e.g. `llc`, `llvm-objdump`, `llvm-mc`), you must prefix the extension name with `experimental-`. Note that you don't need to specify the version with internal tools, and shouldn't include the `experimental-` prefix with `clang`.
-``Zbkb``, ``Zbkx``
- Pattern matching support for these instructions is incomplete.
-
-``Zknd``, ``Zkne``, ``Zknh``, ``Zksed``, ``Zksh``
- No pattern matching exists. As a result, these instructions can only be used from assembler or via intrinsic calls.
-
Specification Documents
=======================
For ratified specifications, please refer to the `official RISC-V International