[docs][RISCV] Document status of Zicpo(m,p,z) extensions
authorPhilip Reames <preames@rivosinc.com>
Tue, 6 Sep 2022 20:35:39 +0000 (13:35 -0700)
committerPhilip Reames <listmail@philipreames.com>
Tue, 6 Sep 2022 20:36:35 +0000 (13:36 -0700)
Unless I missed something when checking, we only support these in assembly. Given that, documenting them is a good opportunity to define support levels which will be useful for other extensions as well.

Differential Revision: https://reviews.llvm.org/D133372

llvm/docs/RISCVUsage.rst

index 236152b..df198c9 100644 (file)
@@ -57,6 +57,9 @@ on support follow.
      ``Zbb``        Supported
      ``Zbc``        Supported
      ``Zbs``        Supported
+     ``Zicbom``     Assembly Support
+     ``Zicbop``     Assembly Support
+     ``Zicboz``     Assembly Support
      ``Zve32x``     Partially Supported
      ``Zve32f``     Partially Supported
      ``Zve64x``     Supported
@@ -76,8 +79,15 @@ on support follow.
      ``Zvl65536b``  Supported
      =============  ========================
 
+Assembly Support
+  LLVM supports the associated instructions in assembly.  All assembly related tools (e.g. assembler, disassembler, llvm-objdump, etc..) are supported.  Compiler and linker will accept extension names, and linked binaries will contain appropriate ELF flags and attributes to reflect use of named extension.
+
+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.
+
 ``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 tools (e.g. assembler, disassembler, llvm-objdump, etc..) don't have this restriction.
+  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.
+
 
 Specification Documents
 =======================