[llvm] [clang] Remove experimental from Vector Crypto extensions (PR #69000)

2023-12-05 Thread Brandon Wu via cfe-commits

https://github.com/4vtomat closed 
https://github.com/llvm/llvm-project/pull/69000
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[llvm] [clang] Remove experimental from Vector Crypto extensions (PR #69000)

2023-12-05 Thread Brandon Wu via cfe-commits

4vtomat wrote:

moved to the new [one](https://github.com/llvm/llvm-project/pull/74213)

https://github.com/llvm/llvm-project/pull/69000
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[llvm] [clang] Remove experimental from Vector Crypto extensions (PR #69000)

2023-12-02 Thread Eric Biggers via cfe-commits

ebiggers wrote:

No activity here in a few weeks, so I've opened 
https://github.com/llvm/llvm-project/pull/74213 with an updated version of the 
change.

https://github.com/llvm/llvm-project/pull/69000
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[llvm] [clang] Remove experimental from Vector Crypto extensions (PR #69000)

2023-11-21 Thread Eric Biggers via cfe-commits


@@ -141,6 +141,23 @@ on support follow.
  ``Zve64f``   Supported
  ``Zve64d``   Supported
  ``Zvfh`` Supported
+ ``Zvbb`` Supported
+ ``Zvbc`` Supported
+ ``Zvkb`` Supported
+ ``Zvkg`` Supported
+ ``Zvkn`` Supported
+ ``Zvkn`` Supported

ebiggers wrote:

Zvkn is in this list twice

https://github.com/llvm/llvm-project/pull/69000
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[llvm] [clang] Remove experimental from Vector Crypto extensions (PR #69000)

2023-11-21 Thread Eric Biggers via cfe-commits

ebiggers wrote:

FYI, I tried squashing the commits of this pull request and rebasing onto 
`main`, but there are conflicts in several files

https://github.com/llvm/llvm-project/pull/69000
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[llvm] [clang] Remove experimental from Vector Crypto extensions (PR #69000)

2023-11-21 Thread Eric Biggers via cfe-commits

ebiggers wrote:

Hi!  What's the status of this pull request?  Are there any major issues 
remaining?  It would be very useful to have the LLVM assembler officially 
support the vector crypto extensions.  I've been reviewing the [RISC-V vector 
crypto accelerated crypto routines for the Linux 
kernel](https://lore.kernel.org/linux-crypto/20231025183644.8735-1-jerry.s...@sifive.com),
 and currently they're emitting the instructions as bare `.inst`s in order to 
not rely on the assembler, which is quite ugly.  The GNU assembler already 
released the support for this a few months ago, in v2.41.

FYI @JerryShih and @phoebesv

https://github.com/llvm/llvm-project/pull/69000
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[llvm] [clang] Remove experimental from Vector Crypto extensions (PR #69000)

2023-11-09 Thread Craig Topper via cfe-commits

https://github.com/topperc commented:

Do we need to add the "experimental" feature to RISCVFeatures.td? If the 
feature string shows up in the function attributes, won't the backend print 
that it doesn't recognize the feature name when it parses the string?

https://github.com/llvm/llvm-project/pull/69000
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[llvm] [clang] Remove experimental from Vector Crypto extensions (PR #69000)

2023-11-07 Thread Brandon Wu via cfe-commits


@@ -106,6 +106,8 @@ static const RISCVSupportedExtension SupportedExtensions[] 
= {
 
 {"zdinx", RISCVExtensionVersion{1, 0}},
 
+{"zexperimental", RISCVExtensionVersion{1, 0}},
+

4vtomat wrote:

No, we don't~

https://github.com/llvm/llvm-project/pull/69000
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[llvm] [clang] Remove experimental from Vector Crypto extensions (PR #69000)

2023-11-07 Thread Brandon Wu via cfe-commits

4vtomat wrote:

> > Since it's possible that **ISA spec** and **intrinsics spec** are not 
> > synchronized, so the updates add an dummy extension called 
> > **zexperimental**, once `-menable-experimental-extensions` is specified, 
> > the feature `zexperimental` is automatically added.
> > If `let RequiredFeatures = ["Zexperimental"] ` is added in `.td` file, it 
> > will check if `zexperimental` exists, if not, the corresponding intrinsics 
> > would not be added, hence causing an **intrinsics undeclared** error.
> 
> Thanks for looking into this. It's perhaps surprising we've gone so long 
> without having the infrastructure to make an extension non-experimental 
> without making its not-yet-finalized intrinsics non-experimental. Introducing 
> a new required feature seems like a reasonable way of doing this, but 
> introducing a dummy extension seems unnecessary (unless I'm missing 
> something?).
> 
> I could see a solution involving a Clang flag (e.g. 
> `-menable-experimental-intrinsics`), or perhaps a solution where the user 
> must use a certain `#define` (I know riscv_vector.h is implemented using a 
> pragma, but presumably that could still query defines). There may be other 
> options too.
> 
> Another piece of info that would be helpful to better understand is what the 
> process is for finalising intrinsic additions (@eopXD might know?). If it's 
> just the case that we have to wait another month before moving an extension 
> from experimental to experimental then maybe extra infro to separate 
> experimental intrinsics from instructions is less interesting. If it's more 
> indeterminate than that, we probably need it.
> 
> I'll put this on the agenda for Thursday's RISC-V LLVM sync-up call in the 
> hope we can resolve it there.

Yeah, we don't need a new extension actually, thanks for pointing out!

https://github.com/llvm/llvm-project/pull/69000
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[llvm] [clang] Remove experimental from Vector Crypto extensions (PR #69000)

2023-11-07 Thread Alex Bradbury via cfe-commits

asb wrote:

> Since it's possible that **ISA spec** and **intrinsics spec** are not 
> synchronized, so the updates add an dummy extension called **zexperimental**, 
> once `-menable-experimental-extensions` is specified, the feature 
> `zexperimental` is automatically added.
> If `let RequiredFeatures = ["Zexperimental"] ` is added in `.td` file, it 
> will check if `zexperimental` exists, if not, the corresponding intrinsics 
> would not be added, hence causing an **intrinsics undeclared** error.

Thanks for looking into this. It's perhaps surprising we've gone so long 
without having the infrastructure to make an extension non-experimental without 
making its not-yet-finalized intrinsics non-experimental. Introducing a new 
required feature seems like a reasonable way of doing this, but introducing a 
dummy extension seems unnecessary (unless I'm missing something?).

I could see a solution involving a Clang flag (e.g. 
`-menable-experimental-intrinsics`), or perhaps a solution where the user must 
use a certain `#define` (I know riscv_vector.h is implemented using a pragma, 
but presumably that could still query defines). There may be other options too.

Another piece of info that would be helpful to better understand is what the 
process is for finalising intrinsic additions (@eopxd might know?). If it's 
just the case that we have to wait another month before moving an extension 
from experimental to experimental then maybe extra infro to separate 
experimental intrinsics from instructions is less interesting. If it's more 
indeterminate than that, we probably need it.

I'll put this on the agenda for Thursday's RISC-V LLVM sync-up call in the hope 
we can resolve it there.

https://github.com/llvm/llvm-project/pull/69000
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] Remove experimental from Vector Crypto extensions (PR #69000)

2023-10-15 Thread Brandon Wu via cfe-commits

4vtomat wrote:

> Thanks for the patch, some very quick feedback and I'd highlight the first 
> bullet as the most important, as this is potentially a blocker for graduating 
> these extensions from experimental.
> 
> * My big concern with this would be the intrinsics - could you please comment 
> on the status of their standardisation?
> * While doing this change, it would make sense to update the header of 
> RISCVInstrInfoZvk.td. While it doesn't explicitly say it describes an 
> experimental version of the extension, it references 1.0.0-rc1 of the spec 
> while presumably there's now a 1.0.0-final?
> * Please update llvm/docs/RISCVUsage.rst
> * Please add a release note to llvm/docs/ReleaseNotes.rst

Currently I guess we're not finalized yet in 
https://github.com/riscv-non-isa/rvv-intrinsic-doc/pull/234.

> 
> Edit: When committing after review, the commit should be titled something 
> like "[RISCV] Remove experimental from vector crypto extensions".

Oh, thanks, I forgot it~

https://github.com/llvm/llvm-project/pull/69000
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] Remove experimental from Vector Crypto extensions (PR #69000)

2023-10-13 Thread via cfe-commits

github-actions[bot] wrote:




:warning: C/C++ code formatter, clang-format found issues in your code. 
:warning:



You can test this locally with the following command:


``bash
git-clang-format --diff ba79fb2e1ff7130cde02fbbd325f0f96f8a522ca 
521060552794304a5f6b31e38c25ab0a7a0353ff -- clang/lib/Sema/SemaChecking.cpp 
clang/lib/Sema/SemaRISCVVectorLookup.cpp 
clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/non-policy/non-overloaded/vaesdf.c
 
clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/non-policy/non-overloaded/vaesdm.c
 
clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/non-policy/non-overloaded/vaesef.c
 
clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/non-policy/non-overloaded/vaesem.c
 
clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/non-policy/non-overloaded/vaeskf1.c
 
clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/non-policy/non-overloaded/vaeskf2.c
 
clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/non-policy/non-overloaded/vaesz.c
 
clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/non-policy/non-overloaded/vandn.c
 
clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/non-policy/non-overloaded/vbrev.c
 
clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/non-policy/non-overloaded/vbrev8.c
 
clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/non-policy/non-overloaded/vclmul.c
 
clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/non-policy/non-overloaded/vclmulh.c
 
clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/non-policy/non-overloaded/vclz.c
 
clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/non-policy/non-overloaded/vcpopv.c
 
clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/non-policy/non-overloaded/vctz.c
 
clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/non-policy/non-overloaded/vghsh.c
 
clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/non-policy/non-overloaded/vgmul.c
 
clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/non-policy/non-overloaded/vrev8.c
 
clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/non-policy/non-overloaded/vrol.c
 
clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/non-policy/non-overloaded/vror.c
 
clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/non-policy/non-overloaded/vsha2ch.c
 
clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/non-policy/non-overloaded/vsha2cl.c
 
clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/non-policy/non-overloaded/vsha2ms.c
 
clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/non-policy/non-overloaded/vsm3c.c
 
clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/non-policy/non-overloaded/vsm3me.c
 
clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/non-policy/non-overloaded/vsm4k.c
 
clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/non-policy/non-overloaded/vsm4r.c
 
clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/non-policy/non-overloaded/vwsll.c
 
clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/non-policy/overloaded/vaesdf.c
 
clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/non-policy/overloaded/vaesdm.c
 
clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/non-policy/overloaded/vaesef.c
 
clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/non-policy/overloaded/vaesem.c
 
clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/non-policy/overloaded/vaeskf1.c
 
clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/non-policy/overloaded/vaeskf2.c
 
clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/non-policy/overloaded/vaesz.c
 
clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/non-policy/overloaded/vandn.c
 
clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/non-policy/overloaded/vbrev.c
 
clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/non-policy/overloaded/vbrev8.c
 
clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/non-policy/overloaded/vclmul.c
 
clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/non-policy/overloaded/vclmulh.c
 
clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/non-policy/overloaded/vclz.c
 
clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/non-policy/overloaded/vcpopv.c
 
clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/non-policy/overloaded/vctz.c
 
clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/non-policy/overloaded/vghsh.c
 
clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/non-policy/overloaded/vgmul.c
 
clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/non-policy/overloaded/vrev8.c
 
clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/non-policy/overloaded/vrol.c
 
clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/non-policy/overloaded/vror.c
 
clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/non-policy/overloaded/vsha2ch.c
 
clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/non-policy/overloaded/vsha2cl.c
 
clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/non-policy/overloaded/vsha2ms.c
 
clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/non-policy/overloaded/vsm3c.c
 

[clang] Remove experimental from Vector Crypto extensions (PR #69000)

2023-10-13 Thread Alex Bradbury via cfe-commits

asb wrote:

Thanks for the patch, some very quick feedback and I'd highlight the first 
bullet as the most important, as this is potentially a blocker for graduating 
these extensions from experimental.

* My big concern with this would be the intrinsics - could you please comment 
on the status of their standardisation?
* While doing this change, it would make sense to update the header of 
RISCVInstrInfoZvk.td. While it doesn't explicitly say it describes an 
experimental version of the extension, it references 1.0.0-rc1 of the spec 
while presumably there's now a 1.0.0-final?
* Please update llvm/docs/RISCVUsage.rst
* Please add a release note to llvm/docs/ReleaseNotes.rst

https://github.com/llvm/llvm-project/pull/69000
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits