http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53991
Uroš Bizjak <ubizjak at gmail dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |hubicka at gcc dot gnu.org --- Comment #3 from Uroš Bizjak <ubizjak at gmail dot com> --- Actually, the difference begins in _c.018t.einline. -O2 -fgnu-tm: ;; Function main (main, funcdef_no=1, decl_uid=1878, symbol_order=1) not inlinable: main/1 -> _mm_popcnt_u64/0, Considering inline candidate _mm_popcnt_u64. not inlinable: main/1 -> _mm_popcnt_u64/0, Iterations: 0 main () { int res; int _4; <bb 2>: res_1 = _mm_popcnt_u64 (0); printf ("Result res should be 0: %d\n", res_1); _4 = 0; return _4; } -O2: ;; Function main (main, funcdef_no=1, decl_uid=1722, symbol_order=1) Inlining _mm_popcnt_u64 into main (always_inline). Iterations: 0 Merging blocks 2 and 4 Merging blocks 2 and 3 Symbols to be put in SSA form { D.1735 } Incremental SSA update started at block: 0 Number of blocks in CFG: 3 Number of blocks to update: 2 ( 67%) main () { int D.1735; int res; int _4; int _5; <bb 2>: _5 = 0; _6 = _5; res_1 = _6; printf ("Result res should be 0: %d\n", res_1); _4 = 0; return _4; } Adding CC.