search for: createfmulfmf

Displaying 3 results from an estimated 3 matches for "createfmulfmf".

2019 Dec 31
3
Any significance for m_OneUse in (X / Y) / Z => X / (Y * Z) ??
...operand Op1 ( (X/Y) in this case) has only one use in future. The code snippet is shown below. if (match(Op1, m_OneUse(m_FDiv(m_Value(X), m_Value(Y)))) && (!isa<Constant>(Y) || !isa<Constant>(Op0))) { // Z / (X / Y) => (Y * Z) / X Value *YZ = Builder.CreateFMulFMF(Y, Op0, &I); return BinaryOperator::CreateFDivFMF(YZ, X, &I); } It would be great if someone explains if there is any issue (correctness/performance-wise) if we avoid the m_OueUse check. What if we perform the transformation even if there are multiple uses? There are similar tra...
2020 Jan 03
3
Any significance for m_OneUse in (X / Y) / Z => X / (Y * Z) ??
...one use in future. The code snippet is shown below. >> >> if (match(Op1, m_OneUse(m_FDiv(m_Value(X), m_Value(Y)))) && >> (!isa<Constant>(Y) || !isa<Constant>(Op0))) { >> // Z / (X / Y) => (Y * Z) / X >> Value *YZ = Builder.CreateFMulFMF(Y, Op0, &I); >> return BinaryOperator::CreateFDivFMF(YZ, X, &I); >> } >> >> It would be great if someone explains if there is any issue >> (correctness/performance-wise) if we avoid the m_OueUse check. What if >> we perform the transformation ev...
2020 Jan 06
2
Any significance for m_OneUse in (X / Y) / Z => X / (Y * Z) ??
...hown below. >>>> >>>> if (match(Op1, m_OneUse(m_FDiv(m_Value(X), m_Value(Y)))) && >>>> (!isa<Constant>(Y) || !isa<Constant>(Op0))) { >>>> // Z / (X / Y) => (Y * Z) / X >>>> Value *YZ = Builder.CreateFMulFMF(Y, Op0, &I); >>>> return BinaryOperator::CreateFDivFMF(YZ, X, &I); >>>> } >>>> >>>> It would be great if someone explains if there is any issue >>>> (correctness/performance-wise) if we avoid the m_OueUse check. What if &...