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...