search for: m_fdiv

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

2019 Dec 31
3
Any significance for m_OneUse in (X / Y) / Z => X / (Y * Z) ??
Dear All, The InstCombine pass performs the following transformation. Z / (X / Y) => (Y * Z) / X This is performed only when 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 expla...
2020 Jan 03
3
Any significance for m_OneUse in (X / Y) / Z => X / (Y * Z) ??
...tCombine pass performs the following transformation. >> >> Z / (X / Y) => (Y * Z) / X >> >> This is performed only when 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); >&...
2020 Jan 06
2
Any significance for m_OneUse in (X / Y) / Z => X / (Y * Z) ??
...;>>> >>>> Z / (X / Y) => (Y * Z) / X >>>> >>>> This is performed only when 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::Cre...