search for: createfdivfmf

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

2019 Dec 31
3
Any significance for m_OneUse in (X / Y) / Z => X / (Y * Z) ??
...e. 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 transformations which perform the m_OueUse check. We may avoid...
2020 Jan 03
3
Any significance for m_OneUse in (X / Y) / Z => X / (Y * Z) ??
...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 tr...
2020 Jan 06
2
Any significance for m_OneUse in (X / Y) / Z => X / (Y * Z) ??
...Div(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...