In C, would !~b ever be faster than b == 0xff ?
        Posted  
        
            by James Morris
        on Stack Overflow
        
        See other posts from Stack Overflow
        
            or by James Morris
        
        
        
        Published on 2010-05-04T15:54:54Z
        Indexed on 
            2010/05/04
            15:58 UTC
        
        
        Read the original article
        Hit count: 303
        
From a long time ago I have a memory which has stuck with me that says comparisons against zero are faster than any other value (ahem Z80).
In some C code I'm writing I want to skip values which have all their bits set. Currently the type of these values is char but may change. I have two different alternatives to perform the test:
if (!~b)
    /* skip */
and
if (b == 0xff)
    /* skip */
Apart from the latter making the assumption that b is an 8bit char whereas the former does not, would the former ever be faster due to the old compare to zero optimization trick, or are the CPUs of today way beyond this kind of thing?
© Stack Overflow or respective owner