forked from OSchip/llvm-project
[InstCombine] add FMF guard to builder in fptrunc transform; NFC
This makes no difference currently because we don't apply FMF to FP casts, but that may change. This could also be a place to add a fold for select with fptrunc, so it will make that patch easier/smaller.
This commit is contained in:
parent
30e8f80fd5
commit
51e420c27e
llvm/lib/Transforms/InstCombine
|
@ -1622,6 +1622,11 @@ Instruction *InstCombiner::visitFPTrunc(FPTruncInst &FPT) {
|
|||
Value *X;
|
||||
Instruction *Op = dyn_cast<Instruction>(FPT.getOperand(0));
|
||||
if (Op && Op->hasOneUse()) {
|
||||
// FIXME: The FMF should propagate from the fptrunc, not the source op.
|
||||
IRBuilder<>::FastMathFlagGuard FMFG(Builder);
|
||||
if (isa<FPMathOperator>(Op))
|
||||
Builder.setFastMathFlags(Op->getFastMathFlags());
|
||||
|
||||
if (match(Op, m_FNeg(m_Value(X)))) {
|
||||
Value *InnerTrunc = Builder.CreateFPTrunc(X, Ty);
|
||||
|
||||
|
|
Loading…
Reference in New Issue