diff options
Diffstat (limited to 'llvm/lib/AsmParser/LLParser.cpp')
-rw-r--r-- | llvm/lib/AsmParser/LLParser.cpp | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/llvm/lib/AsmParser/LLParser.cpp b/llvm/lib/AsmParser/LLParser.cpp index dd72d46..3431149 100644 --- a/llvm/lib/AsmParser/LLParser.cpp +++ b/llvm/lib/AsmParser/LLParser.cpp @@ -7004,8 +7004,6 @@ int LLParser::parseInstruction(Instruction *&Inst, BasicBlock *BB, return false; } case lltok::kw_sext: - case lltok::kw_fptrunc: - case lltok::kw_fpext: case lltok::kw_bitcast: case lltok::kw_addrspacecast: case lltok::kw_sitofp: @@ -7014,6 +7012,16 @@ int LLParser::parseInstruction(Instruction *&Inst, BasicBlock *BB, case lltok::kw_inttoptr: case lltok::kw_ptrtoint: return parseCast(Inst, PFS, KeywordVal); + case lltok::kw_fptrunc: + case lltok::kw_fpext: { + FastMathFlags FMF = EatFastMathFlagsIfPresent(); + if (parseCast(Inst, PFS, KeywordVal)) + return true; + if (FMF.any()) + Inst->setFastMathFlags(FMF); + return false; + } + // Other. case lltok::kw_select: { FastMathFlags FMF = EatFastMathFlagsIfPresent(); |