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 | ||
|---|---|---|
| 581 | 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 | ||
|---|---|---|
| 581 | Thank you for the reminder! I will rebase this patch according to the situation. | |
| flang/lib/Optimizer/Builder/IntrinsicCall.cpp | ||
|---|---|---|
| 1038 | 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 | ||
|---|---|---|
| 1038 | 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 | ||
|---|---|---|
| 24 | RISCV -> RISC-V | |
| flang/test/Lower/RISCV/riscv-zbkb-intrinsics.f90 | ||
|---|---|---|
| 20 ↗ | (On Diff #534307) | 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 | ||
|---|---|---|
| 1206 | Does this check include 32 and 64 modes? | |
| flang/lib/Optimizer/Builder/IntrinsicCall.cpp | ||
|---|---|---|
| 1206 | 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?