diff --git a/llvm/lib/CodeGen/MachineInstr.cpp b/llvm/lib/CodeGen/MachineInstr.cpp index 2bc18001081ea..26b31e33bec0c 100644 --- a/llvm/lib/CodeGen/MachineInstr.cpp +++ b/llvm/lib/CodeGen/MachineInstr.cpp @@ -630,6 +630,10 @@ uint32_t MachineInstr::copyFlagsFromInstruction(const Instruction &I) { if (I.getMetadata(LLVMContext::MD_unpredictable)) MIFlags |= MachineInstr::MIFlag::Unpredictable; + if (const CallInst *CI = dyn_cast(&I)) { + MIFlags |= + CI->hasFnAttr(llvm::Attribute::StrictFP) ? MachineInstr::NoFPExcept : 0; + } return MIFlags; }