@@ -1599,21 +1599,17 @@ Instruction *InstCombiner::visitCallInst(CallInst &CI) {
1599
1599
// fma fneg(x), fneg(y), z -> fma x, y, z
1600
1600
if (match (Src0, m_FNeg (m_Value (LHS))) &&
1601
1601
match (Src1, m_FNeg (m_Value (RHS)))) {
1602
- CallInst *NewCall = Builder->CreateCall (II->getCalledFunction (),
1603
- {LHS, RHS, II->getArgOperand (2 )});
1604
- NewCall->takeName (II);
1605
- NewCall->copyFastMathFlags (II);
1606
- return replaceInstUsesWith (*II, NewCall);
1602
+ II->setArgOperand (0 , LHS);
1603
+ II->setArgOperand (1 , RHS);
1604
+ return II;
1607
1605
}
1608
1606
1609
1607
// fma fabs(x), fabs(x), z -> fma x, x, z
1610
1608
if (match (Src0, m_Intrinsic<Intrinsic::fabs>(m_Value (LHS))) &&
1611
1609
match (Src1, m_Intrinsic<Intrinsic::fabs>(m_Value (RHS))) && LHS == RHS) {
1612
- CallInst *NewCall = Builder->CreateCall (II->getCalledFunction (),
1613
- {LHS, LHS, II->getArgOperand (2 )});
1614
- NewCall->takeName (II);
1615
- NewCall->copyFastMathFlags (II);
1616
- return replaceInstUsesWith (*II, NewCall);
1610
+ II->setArgOperand (0 , LHS);
1611
+ II->setArgOperand (1 , RHS);
1612
+ return II;
1617
1613
}
1618
1614
1619
1615
// fma x, 1, z -> fadd x, z
0 commit comments