Displaying 3 results from an estimated 3 matches for "hidden_not".
2017 Jul 13
2
failing to optimize boolean ops on cmps
...d = 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 %cmp, %and
ret i1 %res
}
$ ./opt -instcombine hidden_not.ll -S
define i8 @or_and_not(i8 %a, i8 %b) {
%res = or i8 %b, %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
%and = and i1 %cmp_inv, %c
%res = or i1 %cmp, %and
ret i1 %res
}
------------------------------...
2017 Jul 13
2
failing to optimize boolean ops on cmps
...@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 %cmp, %and
>> ret i1 %res
>> }
>>
>> $ ./opt -instcombine hidden_not.ll -S
>>
>> define i8 @or_and_not(i8 %a, i8 %b) {
>> %res = or i8 %b, %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
>> %and = and i...
2017 Jul 14
2
failing to optimize boolean ops on cmps
...%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 %cmp, %and
> ret i1 %res
> }
>
> $ ./opt -instcombine hidden_not.ll -S
>
> define i8 @or_and_not(i8 %a, i8 %b) {
> %res = or i8 %b, %a
> ret i8 %res
> }
>
> define i1 @or_and_cmp_not(i32 %a, i32 %b, i1 %c) {
> %cmp = icmp sgt i32 %a, %b
> %cmp_i...