Open bongjunj opened 4 months ago
What if %val0
and %val1
both not undef
?
What if
%val0
and%val1
both notundef
?
Then the transformation is reported to be correct by Alive2.
--passes=gvn --disable-undef-input
----------------------------------------
define i1 @fun0(i8 %val0, i8 %val1) {
#0:
%val2 = and i8 %val0, 1
%val3 = icmp eq i8 %val2, 0
%val4 = add i8 %val1, %val2
%val5 = icmp eq i8 %val1, %val4
%val6 = or i1 %val3, %val5
ret i1 %val6
}
=>
define i1 @fun0(i8 %val0, i8 %val1) {
#0:
%val2 = and i8 %val0, 1
%val4 = add i8 %val1, %val2
%val5 = icmp eq i8 %val1, %val4
ret i1 %val5
}
Transformation seems to be correct!
Summary:
1 correct transformations
0 incorrect transformations
0 failed-to-prove transformations
0 Alive2 errors
alive2 report: https://alive2.llvm.org/ce/z/Q7wtE9