On 11/01/2009 04:03 PM, Paolo Bonzini wrote:

An andl
#1 after a seq is 1 to 1, but how should compiler know that?</li>

I don't understand the last sentence.

I think it's talking about something like

int f(int x, int y)
{
  int r;
  r = x == y;
  r &= 1;
  return r;
}

        cmpl    %esi, %edi
        sete    %al
        andl    $1, %eax

Not the most ideal way to zero-extend the return value, from a partial register stall point of view. Note that with char values, we do eliminate the AND operation, so this is not (any longer) about some pass not understanding STORE_FLAG_VALUE.


r~

Reply via email to