http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46192
--- Comment #3 from simon at pushface dot org 2011-02-11 18:18:26 UTC --- (In reply to comment #2) > Still present in gcc version 4.6.0 20110203 (experimental) [trunk revision > 157963] for x86_64-apple-darwin10. Generated assembler is > > _renaming__put_raw: > LFB3: > movzbl 192, %eax > andl $32, %eax > .align 4,0x90 > L3: > testb %al, %al > je L3 > ret That was at -O2. The code for -O1 is OK: _renaming__put_raw: LFB3: L3: testb $32, 192 je L3 ret