irange::intersect returns true if the intersection operation changes the value. If both ranges had nonzero bits set, intersect_nonzero_bits was not checking to see if the operation actually changes the bits or not, it changed the mask and returned true. Bootstrapped on x86_64-pc-linux-gnu with no regressions.  Pushed. Andrew