Quoting r. Roland Dreier <[EMAIL PROTECTED]>: > It's odd that you saw the expession end up as 0. It seems that on every > system I have, 1ull << 64 is 0, and 0 - 1 == -1 == 0xffffffffffffffff. > So although it isn't correct C, it should work.
It seems that compiler generates a single instruction for this shift. And CPU designers apparently have cut a corner by simply using only low 6 bits in the operand of a shift, so that 1ull<<64 is same as 1ull<<(64&0x37), or 1. -- MST _______________________________________________ openib-general mailing list [email protected] http://openib.org/mailman/listinfo/openib-general To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general
