search for: isfneg

Displaying 4 results from an estimated 4 matches for "isfneg".

Did you mean: fneg
2018 Oct 01
6
[FPEnv] FNEG instruction
I don't see any controversy for the preliminary requirement of removing BinaryOperator::isFNeg() and friends, so start with that? That work may reveal other potential regressions that we can patch in advance too. Other than that, I think there's really only a question of do we want 1 or both of fneg and fneg_constrained (and if we choose both, then I assume we'd also add fabs_constr...
2018 Sep 26
2
[FPEnv] FNEG instruction
...maybe a naive question, but why not do similar shuffle canonicalizations on unary (or ternary) operations? That may be a better fix in the long run. > But glancing at Reassociate.cpp is scarier. It does a lot of stuff like > this: > if (BinaryOperator::isNeg(TheOp) || BinaryOperator::isFNeg(TheOp)) > X = BinaryOperator::getNegArgument(TheOp); > > I think that's going to fail without a (terrible) hack to treat the > proposed fneg as a binop. So that's probably a preliminary requirement: > find all uses of BinaryOperator::isFNeg() and update them to use m_FN...
2018 Sep 25
2
[FPEnv] FNEG instruction
On Tue, Sep 25, 2018 at 1:39 PM Sanjay Patel <spatel at rotateright.com> wrote: > I have 1 concern about adding an explicit fneg op to IR: > > Currently, fneg qualifies as a binop in IR (since there's no other way to > represent it), and we have IR transforms that are based on matching that > pattern (m_BinOp). With a proper unary fneg instruction, those transforms >
2018 Sep 27
2
[FPEnv] FNEG instruction
Regarding non-IEEE targets: yes, we definitely support those, so we do have to be careful about not breaking them. I know because I have broken them. :) See the discussion and related links here: https://reviews.llvm.org/D19391 But having an exactly specified fneg op makes that easier, not harder, as I see it. Unfortunately, if a target doesn't support this op (always toggle the sign bit and