search for: or_and_not

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

2017 Jul 13
2
failing to optimize boolean ops on cmps
We have several optimizations in InstCombine for bitwise logic ops (and/or/xor) that fail to handle compare patterns with the equivalent bitwise logic. Example: define i8 @or_and_not(i8 %a, i8 %b) { %nota = xor i8 %a, -1 %and = and i8 %nota, %b %res = or i8 %and, %a ret i8 %res } define i1 @or_and_cmp_not(i32 %a, i32 %b, i1 %c) { %cmp = icmp sgt i32 %a, %b %cmp_inv = icmp sle i32 %a, %b ; this is 'not' of %cmp %and = and i1 %c, %cmp_inv %res = or i1 %cm...
2017 Jul 13
2
failing to optimize boolean ops on cmps
..., 2017 at 2:12 PM, Sanjay Patel <spatel at rotateright.com> > wrote: > >> We have several optimizations in InstCombine for bitwise logic ops >> (and/or/xor) that fail to handle compare patterns with the equivalent >> bitwise logic. Example: >> >> define i8 @or_and_not(i8 %a, i8 %b) { >> %nota = xor i8 %a, -1 >> %and = and i8 %nota, %b >> %res = or i8 %and, %a >> ret i8 %res >> } >> >> define i1 @or_and_cmp_not(i32 %a, i32 %b, i1 %c) { >> %cmp = icmp sgt i32 %a, %b >> %cmp_inv = icmp sle i32 %a, %b...
2017 Jul 14
2
failing to optimize boolean ops on cmps
...t;mailto:spatel at rotateright.com>> wrote: > > We have several optimizations in InstCombine for bitwise > logic ops (and/or/xor) that fail to handle compare > patterns with the equivalent bitwise logic. Example: > > define i8 @or_and_not(i8 %a, i8 %b) { > %nota = xor i8 %a, -1 > %and = and i8 %nota, %b > %res = or i8 %and, %a > ret i8 %res > } > > define i1 @or_and_cmp_not(i32 %a, i32 %b, i1 %c) { > %cmp = icmp sgt...