------- Comment #3 from hjl dot tools at gmail dot com  2010-06-25 16:43 -------
Another testcase:

[...@gnu-6 44659]$ cat extract-3.c
typedef struct
{
  unsigned char c1;
  unsigned char c2;
  unsigned char c3;
  unsigned char c4;
} foo_t;

int
foo (foo_t x)
{
   return x.c2 != 0;
}
[...@gnu-6 44659]$ make extract-3.s
/export/build/gnu/gcc/build-x86_64-linux/gcc/xgcc
-B/export/build/gnu/gcc/build-x86_64-linux/gcc/ -Os -S extract-3.c
[...@gnu-6 44659]$ cat extract-3.s
        .file   "extract-3.c"
        .text
.globl foo
        .type   foo, @function
foo:
.LFB0:
        .cfi_startproc
        movl    %edi, %eax
        movzbl  %ah, %edi
        xorl    %eax, %eax
        testb   %dil, %dil
        setne   %al
        ret

movzbl  %ah, %edi
testb   %dil, %dil

can be combined into one instruction.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44659

Reply via email to