Displaying 4 results from an estimated 4 matches for "minxz".
Did you mean:
minsz
2018 Jan 17
3
always allow canonicalizing to 8- and 16-bit ops?
...stuck at 19
IR instructions:
declare void @use4(i8, i8, i8, i8)
define void @min_of_3_vals(i8 %x, i8 %y, i8 %z) {
%nx = xor i8 %x, -1
%ny = xor i8 %y, -1
%nz = xor i8 %z, -1
%zx = zext i8 %nx to i32
%zy = zext i8 %ny to i32
%zz = zext i8 %nz to i32
%cmpxz = icmp ult i32 %zx, %zz
%minxz = select i1 %cmpxz, i32 %zx, i32 %zz
%cmpyz = icmp ult i32 %zy, %zz
%minyz = select i1 %cmpyz, i32 %zy, i32 %zz
%cmpyx = icmp ult i8 %y, %x
%minxyz = select i1 %cmpyx, i32 %minxz, i32 %minyz
%tr_minxyz = trunc i32 %minxyz to i8
%new_zx = sub nsw i32 %zx, %minxyz
%new_zy = sub nsw i32...
2018 Jan 22
2
always allow canonicalizing to 8- and 16-bit ops?
...(i8, i8, i8, i8)
> define void @min_of_3_vals(i8 %x, i8 %y, i8 %z) {
> %nx = xor i8 %x, -1
> %ny = xor i8 %y, -1
> %nz = xor i8 %z, -1
> %zx = zext i8 %nx to i32
> %zy = zext i8 %ny to i32
> %zz = zext i8 %nz to i32
>
> %cmpxz = icmp ult i32 %zx, %zz
> %minxz = select i1 %cmpxz, i32 %zx, i32 %zz
> %cmpyz = icmp ult i32 %zy, %zz
> %minyz = select i1 %cmpyz, i32 %zy, i32 %zz
> %cmpyx = icmp ult i8 %y, %x
> %minxyz = select i1 %cmpyx, i32 %minxz, i32 %minyz
> %tr_minxyz = trunc i32 %minxyz to i8
>
> %new_zx = sub nsw i32 %z...
2018 Jan 22
0
always allow canonicalizing to 8- and 16-bit ops?
...stuck at 19 IR instructions:
declare void @use4(i8, i8, i8, i8)
define void @min_of_3_vals(i8 %x, i8 %y, i8 %z) {
%nx = xor i8 %x, -1
%ny = xor i8 %y, -1
%nz = xor i8 %z, -1
%zx = zext i8 %nx to i32
%zy = zext i8 %ny to i32
%zz = zext i8 %nz to i32
%cmpxz = icmp ult i32 %zx, %zz
%minxz = select i1 %cmpxz, i32 %zx, i32 %zz
%cmpyz = icmp ult i32 %zy, %zz
%minyz = select i1 %cmpyz, i32 %zy, i32 %zz
%cmpyx = icmp ult i8 %y, %x
%minxyz = select i1 %cmpyx, i32 %minxz, i32 %minyz
%tr_minxyz = trunc i32 %minxyz to i8
%new_zx = sub nsw i32 %zx, %minxyz
%new_zy = sub nsw i32...
2018 Jan 23
0
MachineVerifier and undef
...(i8, i8, i8, i8)
> define void @min_of_3_vals(i8 %x, i8 %y, i8 %z) {
> %nx = xor i8 %x, -1
> %ny = xor i8 %y, -1
> %nz = xor i8 %z, -1
> %zx = zext i8 %nx to i32
> %zy = zext i8 %ny to i32
> %zz = zext i8 %nz to i32
>
> %cmpxz = icmp ult i32 %zx, %zz
> %minxz = select i1 %cmpxz, i32 %zx, i32 %zz
> %cmpyz = icmp ult i32 %zy, %zz
> %minyz = select i1 %cmpyz, i32 %zy, i32 %zz
> %cmpyx = icmp ult i8 %y, %x
> %minxyz = select i1 %cmpyx, i32 %minxz, i32 %minyz
> %tr_minxyz = trunc i32 %minxyz to i8
>
> %new_zx = sub nsw i32 %z...