[Mlir-commits] [mlir] [MLIR][LLVMIR] Import unregistered intrinsics via llvm.intrinsic_call (PR #128626)
Tobias Gysi
llvmlistbot at llvm.org
Tue Feb 25 12:54:57 PST 2025
================
@@ -155,7 +165,19 @@ class LLVMImportInterface
LogicalResult convertIntrinsic(OpBuilder &builder, llvm::CallInst *inst,
LLVM::ModuleImport &moduleImport) const {
// Lookup the dialect interface for the given intrinsic.
- Dialect *dialect = intrinsicToDialect.lookup(inst->getIntrinsicID());
+ llvm::Intrinsic::ID intrinId = inst->getIntrinsicID();
+ if (intrinId == llvm::Intrinsic::not_intrinsic)
+ return failure();
+
+ // First lookup intrinsic across different dialects for known
+ // supported converstions, examples include arm-neon, nvm-sve, etc
+ Dialect *dialect = intrinsicToDialect.lookup(intrinId);
+
+ // No specialized (supported) intrinsics, attempt to generate a generic
+ // version via llvm.call_intrinsic (if available).
+ if (!dialect)
+ dialect = unregisteredIntrinscToDialect;
----------------
gysit wrote:
Can you call `convertUnregisteredIntrinsicImpl` directly here? Then there is not need for the `unregisteredIntrinscToDialect` variable `getUnregisteredIntrinsics` function? Maybe I am missing something though.
https://github.com/llvm/llvm-project/pull/128626
More information about the Mlir-commits
mailing list