Displaying 2 results from an estimated 2 matches for "notlowbit".
2016 Aug 04
2
Remove zext-unfolding from InstCombine
...| zext(B == 0)` and ` zext(B == 0) | (A ^ 1)` in a uniform way we may need another transform. Is it feasible, for example, to introduce a canonicalization that moves a cast always to the right-hand side of a binary operation?
> We may need to answer this question first though:
> define i8 @notLowBit(i8 %a) {
> %lowBit = and i8 %a, 1
> %not = xor i8 %lowBit, 1
> ret i8 %not
> }
>
> Should this be canonicalized to:
> define i8 @notLowBit(i8 %a) {
> %not = xor i8 %a, -1
> %lowBit = and i8 %not, 1
> ret i8 %lowBit
> }
>
> ...because xor with -1...
2016 Jul 27
2
Remove zext-unfolding from InstCombine
Hi Sanjay,
thank you a lot for your answer. I understand that in your examples it is desirable that `foo` and `goo` are canonicalized to the same IR, i.e., something like `@goo`. However, I still have a few open questions, but please correct me in case I'm thinking in the wrong direction.
> Am 21.07.2016 um 18:51 schrieb Sanjay Patel <spatel at rotateright.com>:
>
> I've