Similiar to D143951. These intrinsics have been added in clang/Basic/BuiltinsRISCV.def.
Details
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
flang/lib/Optimizer/Builder/IntrinsicCall.cpp | ||
---|---|---|
562 | FYI there is a patch open: https://reviews.llvm.org/D151812 that replaces all of these static mlir::FunctionType generators with a single generic function.. If this patch lands first I will rebase the other patch to replace genIntIntFuncType. Are you ok with rebasing this patch if the other patch lands first? |
flang/lib/Optimizer/Builder/IntrinsicCall.cpp | ||
---|---|---|
562 | Thank you for the reminder! I will rebase this patch according to the situation. |
flang/lib/Optimizer/Builder/IntrinsicCall.cpp | ||
---|---|---|
1019 | As another FYI, we plan on moving all our PowerPC-specific code out of IntrinsicCall.cpp/.h after the function type generator patch lands (https://reviews.llvm.org/D151812). There is no review yet for this planned patch since we are waiting for the function type generator patch to land first as a dependency. I expect that RISCV may be interested in a similar approach (in a future patch) to help with keeping standard intrinsics separate from intrinsic extensions. The basic structure of this future patch is new PPCIntrinsicCall.cpp/.h files that define a struct PPCIntrinsicLibrary : public IntrinsicLibrary that contains the generator functions for PPC-specific intrinsics and we moved the definitions of ppcHandlers, ppcMathOperations to PPCIntrinsicCall.h I will try to remember to link the patch here when its created if this patch is still open |
flang/lib/Optimizer/Builder/IntrinsicCall.cpp | ||
---|---|---|
1019 | Based on your information, I will wait for the PPC-related intrinsics land before modifying the RISCV-related intrinsics. Thank you very much for your contribution in this regard, especially in relation to vector-related aspects, which has been of great help to RISC-V. |
Does anything prevent the use of i64 intrinsics on RV32? The RISC-V backend does not have support for that.
flang/lib/Optimizer/Builder/RISCVIntrinsicCall.cpp | ||
---|---|---|
23 | RISCV -> RISC-V |
flang/test/Lower/RISCV/riscv-zbkb-intrinsics.f90 | ||
---|---|---|
20 | Zip and unzip are RV32-only instructions. This is an RV64 test. |
Because flang does not support RISC-V 32 currently, I have temporarily removed the zip and unzip instructions.
flang/lib/Optimizer/Builder/IntrinsicCall.cpp | ||
---|---|---|
1187 | Does this check include 32 and 64 modes? |
flang/lib/Optimizer/Builder/IntrinsicCall.cpp | ||
---|---|---|
1187 | Yes, this is reserved for RV32. |
FYI there is a patch open: https://reviews.llvm.org/D151812 that replaces all of these static mlir::FunctionType generators with a single generic function..
If this patch lands first I will rebase the other patch to replace genIntIntFuncType. Are you ok with rebasing this patch if the other patch lands first?