possible regression... where to look at?

Dmitry diwil@spec.ru
Fri Mar 12 12:26:00 GMT 2004


Fellows,

I moved my port from 3.2 to 3.4 and found the following:

for the code given:

uint16_t a;
void f()
{
	if(a & 8) gettt();
}

gcc-3.4-20040310 produces something like:

move a, reg
reg >>= 1
reg >>= 1
reg >>= 1
reg = reg & 1 (this sets bit C if result is not zero)
if C then gettt()
return

Which enlarges result code, etc.
gcc-3.2.X did it the way:

move a,reg
reg = reg & 8
if C then gettt()
return

So, the question is:
Is it general gcc-3.4 regression or I have to define something extra?

Thanks in advance,
Dmitry.





More information about the Gcc mailing list