https://gcc.gnu.org/bugzilla/show_bug.cgi?id=25671

--- Comment #10 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
With the fixed testcase we get:

        movq    %rsi, %rax
        movq    %rsi, %rcx
        shrq    $6, %rax
        andl    $63, %ecx
        movq    (%rdi,%rax,8), %rax
        shrq    %cl, %rax
        andl    $1, %eax

ICC can produce the btq but with extra instructions still:
        movq      %rsi, %rax                                    #5.25
        shrq      $6, %rax                                      #5.25
        movq      (%rdi,%rax,8), %rdx                           #5.13
        xorl      %eax, %eax                                    #5.61
        btq       %rsi, %rdx                                    #5.61
        setc      %al

Reply via email to