Adjust predicates and update intrinsic for clmul and clmulh in Zbkc extension
Details
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
Actually this patch is NOT NFC, you fixed an issue that is: zbkc isn't include cmul and clmulh.
So I would suggest you:
- Remove NFC from the title.
- Add test case to test cmul and clmulh is available for zbkc after this patch.
- Add IR tests for clmul and clmulh in zbkc extension.
- Updating BuiltinsRISCV.def, I rename "builtinriscvclmul" to "builtin_riscv_clmul_kc" in zbkc extension, because cannot share same name "builtinriscv_clmul" in zbc and zbkc extension.
- Add C tests for clmul and clmulh in zbkc extension
I update BuiltinsRISCV.def and add "__builtin_riscv_clmul_kc" intrinsic for zbkc extension, but I am not sure if the name is appropriate.
llvm/include/llvm/IR/IntrinsicsRISCV.td | ||
---|---|---|
91 | Add spaces around “or” |
clang Zbkc patch: https://reviews.llvm.org/D112774, If there are any mistakes, you can help to point them out
https://github.com/rvkrypto/rvkrypto-fips/blob/main/rvkintrin.md
Is the name as __builtin_riscv_clmul_32 or __builtin_riscv_clmul_64 better for conflict resolution?
Hi, Jimerlife
it is a great work to implement the intrinsic of zbkb.
however, I don't know whether you have noticed that there is already to patch https://reviews.llvm.org/D112774 and https://reviews.llvm.org/D102310.
these two patches have included almost all the work you did in your patch.
I think we should better avoid overlap as much as possible.
therefore, could you please comment on the difference between these two patches as you see it?
let's focus on only one version.
I strongly suggest you to join the bi-weekly LLVM RISC-V meetings to discuss with us if possible. Almost all contributors on RISC-V backend would attend.
The builtins for clmul have been in for months without _32 or _64 since they operate on the "long" data type.
After D117854, it should be possible to use