diff --git a/include/glow/LLVMIRCodeGen/LLVMIRGen.h b/include/glow/LLVMIRCodeGen/LLVMIRGen.h index 317931a3a9..5480357cdf 100644 --- a/include/glow/LLVMIRCodeGen/LLVMIRGen.h +++ b/include/glow/LLVMIRCodeGen/LLVMIRGen.h @@ -216,6 +216,8 @@ class LLVMIRGen { const glow::Value *val); /// Generates LLVM IR that materializes the constant \p val. llvm::Value *emitConstF32(llvm::IRBuilder<> &builder, float val); + /// Generates LLVM IR that materializes the constant double \p val. + llvm::Value *emitConstF64(llvm::IRBuilder<> &builder, double val); /// Generates LLVM IR that materializes the constant int64 \p val. llvm::Value *emitConstI64(llvm::IRBuilder<> &builder, int64_t val); /// Generates LLVM IR that materializes the constant \p val. diff --git a/lib/LLVMIRCodeGen/LLVMIRGen.cpp b/lib/LLVMIRCodeGen/LLVMIRGen.cpp index 176d1f0e4f..dd7b805829 100644 --- a/lib/LLVMIRCodeGen/LLVMIRGen.cpp +++ b/lib/LLVMIRCodeGen/LLVMIRGen.cpp @@ -455,6 +455,9 @@ llvm::Type *LLVMIRGen::getLLVMPtrType(glow::ElemKind kind) { case ElemKind::BoolTy: T = llvm::Type::getInt8PtrTy(getLLVMContext()); break; + case ElemKind::Float64Ty: + T = llvm::Type::getDoubleTy(getLLVMContext()); + break; default: LOG(FATAL) << "Unsupported element type: " << Type::getElementName(kind).str(); @@ -667,6 +670,10 @@ llvm::Value *LLVMIRGen::emitConstF32(llvm::IRBuilder<> &builder, float val) { return llvm::ConstantFP::get(llvm::Type::getFloatTy(getLLVMContext()), val); } +llvm::Value *LLVMIRGen::emitConstF64(llvm::IRBuilder<> &builder, double val) { + return llvm::ConstantFP::get(llvm::Type::getDoubleTy(getLLVMContext()), val); +} + llvm::Value *LLVMIRGen::emitConstI64(llvm::IRBuilder<> &builder, int64_t val) { return builder.getInt64(val); }