diff options
| author | Matthias Springer <me@m-sp.org> | 2025-11-04 23:45:35 +0000 |
|---|---|---|
| committer | Matthias Springer <me@m-sp.org> | 2025-11-05 12:29:25 +0000 |
| commit | f3d28c4ffd949c6b2807d165b20184ead6445da9 (patch) | |
| tree | d6c65ac461b9cf36c8d8be0c9012a63904ba3898 /mlir/lib/Dialect/LLVMIR/IR/FunctionCallUtils.cpp | |
| parent | 6c640b86e6e03298385231cb7e77d2f3524bc643 (diff) | |
Prototype: APFloat CPU runnerusers/matthias-springer/apfloat_runner
Diffstat (limited to 'mlir/lib/Dialect/LLVMIR/IR/FunctionCallUtils.cpp')
| -rw-r--r-- | mlir/lib/Dialect/LLVMIR/IR/FunctionCallUtils.cpp | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/mlir/lib/Dialect/LLVMIR/IR/FunctionCallUtils.cpp b/mlir/lib/Dialect/LLVMIR/IR/FunctionCallUtils.cpp index feaffa34897b..8ee039be6056 100644 --- a/mlir/lib/Dialect/LLVMIR/IR/FunctionCallUtils.cpp +++ b/mlir/lib/Dialect/LLVMIR/IR/FunctionCallUtils.cpp @@ -30,6 +30,8 @@ static constexpr llvm::StringRef kPrintF16 = "printF16"; static constexpr llvm::StringRef kPrintBF16 = "printBF16"; static constexpr llvm::StringRef kPrintF32 = "printF32"; static constexpr llvm::StringRef kPrintF64 = "printF64"; +static constexpr llvm::StringRef kPrintApFloat = "printApFloat"; +static constexpr llvm::StringRef kApFloatAddF = "APFloat_add"; static constexpr llvm::StringRef kPrintString = "printString"; static constexpr llvm::StringRef kPrintOpen = "printOpen"; static constexpr llvm::StringRef kPrintClose = "printClose"; @@ -160,6 +162,27 @@ mlir::LLVM::lookupOrCreatePrintF64Fn(OpBuilder &b, Operation *moduleOp, LLVM::LLVMVoidType::get(moduleOp->getContext()), symbolTables); } +FailureOr<LLVM::LLVMFuncOp> +mlir::LLVM::lookupOrCreateApFloatPrintFn(OpBuilder &b, Operation *moduleOp, + SymbolTableCollection *symbolTables) { + return lookupOrCreateReservedFn( + b, moduleOp, kPrintApFloat, + {IntegerType::get(moduleOp->getContext(), 32), + IntegerType::get(moduleOp->getContext(), 64)}, + LLVM::LLVMVoidType::get(moduleOp->getContext()), symbolTables); +} + +FailureOr<LLVM::LLVMFuncOp> +mlir::LLVM::lookupOrCreateApFloatAddFFn(OpBuilder &b, Operation *moduleOp, + SymbolTableCollection *symbolTables) { + return lookupOrCreateReservedFn( + b, moduleOp, kApFloatAddF, + {IntegerType::get(moduleOp->getContext(), 32), + IntegerType::get(moduleOp->getContext(), 64), + IntegerType::get(moduleOp->getContext(), 64)}, + IntegerType::get(moduleOp->getContext(), 64), symbolTables); +} + static LLVM::LLVMPointerType getCharPtr(MLIRContext *context) { return LLVM::LLVMPointerType::get(context); } |
