x86: change AVX512VL handling in cpu_flags_match()

In order to add an AVX512F counterpart to the present AVX checking, it
is better to move the AVX512VL check out of the conditional it's
currently in.
This commit is contained in:
Jan Beulich 2018-03-08 08:45:56 +01:00 committed by Jan Beulich
parent db12e14ea0
commit ab592e757e
2 changed files with 9 additions and 11 deletions

View File

@ -1,3 +1,7 @@
2018-03-08 Jan Beulich <jbeulich@suse.com>
* config/tc-i386.c (cpu_flags_match): Move AVX512VL check ahead.
2018-03-08 Jan Beulich <jbeulich@suse.com>
* config/tc-i386.c (CPU_FLAGS_32BIT_MATCH): Delete.

View File

@ -1712,6 +1712,11 @@ cpu_flags_match (const insn_template *t)
/* This instruction is available only on some archs. */
i386_cpu_flags cpu = cpu_arch_flags;
/* AVX512VL is no standalone feature - match it and then strip it. */
if (x.bitfield.cpuavx512vl && !cpu.bitfield.cpuavx512vl)
return match;
x.bitfield.cpuavx512vl = 0;
cpu = cpu_flags_and (x, cpu);
if (!cpu_flags_all_zero (&cpu))
{
@ -1724,17 +1729,6 @@ cpu_flags_match (const insn_template *t)
&& (!x.bitfield.cpupclmul || cpu.bitfield.cpupclmul))
match |= CPU_FLAGS_ARCH_MATCH;
}
else if (x.bitfield.cpuavx512vl)
{
/* Match AVX512VL. */
if (cpu.bitfield.cpuavx512vl)
{
/* Need another match. */
cpu.bitfield.cpuavx512vl = 0;
if (!cpu_flags_all_zero (&cpu))
match |= CPU_FLAGS_ARCH_MATCH;
}
}
else
match |= CPU_FLAGS_ARCH_MATCH;
}