On Jun 5, 2011, Alexandre Oliva <aol...@redhat.com> wrote: > On Jun 4, 2011, Jakub Jelinek <ja...@redhat.com> wrote: >> The following changes all look wrong to me, they make the tests totally >> useless. If both f and g are used in real code after the asm volatile, then >> the both f and g will likely live in some register or memory. >> The whole point of the construct in the tests is that f has at that spot >> a reg or mem location, but g isn't present anywhere anymore (as the compiler >> doesn't or shouldn't know that asm volatile hasn't changed f), thus it >> should represent them as bswap/clz/ctz/rotate.
> I see. I'll try to figure out why that didn't work. So, I tried to duplicate the problem and failed. The cut&pasto fix r174632 fixed the only two cases that had failed, on x86_64-linux-gnu and only at -O1. I suppose the wrong bit width made the expression unsuitable for a rotate or debug expr, but the fix made the tests pass again, so I withdraw the “fixes” for those testcases: they work even with coalescing fully enabled. Thanks for catching this. -- Alexandre Oliva, freedom fighter http://FSFLA.org/~lxoliva/ You must be the change you wish to see in the world. -- Gandhi Be Free! -- http://FSFLA.org/ FSF Latin America board member Free Software Evangelist Red Hat Brazil Compiler Engineer