From b28d1bda54728d10ae189a323c343b6d76f94b8e Mon Sep 17 00:00:00 2001 From: Ilya Tocar Date: Fri, 18 Jul 2014 14:59:54 +0400 Subject: Add support for AVX512VL. Add AVX512VL versions of AVX512F instructions. gas/ * config/tc-i386.c (cpu_arch): Add .avx512vl, CPU_AVX512VL_FLAGS. (build_vex_prefix): Don't abort on VEX.W. (check_VecOperands): Support BROADCAST_1TO4 and BROADCAST_1TO2. (check_VecOperations): Ditto. * doc/c-i386.texi: Document avx512vl/.avx512vl. gas/testsuite/ * gas/i386/avx512f_vl-intel.d: New. * gas/i386/avx512f_vl-opts-intel.d: New. * gas/i386/avx512f_vl-opts.d: New. * gas/i386/avx512f_vl-opts.s: New. * gas/i386/avx512f_vl-wig.s: New. * gas/i386/avx512f_vl-wig1-intel.d: New. * gas/i386/avx512f_vl-wig1.d: New. * gas/i386/avx512f_vl.d: New. * gas/i386/avx512f_vl.s: New. * gas/i386/i386.exp: Run new AVX-512 tests. * gas/i386/x86-64-avx512f_vl-intel.d: New. * gas/i386/x86-64-avx512f_vl-opts-intel.d: New. * gas/i386/x86-64-avx512f_vl-opts.d: New. * gas/i386/x86-64-avx512f_vl-opts.s: New. * gas/i386/x86-64-avx512f_vl-wig.s: New. * gas/i386/x86-64-avx512f_vl-wig1-intel.d: New. * gas/i386/x86-64-avx512f_vl-wig1.d: New. * gas/i386/x86-64-avx512f_vl.d: New. * gas/i386/x86-64-avx512f_vl.s: New. opcodes/ * i386-dis.c (intel_operand_size): Support 128/256 length in vex_vsib_q_w_dq_mode. (OP_E_memory): Add ymmq_mode handling, handle new broadcast. * i386-gen.c (cpu_flag_init): Add CPU_AVX512VL_FLAGS. (cpu_flags): Add CpuAVX512VL. * i386-init.h: Regenerated. * i386-opc.h (CpuAVX512VL): New. (i386_cpu_flags): Add cpuavx512vl. (BROADCAST_1TO4, BROADCAST_1TO2): Define. * i386-opc.tbl: Add AVX512VL instructions. * i386-tbl.h: Regenerate. --- opcodes/i386-gen.c | 3 +++ 1 file changed, 3 insertions(+) (limited to 'opcodes/i386-gen.c') diff --git a/opcodes/i386-gen.c b/opcodes/i386-gen.c index 1856137..d6a62bd 100644 --- a/opcodes/i386-gen.c +++ b/opcodes/i386-gen.c @@ -231,6 +231,8 @@ static initializer cpu_flag_init[] = "CpuPREFETCHWT1" }, { "CPU_SE1_FLAGS", "CpuSE1" }, + { "CPU_AVX512VL_FLAGS", + "CpuMMX|CpuSSE|CpuSSE2|CpuSSE3|CpuSSSE3|CpuSSE4_1|CpuSSE4_2|CpuAVX|CpuAVX2|CpuAVX512F|CpuAVX512VL" }, }; static initializer operand_type_init[] = @@ -379,6 +381,7 @@ static bitfield cpu_flags[] = BITFIELD (CpuAVX512CD), BITFIELD (CpuAVX512ER), BITFIELD (CpuAVX512PF), + BITFIELD (CpuAVX512VL), BITFIELD (CpuL1OM), BITFIELD (CpuK1OM), BITFIELD (CpuSSE4a), -- cgit v1.1