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.