------- Comment #2 from joseph at codesourcery dot com  2007-03-09 12:06 -------
Subject: Re:   New: a*C == b*C where C is a constant
 is not optimized to a == b

On Fri, 9 Mar 2007, pinskia at gcc dot gnu dot org wrote:

> The following two functions should be equzlivant when overflow is undefined:
> int f(int a, int b)
> {
>   return a * 10 == b*10;
> }
> 
> int f1(int a, int b)
> {
>   return a==b;
> }

If the constant is odd, they are equivalent for wrapping (but not for 
trapping) and for unsigned as well.

(If the constant is 0, they aren't equivalent at all but the first should 
become "return 1;".)


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31096

Reply via email to