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

            Bug ID: 64210
           Summary: FAIL:
                    gcc.target/i386/avx512vl-(vmovdqa64|vpbroadcastd)-1.c
                    ... with -fpic
           Product: gcc
           Version: 5.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: dominiq at lps dot ens.fr
                CC: hjl at gcc dot gnu.org, iains at gcc dot gnu.org,
                    tocarip at gcc dot gnu.org
            Target: x86_64-*-*

Compiling the following tests with -fpic fail some scan-assembler-times tests

FAIL: gcc.target/i386/avx512vl-vmovdqa64-1.c scan-assembler-times vmovdqa64[
\\\\t]+[^{\\n]*%ymm[0-9]+[^\\n^x^y]*\\\\(.{5}(?:\\n|[ \\\\t]+#) 1
FAIL: gcc.target/i386/avx512vl-vmovdqa64-1.c scan-assembler-times vmovdqa64[
\\\\t]+\\\\([^\\n]*%xmm[0-9]+(?:\\n|[ \\\\t]+#) 1
FAIL: gcc.target/i386/avx512vl-vmovdqa64-1.c scan-assembler-times vmovdqa64[
\\\\t]+\\\\([^\\n]*%ymm[0-9]+(?:\\n|[ \\\\t]+#) 1
FAIL: gcc.target/i386/avx512vl-vpbroadcastd-1.c scan-assembler-times
vpbroadcastd[ \\\\t]+%e[^\\n]*%ymm[0-9]+{%k[1-7]}(?:\\n|[ \\\\t]+#) 1

see, e.g., https://gcc.gnu.org/ml/gcc-testresults/2014-12/msg00687.html, with
both -m32 and -m64, except gcc.target/i386/avx512vl-vpbroadcastd-1.c which
fails with -m64 only.

In the later case the failure is likely due to

    vpbroadcastd    %r8d, %ymm0{%k5}

For gcc.target/i386/avx512vl-vmovdqa64-1.c, grepping vmovdqa64 gives

    vmovdqa64    (%eax), %ymm1
    vmovdqa64    (%ecx), %ymm0
    vmovdqa64    %ymm1, %ymm0{%k1}
    vmovdqa64    %ymm0, (%ecx)
    vmovdqa64    (%edi), %xmm1
    vmovdqa64    (%esi), %xmm0
    vmovdqa64    %xmm1, %xmm0{%k2}
    vmovdqa64    (%esi), %ymm0
    vmovdqa64    %ymm0, %ymm0{%k3}{z}
    vmovdqa64    %ymm0, (%ecx)
    vmovdqa64    (%edi), %xmm0
    vmovdqa64    %xmm0, %xmm0{%k4}{z}
    vmovdqa64    (%esi), %ymm0
    vmovdqa64    %ymm0, (%ecx)
    vmovdqa64    (%esi), %xmm0
    vmovdqa64    (%ecx), %ymm0
    vmovdqa64    (%ebx), %ymm0{%k5}
    vmovdqa64    %ymm0, (%ecx)
    vmovdqa64    (%edx), %xmm0
    vmovdqa64    (%ebx), %xmm0{%k6}
    vmovdqa64    (%ebx), %ymm0{%k7}{z}
    vmovdqa64    %ymm0, (%ecx)
    vmovdqa64    (%ebx), %xmm0{%k1}{z}
    vmovdqa64    (%ecx), %ymm0
    vmovdqa64    %ymm0, (%ebx)
    vmovdqa64    (%edx), %xmm0
    vmovdqa64    (%ecx), %ymm0
    vmovdqa64    %ymm0, (%ecx){%k2}
    vmovdqa64    (%edx), %xmm0
    vmovdqa64    %xmm0, (%eax){%k3}

but I failed to see where are the problems.

Reply via email to