diff --git a/llvm-spirv/lib/SPIRV/SPIRVWriter.cpp b/llvm-spirv/lib/SPIRV/SPIRVWriter.cpp index d39d5c5179012..8a774a868fcc5 100644 --- a/llvm-spirv/lib/SPIRV/SPIRVWriter.cpp +++ b/llvm-spirv/lib/SPIRV/SPIRVWriter.cpp @@ -3984,6 +3984,17 @@ bool LLVMToSPIRVBase::isKnownIntrinsic(Intrinsic::ID Id) { case Intrinsic::masked_gather: case Intrinsic::masked_scatter: case Intrinsic::modf: + // INTEL_CUSTOMIZATION begin + // fpbuiltin intrinsics are not part of upstream LLVM, yet we have to register + // them as known. + case Intrinsic::fpbuiltin_fadd: + case Intrinsic::fpbuiltin_fsub: + case Intrinsic::fpbuiltin_fmul: + case Intrinsic::fpbuiltin_fdiv: + case Intrinsic::fpbuiltin_frem: + case Intrinsic::fpbuiltin_sqrt: + case Intrinsic::fpbuiltin_ldexp: + // INTEL_CUSTOMIZATION end return true; default: // Unknown intrinsics' declarations should always be translated diff --git a/llvm-spirv/test/extensions/INTEL/SPV_INTEL_fp_max_error/IntelFPMaxError.ll b/llvm-spirv/test/extensions/INTEL/SPV_INTEL_fp_max_error/IntelFPMaxError.ll index 6ab2500093ba6..5395425f410c3 100644 --- a/llvm-spirv/test/extensions/INTEL/SPV_INTEL_fp_max_error/IntelFPMaxError.ll +++ b/llvm-spirv/test/extensions/INTEL/SPV_INTEL_fp_max_error/IntelFPMaxError.ll @@ -14,6 +14,10 @@ ; RUN: llvm-spirv -r %t.spv -o %t.rev.bc ; RUN: llvm-dis < %t.rev.bc | FileCheck %s --check-prefix=CHECK-LLVM +; INTEL_CUSTOMIZATION begin +; CHECK-SPIRV-NOT: Name [[#]] "llvm.fpbuiltin." +; INTEL_CUSTOMIZATION end + ; CHECK-SPIRV: Capability FPMaxErrorINTEL ; CHECK-SPIRV: Extension "SPV_INTEL_fp_max_error" ; CHECK-SPIRV: ExtInstImport [[#OCLEXTID:]] "OpenCL.std"