調べたこと、作ったことをメモしています。
こちらに移行中: https://blog.shimazu.me/

2の乗数での剰余使った分岐

結論としてはいい感じに最適化してくれた。
環境はgcc 4.7.3で最適化レベルは3でやった。

    while( 1 ) {
        if ( counter % 2 ) {
 8048308:   8b 44 24 08             mov    0x8(%esp),%eax
 804830c:   a8 01                   test   $0x1,%al
 804830e:   74 0b                   je     804831b <main+0x2b>
            flag++;
 8048310:   8b 44 24 0c             mov    0xc(%esp),%eax
 8048314:   83 c0 01                add    $0x1,%eax
 8048317:   89 44 24 0c             mov    %eax,0xc(%esp)
        }
        counter++;
 804831b:   8b 44 24 08             mov    0x8(%esp),%eax
 804831f:   83 c0 01                add    $0x1,%eax
 8048322:   89 44 24 08             mov    %eax,0x8(%esp)
    }
 8048326:   eb e0                   jmp    8048308 <main+0x18>