http://gcc.gnu.org/bugzilla/show_bug.cgi?id=9814
Steven Bosscher <steven at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |FIXED --- Comment #10 from Steven Bosscher <steven at gcc dot gnu.org> 2011-05-22 14:54:53 UTC --- Works overall, fails at GIMPLE level: $ ./cc1 -quiet -m32 -fomit-frame-pointer -O2 t.c -fdump-tree-optimized $ cat t.s .file "t.c" .text .p2align 4,,15 .globl k .type k, @function k: .LFB0: .cfi_startproc movl 4(%esp), %eax ret .cfi_endproc .LFE0: .size k, .-k .ident "GCC: (GNU) 4.6.0 20110312 (experimental) [trunk revision 170907]" .section .note.GNU-stack,"",@progbits $ cat t.c.143t.optimized ;; Function k (k) k (int l) { int D.1979; <bb 2>: D.1979_3 = l_2(D) & 2; if (D.1979_3 != 0) goto <bb 3>; else goto <bb 4>; <bb 3>: l_4 = l_2(D) | 2; <bb 4>: # l_1 = PHI <l_2(D)(2), l_4(3)> return l_1; } But there is already a (series of) bug report(s) for missed bit folding optimizations on GIMPLE.