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

            Bug ID: 84413
           Summary: -march=skylake-avx512 disables BT instruction
           Product: gcc
           Version: 8.0.1
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: hjl.tools at gmail dot com
                CC: ubizjak at gmail dot com
  Target Milestone: ---
            Target: x86

[hjl@gnu-skx-1 gcc]$ cat x.c
unsigned long long bextr64_demanded(unsigned long long x)
{
    return x | 0x8000000000;
}
[hjl@gnu-skx-1 gcc]$ ./xgcc -B./ -S -O2 x.c -march=skylake-avx512
[hjl@gnu-skx-1 gcc]$ cat x.s
        .file   "x.c"
        .text
        .p2align 4,,15
        .globl  bextr64_demanded
        .type   bextr64_demanded, @function
bextr64_demanded:
.LFB0:
        .cfi_startproc
        movabsq $549755813888, %rax
        orq     %rdi, %rax
        xorl    %edi, %edi
        ret
        .cfi_endproc
.LFE0:
        .size   bextr64_demanded, .-bextr64_demanded
        .ident  "GCC: (GNU) 8.0.1 20180212 (experimental)"
        .section        .note.GNU-stack,"",@progbits
[hjl@gnu-skx-1 gcc]$ ./xgcc -B./ -S -O2 x.c 
[hjl@gnu-skx-1 gcc]$ cat x.s
        .file   "x.c"
        .text
        .p2align 4,,15
        .globl  bextr64_demanded
        .type   bextr64_demanded, @function
bextr64_demanded:
.LFB0:
        .cfi_startproc
        movq    %rdi, %rax
        xorl    %edi, %edi
        btsq    $39, %rax
        ret
        .cfi_endproc
.LFE0:
        .size   bextr64_demanded, .-bextr64_demanded
        .ident  "GCC: (GNU) 8.0.1 20180212 (experimental)"
        .section        .note.GNU-stack,"",@progbits
[hjl@gnu-skx-1 gcc]$

Reply via email to