I was starting at the assembly from some of the Python source, and came across this (simplified) comparison:
if (x > 2305843009213693951) {...} This is the same as: if (x > 0x1fffffffffffffff) {...} This is equivalent to: if (x >> 61) {...} More generally, we can rewrite if ( x > ((1 << z) -1)) { ...} as if ( x >> z ) { ... } This does not appear to currently be a gcc optimization. What is involved in adding it? Jason