Re: [PATCH] RISC-V: Documnet the list of supported extensions
Hi Bernhard: Thanks for such careful review! V2 send :) On Tue, Jan 16, 2024 at 4:08 AM Bernhard Reutner-Fischer wrote: > > Hi Kito! > > On Thu, 11 Jan 2024 17:06:09 +0800 > Kito Cheng wrote: > > > Try to list all supported extensions: name, version and few description > > for each extension. > > > > gcc/ChangeLog: > > > > * doc/invoke.texi (RISC-V Options): Add list of supported > > extensions. > > --- > > gcc/doc/invoke.texi | 463 > > 1 file changed, 463 insertions(+) > > > > diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi > > index 68d1f364ac0..58271f2f28e 100644 > > --- a/gcc/doc/invoke.texi > > +++ b/gcc/doc/invoke.texi > > @@ -30037,6 +30037,469 @@ Generate code for given RISC-V ISA (e.g.@: > > @samp{rv64im}). ISA strings must be > > lower-case. Examples include @samp{rv64i}, @samp{rv32g}, @samp{rv32e}, and > > @samp{rv32imaf}. > > > > +Supported extension are list below: > > are listed > > > +@multitable @columnfractions .10 .10 .80 > > +@headitem Extension Name @tab Supported Version @tab Description > > +@item i > > +@tab 2.0, 2.1 > > +@tab Base integer extension. > > + > > +@item e > > +@tab 2.0 > > +@tab Reduced base integer extension. > > + > > +@item g > > +@tab - > > +@tab General-purpose computing base extension, @samp{g} will expand to > > +@samp{i}, @samp{m}, @samp{a}, @samp{f}, @samp{d}, @samp{zicsr} and > > +@samp{zifencei}. > > + > > +@item m > > +@tab 2.0 > > +@tab Integer multiplication and division extension. > > + > > +@item a > > +@tab 2.0, 2.1 > > +@tab Atomic extension. > > + > > +@item f > > +@tab 2.0, 2.2 > > +@tab Single-precision floating-point extension. > > + > > +@item d > > +@tab 2.0, 2.2 > > +@tab Double-precision floating-point extension. > > + > > +@item c > > +@tab 2.0 > > +@tab Compressed extension. > > + > > +@item h > > +@tab 1.0 > > +@tab Hypervisor extension. > > + > > +@item v > > +@tab 1.0 > > +@tab Vector extension. > > + > > +@item zicsr > > +@tab 2.0 > > +@tab Control and status register access extension. > > + > > +@item zifencei > > +@tab 2.0 > > +@tab Instruction-fetch fence extension. > > + > > +@item zicond > > +@tab 1.0 > > +@tab Integer conditional operations extension. > > + > > +@item zawrs > > +@tab 1.0 > > +@tab Wait-on-reservation-set extension. > > + > > +@item zba > > +@tab 1.0 > > +@tab Address calculation extension. > > + > > +@item zbb > > +@tab 1.0 > > +@tab Basic bit manipulation extension. > > + > > +@item zbc > > +@tab 1.0 > > +@tab Carry-less multiplication extension. > > + > > +@item zbs > > +@tab 1.0 > > +@tab Single-bit operation extension. > > + > > +@item zfinx > > +@tab 1.0 > > +@tab Single-precision floating-ioint in integer registers extension. > > s/ioint/point/g > above and below. > > > + > > +@item zdinx > > +@tab 1.0 > > +@tab Double-precision floating-ioint in integer registers extension. > > + > > +@item zhinx > > +@tab 1.0 > > +@tab Half-precision floating-ioint in integer registers extension. > > + > > +@item zhinxmin > > +@tab 1.0 > > +@tab Minimal half-precision floating-ioint in integer registers extension. > > + > > +@item zbkb > > +@tab 1.0 > > +@tab Cryptography bit-manipulation extension. > > + > > +@item zbkc > > +@tab 1.0 > > +@tab Cryptography carry-less multiply extension. > > + > > +@item zbkx > > +@tab 1.0 > > +@tab Cryptography crossbar permutation extension. > > + > > +@item zkne > > +@tab 1.0 > > +@tab AES Encryption extension. > > + > > +@item zknd > > +@tab 1.0 > > +@tab AES Decryption extension. > > + > > +@item zknh > > +@tab 1.0 > > +@tab Hash function extension. > > + > > +@item zkr > > +@tab 1.0 > > +@tab Entropy source extension. > > + > > +@item zksed > > +@tab 1.0 > > +@tab SM4 block cipher extension. > > + > > +@item zksh > > +@tab 1.0 > > +@tab SM3 hash function extension. > > + > > +@item zkt > > +@tab 1.0 > > +@tab Data independent execution latency extension. > > + > > +@item zk > > +@tab 1.0 > > +@tab Standard scalar cryptography extension. > > + > > +@item zkn > > +@tab 1.0 > > +@tab NIST algorithm suite extension. > > For @item g you document which extensions this will expand to, do you > want to list the expansions here, too? > > ISTM that > https://riscv.org/blog/2021/09/risc-v-cryptography-extensions-task-group-announces-public-review-of-the-scalar-cryptography-extensions/ > lists > Zkn – NIST Algorithm Suite (shorthand for Zknd_Zkne_Zknh_Zbkb_Zbkc_Zbkx) > Zks – ShangMi Algorithm Suite (shorthand for Zksed_Zksh_Zbkb_Zbkc_Zbkx) > Zk – Standard scalar cryptography extension (shorthand for Zkn_Zkt_Zkr) > > > + > > +@item zks > > +@tab 1.0 > > +@tab ShangMi algorithm suite extension. > > + > > +@item zihintntl > > +@tab 1.0 > > +@tab Non-temporal locality hints extension. > > + > > +@item zihintpause > > +@tab 1.0 > > +@tab Pause hint extension. > > + > > +@item zicboz > > +@tab 1.0 > > +@tab Cache-block zero extension. > > + > > +@item zicbom > > +@tab 1.0 > > +@tab Cache-block management extension. > > + > >
Re: [PATCH] RISC-V: Documnet the list of supported extensions
Hi Kito! On Thu, 11 Jan 2024 17:06:09 +0800 Kito Cheng wrote: > Try to list all supported extensions: name, version and few description > for each extension. > > gcc/ChangeLog: > > * doc/invoke.texi (RISC-V Options): Add list of supported > extensions. > --- > gcc/doc/invoke.texi | 463 > 1 file changed, 463 insertions(+) > > diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi > index 68d1f364ac0..58271f2f28e 100644 > --- a/gcc/doc/invoke.texi > +++ b/gcc/doc/invoke.texi > @@ -30037,6 +30037,469 @@ Generate code for given RISC-V ISA (e.g.@: > @samp{rv64im}). ISA strings must be > lower-case. Examples include @samp{rv64i}, @samp{rv32g}, @samp{rv32e}, and > @samp{rv32imaf}. > > +Supported extension are list below: are listed > +@multitable @columnfractions .10 .10 .80 > +@headitem Extension Name @tab Supported Version @tab Description > +@item i > +@tab 2.0, 2.1 > +@tab Base integer extension. > + > +@item e > +@tab 2.0 > +@tab Reduced base integer extension. > + > +@item g > +@tab - > +@tab General-purpose computing base extension, @samp{g} will expand to > +@samp{i}, @samp{m}, @samp{a}, @samp{f}, @samp{d}, @samp{zicsr} and > +@samp{zifencei}. > + > +@item m > +@tab 2.0 > +@tab Integer multiplication and division extension. > + > +@item a > +@tab 2.0, 2.1 > +@tab Atomic extension. > + > +@item f > +@tab 2.0, 2.2 > +@tab Single-precision floating-point extension. > + > +@item d > +@tab 2.0, 2.2 > +@tab Double-precision floating-point extension. > + > +@item c > +@tab 2.0 > +@tab Compressed extension. > + > +@item h > +@tab 1.0 > +@tab Hypervisor extension. > + > +@item v > +@tab 1.0 > +@tab Vector extension. > + > +@item zicsr > +@tab 2.0 > +@tab Control and status register access extension. > + > +@item zifencei > +@tab 2.0 > +@tab Instruction-fetch fence extension. > + > +@item zicond > +@tab 1.0 > +@tab Integer conditional operations extension. > + > +@item zawrs > +@tab 1.0 > +@tab Wait-on-reservation-set extension. > + > +@item zba > +@tab 1.0 > +@tab Address calculation extension. > + > +@item zbb > +@tab 1.0 > +@tab Basic bit manipulation extension. > + > +@item zbc > +@tab 1.0 > +@tab Carry-less multiplication extension. > + > +@item zbs > +@tab 1.0 > +@tab Single-bit operation extension. > + > +@item zfinx > +@tab 1.0 > +@tab Single-precision floating-ioint in integer registers extension. s/ioint/point/g above and below. > + > +@item zdinx > +@tab 1.0 > +@tab Double-precision floating-ioint in integer registers extension. > + > +@item zhinx > +@tab 1.0 > +@tab Half-precision floating-ioint in integer registers extension. > + > +@item zhinxmin > +@tab 1.0 > +@tab Minimal half-precision floating-ioint in integer registers extension. > + > +@item zbkb > +@tab 1.0 > +@tab Cryptography bit-manipulation extension. > + > +@item zbkc > +@tab 1.0 > +@tab Cryptography carry-less multiply extension. > + > +@item zbkx > +@tab 1.0 > +@tab Cryptography crossbar permutation extension. > + > +@item zkne > +@tab 1.0 > +@tab AES Encryption extension. > + > +@item zknd > +@tab 1.0 > +@tab AES Decryption extension. > + > +@item zknh > +@tab 1.0 > +@tab Hash function extension. > + > +@item zkr > +@tab 1.0 > +@tab Entropy source extension. > + > +@item zksed > +@tab 1.0 > +@tab SM4 block cipher extension. > + > +@item zksh > +@tab 1.0 > +@tab SM3 hash function extension. > + > +@item zkt > +@tab 1.0 > +@tab Data independent execution latency extension. > + > +@item zk > +@tab 1.0 > +@tab Standard scalar cryptography extension. > + > +@item zkn > +@tab 1.0 > +@tab NIST algorithm suite extension. For @item g you document which extensions this will expand to, do you want to list the expansions here, too? ISTM that https://riscv.org/blog/2021/09/risc-v-cryptography-extensions-task-group-announces-public-review-of-the-scalar-cryptography-extensions/ lists Zkn – NIST Algorithm Suite (shorthand for Zknd_Zkne_Zknh_Zbkb_Zbkc_Zbkx) Zks – ShangMi Algorithm Suite (shorthand for Zksed_Zksh_Zbkb_Zbkc_Zbkx) Zk – Standard scalar cryptography extension (shorthand for Zkn_Zkt_Zkr) > + > +@item zks > +@tab 1.0 > +@tab ShangMi algorithm suite extension. > + > +@item zihintntl > +@tab 1.0 > +@tab Non-temporal locality hints extension. > + > +@item zihintpause > +@tab 1.0 > +@tab Pause hint extension. > + > +@item zicboz > +@tab 1.0 > +@tab Cache-block zero extension. > + > +@item zicbom > +@tab 1.0 > +@tab Cache-block management extension. > + > +@item zicbop > +@tab 1.0 > +@tab Cache-block prefetch extension. > + > +@item ztso > +@tab 1.0 > +@tab Total store ordering extension. > + > +@item zve32x > +@tab 1.0 > +@tab Vector extensions for embedded processors. > + > +@item zve32f > +@tab 1.0 > +@tab Vector extensions for embedded processors. > + > +@item zve64x > +@tab 1.0 > +@tab Vector extensions for embedded processors. > + > +@item zve64f > +@tab 1.0 > +@tab Vector extensions for embedded processors. > + > +@item zve64d > +@tab 1.0 > +@tab Vector