> The implementation of the __ashlDI3(), __ashrDI3() and __lshrDI3() functions > is rather bad, it yields bad machine code at least on i386 and AMD64. Since > GCC knows how to shift integers twice the register size these functions can > be written as one-liners.
These functions are precisely meant to be used when GCC cannot do that. -- Eric Botcazou