From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 20048 invoked by alias); 2 Nov 2016 20:55:49 -0000 Mailing-List: contact archer-commits-help@sourceware.org; run by ezmlm Sender: Precedence: bulk List-Post: List-Help: List-Subscribe: Received: (qmail 19998 invoked by uid 9674); 2 Nov 2016 20:55:49 -0000 Date: Wed, 02 Nov 2016 20:55:00 -0000 Message-ID: <20161102205547.19939.qmail@sourceware.org> From: jkratoch@sourceware.org To: archer-commits@sourceware.org Subject: [SCM] users/jkratoch/dwarf5gcc-gdb: Merge branch 'dwarf5gcc' into dwarf5gcc-gdb X-Git-Refname: refs/heads/users/jkratoch/dwarf5gcc-gdb X-Git-Reftype: branch X-Git-Oldrev: c798ab9a523c411797894d7085f825d69fd5bfc8 X-Git-Newrev: 3339a3d5dadae7d79ba6a0773debbd8a193e2596 X-SW-Source: 2016-q4/txt/msg00007.txt.bz2 List-Id: The branch, users/jkratoch/dwarf5gcc-gdb has been updated via 3339a3d5dadae7d79ba6a0773debbd8a193e2596 (commit) via 02e0217ac3479b8a6b3a41a57aafcfa5c496a628 (commit) via 47acf0bd9faef8634d242e19ec3b7f784d10ba76 (commit) via 920d2ddccb72a366140ed28283165b274f7a9045 (commit) via 95dc74aa02352505785bb70ba60b706e70c74584 (commit) via af955fe696088e69b436947b4a6f134567d31793 (commit) from c798ab9a523c411797894d7085f825d69fd5bfc8 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 3339a3d5dadae7d79ba6a0773debbd8a193e2596 Merge: c798ab9 02e0217 Author: Jan Kratochvil Date: Wed Nov 2 21:54:32 2016 +0100 Merge branch 'dwarf5gcc' into dwarf5gcc-gdb ----------------------------------------------------------------------- Summary of changes: bfd/ChangeLog | 5 + bfd/reloc.c | 1 + bfd/version.h | 2 +- gas/ChangeLog | 47 + gas/config/tc-i386.c | 25 + gas/doc/c-i386.texi | 10 +- gas/testsuite/gas/i386/avx512_4fmaps-intel.d | 79 + gas/testsuite/gas/i386/avx512_4fmaps-warn.l | 13 + gas/testsuite/gas/i386/avx512_4fmaps-warn.s | 23 + gas/testsuite/gas/i386/avx512_4fmaps.d | 79 + gas/testsuite/gas/i386/avx512_4fmaps.s | 75 + gas/testsuite/gas/i386/avx512_4fmaps_vl-intel.d | 78 + gas/testsuite/gas/i386/avx512_4fmaps_vl-warn.l | 13 + gas/testsuite/gas/i386/avx512_4fmaps_vl-warn.s | 23 + gas/testsuite/gas/i386/avx512_4fmaps_vl.d | 78 + gas/testsuite/gas/i386/avx512_4fmaps_vl.s | 74 + gas/testsuite/gas/i386/avx512_4vnniw-intel.d | 45 + gas/testsuite/gas/i386/avx512_4vnniw.d | 45 + gas/testsuite/gas/i386/avx512_4vnniw.s | 41 + gas/testsuite/gas/i386/avx512_4vnniw_vl-intel.d | 79 + gas/testsuite/gas/i386/avx512_4vnniw_vl.d | 79 + gas/testsuite/gas/i386/avx512_4vnniw_vl.s | 75 + gas/testsuite/gas/i386/i386.exp | 20 + .../gas/i386/x86-64-avx512_4fmaps-intel.d | 79 + gas/testsuite/gas/i386/x86-64-avx512_4fmaps-warn.l | 7 + gas/testsuite/gas/i386/x86-64-avx512_4fmaps-warn.s | 13 + gas/testsuite/gas/i386/x86-64-avx512_4fmaps.d | 79 + gas/testsuite/gas/i386/x86-64-avx512_4fmaps.s | 75 + .../gas/i386/x86-64-avx512_4fmaps_vl-intel.d | 79 + .../gas/i386/x86-64-avx512_4fmaps_vl-warn.l | 13 + .../gas/i386/x86-64-avx512_4fmaps_vl-warn.s | 23 + gas/testsuite/gas/i386/x86-64-avx512_4fmaps_vl.d | 79 + gas/testsuite/gas/i386/x86-64-avx512_4fmaps_vl.s | 75 + .../gas/i386/x86-64-avx512_4vnniw-intel.d | 45 + gas/testsuite/gas/i386/x86-64-avx512_4vnniw.d | 45 + gas/testsuite/gas/i386/x86-64-avx512_4vnniw.s | 41 + .../gas/i386/x86-64-avx512_4vnniw_vl-intel.d | 79 + gas/testsuite/gas/i386/x86-64-avx512_4vnniw_vl.d | 79 + gas/testsuite/gas/i386/x86-64-avx512_4vnniw_vl.s | 75 + opcodes/ChangeLog | 30 + opcodes/i386-dis-evex.h | 22 +- opcodes/i386-dis.c | 2 + opcodes/i386-gen.c | 13 +- opcodes/i386-init.h | 284 +- opcodes/i386-opc.h | 12 + opcodes/i386-opc.tbl | 28 + opcodes/i386-tbl.h |21130 ++++++++++---------- 47 files changed, 12849 insertions(+), 10567 deletions(-) create mode 100644 gas/testsuite/gas/i386/avx512_4fmaps-intel.d create mode 100644 gas/testsuite/gas/i386/avx512_4fmaps-warn.l create mode 100644 gas/testsuite/gas/i386/avx512_4fmaps-warn.s create mode 100644 gas/testsuite/gas/i386/avx512_4fmaps.d create mode 100644 gas/testsuite/gas/i386/avx512_4fmaps.s create mode 100644 gas/testsuite/gas/i386/avx512_4fmaps_vl-intel.d create mode 100644 gas/testsuite/gas/i386/avx512_4fmaps_vl-warn.l create mode 100644 gas/testsuite/gas/i386/avx512_4fmaps_vl-warn.s create mode 100644 gas/testsuite/gas/i386/avx512_4fmaps_vl.d create mode 100644 gas/testsuite/gas/i386/avx512_4fmaps_vl.s create mode 100644 gas/testsuite/gas/i386/avx512_4vnniw-intel.d create mode 100644 gas/testsuite/gas/i386/avx512_4vnniw.d create mode 100644 gas/testsuite/gas/i386/avx512_4vnniw.s create mode 100644 gas/testsuite/gas/i386/avx512_4vnniw_vl-intel.d create mode 100644 gas/testsuite/gas/i386/avx512_4vnniw_vl.d create mode 100644 gas/testsuite/gas/i386/avx512_4vnniw_vl.s create mode 100644 gas/testsuite/gas/i386/x86-64-avx512_4fmaps-intel.d create mode 100644 gas/testsuite/gas/i386/x86-64-avx512_4fmaps-warn.l create mode 100644 gas/testsuite/gas/i386/x86-64-avx512_4fmaps-warn.s create mode 100644 gas/testsuite/gas/i386/x86-64-avx512_4fmaps.d create mode 100644 gas/testsuite/gas/i386/x86-64-avx512_4fmaps.s create mode 100644 gas/testsuite/gas/i386/x86-64-avx512_4fmaps_vl-intel.d create mode 100644 gas/testsuite/gas/i386/x86-64-avx512_4fmaps_vl-warn.l create mode 100644 gas/testsuite/gas/i386/x86-64-avx512_4fmaps_vl-warn.s create mode 100644 gas/testsuite/gas/i386/x86-64-avx512_4fmaps_vl.d create mode 100644 gas/testsuite/gas/i386/x86-64-avx512_4fmaps_vl.s create mode 100644 gas/testsuite/gas/i386/x86-64-avx512_4vnniw-intel.d create mode 100644 gas/testsuite/gas/i386/x86-64-avx512_4vnniw.d create mode 100644 gas/testsuite/gas/i386/x86-64-avx512_4vnniw.s create mode 100644 gas/testsuite/gas/i386/x86-64-avx512_4vnniw_vl-intel.d create mode 100644 gas/testsuite/gas/i386/x86-64-avx512_4vnniw_vl.d create mode 100644 gas/testsuite/gas/i386/x86-64-avx512_4vnniw_vl.s First 500 lines of diff: diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 75ffab5..49d490d 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,8 @@ +2016-11-01 Maciej W. Rozycki + + * reloc.c (bfd_default_reloc_type_lookup) : Do + not fall through to the default case. + 2016-11-01 Palmer Dabbelt Andrew Waterman diff --git a/bfd/reloc.c b/bfd/reloc.c index 7c67eeb..56cd79b 100644 --- a/bfd/reloc.c +++ b/bfd/reloc.c @@ -7859,6 +7859,7 @@ bfd_default_reloc_type_lookup (bfd *abfd, bfd_reloc_code_real_type code) default: BFD_FAIL (); } + break; default: BFD_FAIL (); } diff --git a/bfd/version.h b/bfd/version.h index 0f1c767..5a906cd 100644 --- a/bfd/version.h +++ b/bfd/version.h @@ -1,4 +1,4 @@ -#define BFD_VERSION_DATE 20161101 +#define BFD_VERSION_DATE 20161102 #define BFD_VERSION @bfd_version@ #define BFD_VERSION_STRING @bfd_version_package@ @bfd_version_string@ #define REPORT_BUGS_TO @report_bugs_to@ diff --git a/gas/ChangeLog b/gas/ChangeLog index 8eabfd5..98aa749 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,50 @@ +2016-11-02 Igor Tsimbalist + + * config/tc-i386.c: (cpu_arch) Add .avx512_4vnniw. + (cpu_noarch): Add noavx512_4vnniw. + * doc/c-i386.texi: Document avx512_4vnniw, noavx512_4vnniw. + * testsuite/gas/i386/i386.exp: Run AVX512_4VNNIW tests. + * testsuite/gas/i386/avx512_4vnniwd_vl-intel.d: New test. + * testsuite/gas/i386/avx512_4vnniwd_vl.d: Ditto. + * testsuite/gas/i386/avx512_4vnniwd_vl.s: Ditto. + * testsuite/gas/i386/avx512_4vnniwd-intel.d: Ditto. + * testsuite/gas/i386/avx512_4vnniwd.d: Ditto. + * testsuite/gas/i386/avx512_4vnniwd.s: Ditto. + * testsuite/gas/i386/x86-64-avx512_4vnniwd_vl-intel.d: Ditto. + * testsuite/gas/i386/x86-64-avx512_4vnniwd_vl.d: Ditto. + * testsuite/gas/i386/x86-64-avx512_4vnniwd_vl.s: Ditto. + * testsuite/gas/i386/x86-64-avx512_4vnniwd-intel.d: Ditto. + * testsuite/gas/i386/x86-64-avx512_4vnniwd.d: Ditto. + * testsuite/gas/i386/x86-64-avx512_4vnniwd.s: Ditto. + +2016-11-02 Igor Tsimbalist + + * config/tc-i386.c (cpu_arch): Add .avx512_4fmaps. + (cpu_noarch): Add noavx512_4fmaps. + (process_operands): Handle implicit quad group. + * doc/c-i386.texi: Document avx512_4fmaps, noavx512_4fmaps. + * testsuite/gas/i386/i386.exp: Add AVX512_4FMAPS tests. + * testsuite/gas/i386/avx512_4fmaps_vl-intel.d: New test. + * testsuite/gas/i386/avx512_4fmaps_vl.d: Ditto. + * testsuite/gas/i386/avx512_4fmaps_vl.s: Ditto. + * testsuite/gas/i386/avx512_4fmaps-intel.d: Ditto. + * testsuite/gas/i386/avx512_4fmaps.d: Ditto. + * testsuite/gas/i386/avx512_4fmaps.s: Ditto. + * testsuite/gas/i386/avx512_4fmaps-warn.l: Ditto. + * testsuite/gas/i386/avx512_4fmaps-warn.s: Ditto. + * testsuite/gas/i386/avx512_4fmaps_vl-warn.l: Ditto. + * testsuite/gas/i386/avx512_4fmaps_vl-warn.s: Ditto. + * testsuite/gas/i386/x86-64-avx512_4fmaps_vl-intel.d: Ditto. + * testsuite/gas/i386/x86-64-avx512_4fmaps_vl.d: Ditto. + * testsuite/gas/i386/x86-64-avx512_4fmaps_vl.s: Ditto. + * testsuite/gas/i386/x86-64-avx512_4fmaps-intel.d: Ditto. + * testsuite/gas/i386/x86-64-avx512_4fmaps.d: Ditto. + * testsuite/gas/i386/x86-64-avx512_4fmaps.s: Ditto. + * testsuite/gas/i386/x86-64-avx512_4fmaps-warn.l: Ditto. + * testsuite/gas/i386/x86-64-avx512_4fmaps-warn.s: Ditto. + * testsuite/gas/i386/x86-64-avx512_4fmaps_vl-warn.l: Ditto. + * testsuite/gas/i386/x86-64-avx512_4fmaps_vl-warn.s: Ditto. + 2016-11-01 Palmer Dabbelt Andrew Waterman diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c index 6724bca..ca26127 100644 --- a/gas/config/tc-i386.c +++ b/gas/config/tc-i386.c @@ -962,6 +962,10 @@ static const arch_entry cpu_arch[] = CPU_AVX512IFMA_FLAGS, 0 }, { STRING_COMMA_LEN (".avx512vbmi"), PROCESSOR_UNKNOWN, CPU_AVX512VBMI_FLAGS, 0 }, + { STRING_COMMA_LEN (".avx512_4fmaps"), PROCESSOR_UNKNOWN, + CPU_AVX512_4FMAPS_FLAGS, 0 }, + { STRING_COMMA_LEN (".avx512_4vnniw"), PROCESSOR_UNKNOWN, + CPU_AVX512_4VNNIW_FLAGS, 0 }, { STRING_COMMA_LEN (".clzero"), PROCESSOR_UNKNOWN, CPU_CLZERO_FLAGS, 0 }, { STRING_COMMA_LEN (".mwaitx"), PROCESSOR_UNKNOWN, @@ -999,6 +1003,8 @@ static const noarch_entry cpu_noarch[] = { STRING_COMMA_LEN ("noavx512vl"), CPU_ANY_AVX512VL_FLAGS }, { STRING_COMMA_LEN ("noavx512ifma"), CPU_ANY_AVX512IFMA_FLAGS }, { STRING_COMMA_LEN ("noavx512vbmi"), CPU_ANY_AVX512VBMI_FLAGS }, + { STRING_COMMA_LEN ("noavx512_4fmaps"), CPU_ANY_AVX512_4FMAPS_FLAGS }, + { STRING_COMMA_LEN ("noavx512_4vnniw"), CPU_ANY_AVX512_4VNNIW_FLAGS }, }; #ifdef I386COFF @@ -5966,6 +5972,25 @@ duplicate: i.reg_operands--; i.tm.operands--; } + else if (i.tm.opcode_modifier.implicitquadgroup) + { + /* The second operand must be {x,y,z}mmN, where N is a multiple of 4. */ + gas_assert (i.operands >= 2 + && (operand_type_equal (&i.types[1], ®xmm) + || operand_type_equal (&i.types[1], ®ymm) + || operand_type_equal (&i.types[1], ®zmm))); + unsigned int regnum = register_number (i.op[1].regs); + unsigned int first_reg_in_group = regnum & ~3; + unsigned int last_reg_in_group = first_reg_in_group + 3; + if (regnum != first_reg_in_group) { + as_warn (_("the second source register `%s%s' implicitly denotes" + " `%s%.3s%d' to `%s%.3s%d' source group in `%s'"), + register_prefix, i.op[1].regs->reg_name, + register_prefix, i.op[1].regs->reg_name, first_reg_in_group, + register_prefix, i.op[1].regs->reg_name, last_reg_in_group, + i.tm.name); + } + } else if (i.tm.opcode_modifier.regkludge) { /* The imul $imm, %reg instruction is converted into diff --git a/gas/doc/c-i386.texi b/gas/doc/c-i386.texi index 43b4008..c3c632d 100644 --- a/gas/doc/c-i386.texi +++ b/gas/doc/c-i386.texi @@ -180,6 +180,8 @@ accept various extension mnemonics. For example, @code{avx512dq}, @code{avx512ifma}, @code{avx512vbmi}, +@code{avx512_4fmaps}, +@code{avx512_4vnniw}, @code{noavx512f}, @code{noavx512cd}, @code{noavx512er}, @@ -189,6 +191,8 @@ accept various extension mnemonics. For example, @code{noavx512dq}, @code{noavx512ifma}, @code{noavx512vbmi}, +@code{noavx512_4fmaps}, +@code{noavx512_4vnniw}, @code{vmx}, @code{vmfunc}, @code{smx}, @@ -1190,12 +1194,12 @@ supported on the CPU specified. The choices for @var{cpu_type} are: @item @samp{.clflushopt} @tab @samp{.xsavec} @tab @samp{.xsaves} @tab @samp{.se1} @item @samp{.avx512f} @tab @samp{.avx512cd} @tab @samp{.avx512er} @tab @samp{.avx512pf} @item @samp{.avx512vl} @tab @samp{.avx512bw} @tab @samp{.avx512dq} @tab @samp{.avx512ifma} -@item @samp{.avx512vbmi} @tab @samp{.clwb} +@item @samp{.avx512vbmi} @tab @samp{.avx512_4fmaps} @tab @samp{.avx512_4vnniw} +@item @samp{.clwb} @tab @samp{.rdpid} @tab @samp{.ptwrite} @item @samp{.3dnow} @tab @samp{.3dnowa} @tab @samp{.sse4a} @tab @samp{.sse5} @item @samp{.syscall} @tab @samp{.rdtscp} @tab @samp{.svme} @tab @samp{.abm} @item @samp{.lwp} @tab @samp{.fma4} @tab @samp{.xop} @tab @samp{.cx16} -@item @samp{.padlock} @tab @samp{.clzero} @tab @samp{.mwaitx} @tab @samp{.rdpid} -@item @samp{.ptwrite} +@item @samp{.padlock} @tab @samp{.clzero} @tab @samp{.mwaitx} @end multitable Apart from the warning, there are only two other effects on diff --git a/gas/testsuite/gas/i386/avx512_4fmaps-intel.d b/gas/testsuite/gas/i386/avx512_4fmaps-intel.d new file mode 100644 index 0000000..9406309 --- /dev/null +++ b/gas/testsuite/gas/i386/avx512_4fmaps-intel.d @@ -0,0 +1,79 @@ +#objdump: -dw -Mintel +#name: i386 AVX512/4FMAPS insns (Intel disassembly) +#source: avx512_4fmaps.s + +.*: +file format .* + + +Disassembly of section \.text: + +0+ <_start>: +[ ]*[a-f0-9]+:[ ]*62 f2 5f 48 9a 09[ ]*v4fmaddps zmm1,zmm4,XMMWORD PTR \[ecx\] +[ ]*[a-f0-9]+:[ ]*62 f2 5f 4f 9a 09[ ]*v4fmaddps zmm1\{k7\},zmm4,XMMWORD PTR \[ecx\] +[ ]*[a-f0-9]+:[ ]*62 f2 5f cf 9a 09[ ]*v4fmaddps zmm1\{k7\}\{z\},zmm4,XMMWORD PTR \[ecx\] +[ ]*[a-f0-9]+:[ ]*62 f2 5f 48 9a 8c f4 c0 1d fe ff[ ]*v4fmaddps zmm1,zmm4,XMMWORD PTR \[esp\+esi\*8-0x1e240\] +[ ]*[a-f0-9]+:[ ]*62 f2 5f 48 9a 8a e0 0f 00 00[ ]*v4fmaddps zmm1,zmm4,XMMWORD PTR \[edx\+0xfe0\] +[ ]*[a-f0-9]+:[ ]*62 f2 5f 48 9a 8a 00 10 00 00[ ]*v4fmaddps zmm1,zmm4,XMMWORD PTR \[edx\+0x1000\] +[ ]*[a-f0-9]+:[ ]*62 f2 5f 48 9a 8a 00 f0 ff ff[ ]*v4fmaddps zmm1,zmm4,XMMWORD PTR \[edx-0x1000\] +[ ]*[a-f0-9]+:[ ]*62 f2 5f 48 9a 8a e0 ef ff ff[ ]*v4fmaddps zmm1,zmm4,XMMWORD PTR \[edx-0x1020\] +[ ]*[a-f0-9]+:[ ]*62 f2 5f 48 aa 09[ ]*v4fnmaddps zmm1,zmm4,XMMWORD PTR \[ecx\] +[ ]*[a-f0-9]+:[ ]*62 f2 5f 4f aa 09[ ]*v4fnmaddps zmm1\{k7\},zmm4,XMMWORD PTR \[ecx\] +[ ]*[a-f0-9]+:[ ]*62 f2 5f cf aa 09[ ]*v4fnmaddps zmm1\{k7\}\{z\},zmm4,XMMWORD PTR \[ecx\] +[ ]*[a-f0-9]+:[ ]*62 f2 5f 48 aa 8c f4 c0 1d fe ff[ ]*v4fnmaddps zmm1,zmm4,XMMWORD PTR \[esp\+esi\*8-0x1e240\] +[ ]*[a-f0-9]+:[ ]*62 f2 5f 48 aa 8a e0 0f 00 00[ ]*v4fnmaddps zmm1,zmm4,XMMWORD PTR \[edx\+0xfe0\] +[ ]*[a-f0-9]+:[ ]*62 f2 5f 48 aa 8a 00 10 00 00[ ]*v4fnmaddps zmm1,zmm4,XMMWORD PTR \[edx\+0x1000\] +[ ]*[a-f0-9]+:[ ]*62 f2 5f 48 aa 8a 00 f0 ff ff[ ]*v4fnmaddps zmm1,zmm4,XMMWORD PTR \[edx-0x1000\] +[ ]*[a-f0-9]+:[ ]*62 f2 5f 48 aa 8a e0 ef ff ff[ ]*v4fnmaddps zmm1,zmm4,XMMWORD PTR \[edx-0x1020\] +[ ]*[a-f0-9]+:[ ]*62 f2 5f 08 9b 09[ ]*v4fmaddss xmm1,xmm4,XMMWORD PTR \[ecx\] +[ ]*[a-f0-9]+:[ ]*62 f2 5f 0f 9b 09[ ]*v4fmaddss xmm1\{k7\},xmm4,XMMWORD PTR \[ecx\] +[ ]*[a-f0-9]+:[ ]*62 f2 5f 8f 9b 09[ ]*v4fmaddss xmm1\{k7\}\{z\},xmm4,XMMWORD PTR \[ecx\] +[ ]*[a-f0-9]+:[ ]*62 f2 5f 08 9b 8c f4 c0 1d fe ff[ ]*v4fmaddss xmm1,xmm4,XMMWORD PTR \[esp\+esi\*8-0x1e240\] +[ ]*[a-f0-9]+:[ ]*62 f2 5f 08 9b 8a e0 0f 00 00[ ]*v4fmaddss xmm1,xmm4,XMMWORD PTR \[edx\+0xfe0\] +[ ]*[a-f0-9]+:[ ]*62 f2 5f 08 9b 8a 00 10 00 00[ ]*v4fmaddss xmm1,xmm4,XMMWORD PTR \[edx\+0x1000\] +[ ]*[a-f0-9]+:[ ]*62 f2 5f 08 9b 8a 00 f0 ff ff[ ]*v4fmaddss xmm1,xmm4,XMMWORD PTR \[edx-0x1000\] +[ ]*[a-f0-9]+:[ ]*62 f2 5f 08 9b 8a e0 ef ff ff[ ]*v4fmaddss xmm1,xmm4,XMMWORD PTR \[edx-0x1020\] +[ ]*[a-f0-9]+:[ ]*62 f2 5f 08 ab 09[ ]*v4fnmaddss xmm1,xmm4,XMMWORD PTR \[ecx\] +[ ]*[a-f0-9]+:[ ]*62 f2 5f 0f ab 09[ ]*v4fnmaddss xmm1\{k7\},xmm4,XMMWORD PTR \[ecx\] +[ ]*[a-f0-9]+:[ ]*62 f2 5f 8f ab 09[ ]*v4fnmaddss xmm1\{k7\}\{z\},xmm4,XMMWORD PTR \[ecx\] +[ ]*[a-f0-9]+:[ ]*62 f2 5f 08 ab 8c f4 c0 1d fe ff[ ]*v4fnmaddss xmm1,xmm4,XMMWORD PTR \[esp\+esi\*8-0x1e240\] +[ ]*[a-f0-9]+:[ ]*62 f2 5f 08 ab 8a e0 0f 00 00[ ]*v4fnmaddss xmm1,xmm4,XMMWORD PTR \[edx\+0xfe0\] +[ ]*[a-f0-9]+:[ ]*62 f2 5f 08 ab 8a 00 10 00 00[ ]*v4fnmaddss xmm1,xmm4,XMMWORD PTR \[edx\+0x1000\] +[ ]*[a-f0-9]+:[ ]*62 f2 5f 08 ab 8a 00 f0 ff ff[ ]*v4fnmaddss xmm1,xmm4,XMMWORD PTR \[edx-0x1000\] +[ ]*[a-f0-9]+:[ ]*62 f2 5f 08 ab 8a e0 ef ff ff[ ]*v4fnmaddss xmm1,xmm4,XMMWORD PTR \[edx-0x1020\] +[ ]*[a-f0-9]+:[ ]*62 f2 5f 48 9a 09[ ]*v4fmaddps zmm1,zmm4,XMMWORD PTR \[ecx\] +[ ]*[a-f0-9]+:[ ]*62 f2 5f 48 9a 09[ ]*v4fmaddps zmm1,zmm4,XMMWORD PTR \[ecx\] +[ ]*[a-f0-9]+:[ ]*62 f2 5f 4f 9a 09[ ]*v4fmaddps zmm1\{k7\},zmm4,XMMWORD PTR \[ecx\] +[ ]*[a-f0-9]+:[ ]*62 f2 5f cf 9a 09[ ]*v4fmaddps zmm1\{k7\}\{z\},zmm4,XMMWORD PTR \[ecx\] +[ ]*[a-f0-9]+:[ ]*62 f2 5f 48 9a 8c f4 c0 1d fe ff[ ]*v4fmaddps zmm1,zmm4,XMMWORD PTR \[esp\+esi\*8-0x1e240\] +[ ]*[a-f0-9]+:[ ]*62 f2 5f 48 9a 8a e0 0f 00 00[ ]*v4fmaddps zmm1,zmm4,XMMWORD PTR \[edx\+0xfe0\] +[ ]*[a-f0-9]+:[ ]*62 f2 5f 48 9a 8a 00 10 00 00[ ]*v4fmaddps zmm1,zmm4,XMMWORD PTR \[edx\+0x1000\] +[ ]*[a-f0-9]+:[ ]*62 f2 5f 48 9a 8a 00 f0 ff ff[ ]*v4fmaddps zmm1,zmm4,XMMWORD PTR \[edx-0x1000\] +[ ]*[a-f0-9]+:[ ]*62 f2 5f 48 9a 8a e0 ef ff ff[ ]*v4fmaddps zmm1,zmm4,XMMWORD PTR \[edx-0x1020\] +[ ]*[a-f0-9]+:[ ]*62 f2 5f 48 aa 09[ ]*v4fnmaddps zmm1,zmm4,XMMWORD PTR \[ecx\] +[ ]*[a-f0-9]+:[ ]*62 f2 5f 48 aa 09[ ]*v4fnmaddps zmm1,zmm4,XMMWORD PTR \[ecx\] +[ ]*[a-f0-9]+:[ ]*62 f2 5f 4f aa 09[ ]*v4fnmaddps zmm1\{k7\},zmm4,XMMWORD PTR \[ecx\] +[ ]*[a-f0-9]+:[ ]*62 f2 5f cf aa 09[ ]*v4fnmaddps zmm1\{k7\}\{z\},zmm4,XMMWORD PTR \[ecx\] +[ ]*[a-f0-9]+:[ ]*62 f2 5f 48 aa 8c f4 c0 1d fe ff[ ]*v4fnmaddps zmm1,zmm4,XMMWORD PTR \[esp\+esi\*8-0x1e240\] +[ ]*[a-f0-9]+:[ ]*62 f2 5f 48 aa 8a e0 0f 00 00[ ]*v4fnmaddps zmm1,zmm4,XMMWORD PTR \[edx\+0xfe0\] +[ ]*[a-f0-9]+:[ ]*62 f2 5f 48 aa 8a 00 10 00 00[ ]*v4fnmaddps zmm1,zmm4,XMMWORD PTR \[edx\+0x1000\] +[ ]*[a-f0-9]+:[ ]*62 f2 5f 48 aa 8a 00 f0 ff ff[ ]*v4fnmaddps zmm1,zmm4,XMMWORD PTR \[edx-0x1000\] +[ ]*[a-f0-9]+:[ ]*62 f2 5f 48 aa 8a e0 ef ff ff[ ]*v4fnmaddps zmm1,zmm4,XMMWORD PTR \[edx-0x1020\] +[ ]*[a-f0-9]+:[ ]*62 f2 5f 08 9b 09[ ]*v4fmaddss xmm1,xmm4,XMMWORD PTR \[ecx\] +[ ]*[a-f0-9]+:[ ]*62 f2 5f 08 9b 09[ ]*v4fmaddss xmm1,xmm4,XMMWORD PTR \[ecx\] +[ ]*[a-f0-9]+:[ ]*62 f2 5f 0f 9b 09[ ]*v4fmaddss xmm1\{k7\},xmm4,XMMWORD PTR \[ecx\] +[ ]*[a-f0-9]+:[ ]*62 f2 5f 8f 9b 09[ ]*v4fmaddss xmm1\{k7\}\{z\},xmm4,XMMWORD PTR \[ecx\] +[ ]*[a-f0-9]+:[ ]*62 f2 5f 08 9b 8c f4 c0 1d fe ff[ ]*v4fmaddss xmm1,xmm4,XMMWORD PTR \[esp\+esi\*8-0x1e240\] +[ ]*[a-f0-9]+:[ ]*62 f2 5f 08 9b 8a e0 0f 00 00[ ]*v4fmaddss xmm1,xmm4,XMMWORD PTR \[edx\+0xfe0\] +[ ]*[a-f0-9]+:[ ]*62 f2 5f 08 9b 8a 00 10 00 00[ ]*v4fmaddss xmm1,xmm4,XMMWORD PTR \[edx\+0x1000\] +[ ]*[a-f0-9]+:[ ]*62 f2 5f 08 9b 8a 00 f0 ff ff[ ]*v4fmaddss xmm1,xmm4,XMMWORD PTR \[edx-0x1000\] +[ ]*[a-f0-9]+:[ ]*62 f2 5f 08 9b 8a e0 ef ff ff[ ]*v4fmaddss xmm1,xmm4,XMMWORD PTR \[edx-0x1020\] +[ ]*[a-f0-9]+:[ ]*62 f2 5f 08 ab 09[ ]*v4fnmaddss xmm1,xmm4,XMMWORD PTR \[ecx\] +[ ]*[a-f0-9]+:[ ]*62 f2 5f 08 ab 09[ ]*v4fnmaddss xmm1,xmm4,XMMWORD PTR \[ecx\] +[ ]*[a-f0-9]+:[ ]*62 f2 5f 0f ab 09[ ]*v4fnmaddss xmm1\{k7\},xmm4,XMMWORD PTR \[ecx\] +[ ]*[a-f0-9]+:[ ]*62 f2 5f 8f ab 09[ ]*v4fnmaddss xmm1\{k7\}\{z\},xmm4,XMMWORD PTR \[ecx\] +[ ]*[a-f0-9]+:[ ]*62 f2 5f 08 ab 8c f4 c0 1d fe ff[ ]*v4fnmaddss xmm1,xmm4,XMMWORD PTR \[esp\+esi\*8-0x1e240\] +[ ]*[a-f0-9]+:[ ]*62 f2 5f 08 ab 8a e0 0f 00 00[ ]*v4fnmaddss xmm1,xmm4,XMMWORD PTR \[edx\+0xfe0\] +[ ]*[a-f0-9]+:[ ]*62 f2 5f 08 ab 8a 00 10 00 00[ ]*v4fnmaddss xmm1,xmm4,XMMWORD PTR \[edx\+0x1000\] +[ ]*[a-f0-9]+:[ ]*62 f2 5f 08 ab 8a 00 f0 ff ff[ ]*v4fnmaddss xmm1,xmm4,XMMWORD PTR \[edx-0x1000\] +[ ]*[a-f0-9]+:[ ]*62 f2 5f 08 ab 8a e0 ef ff ff[ ]*v4fnmaddss xmm1,xmm4,XMMWORD PTR \[edx-0x1020\] +#pass diff --git a/gas/testsuite/gas/i386/avx512_4fmaps-warn.l b/gas/testsuite/gas/i386/avx512_4fmaps-warn.l new file mode 100644 index 0000000..d8a0b79 --- /dev/null +++ b/gas/testsuite/gas/i386/avx512_4fmaps-warn.l @@ -0,0 +1,13 @@ +.*: Assembler messages: +.*:5: Warning: the second source register `%xmm1' implicitly denotes `%xmm0' to `%xmm3' source group in `v4fmaddps' +.*:6: Warning: the second source register `%xmm2' implicitly denotes `%xmm0' to `%xmm3' source group in `v4fmaddps' +.*:7: Warning: the second source register `%xmm3' implicitly denotes `%xmm0' to `%xmm3' source group in `v4fmaddps' +.*:10: Warning: the second source register `%xmm1' implicitly denotes `%xmm0' to `%xmm3' source group in `v4fnmaddps' +.*:11: Warning: the second source register `%xmm2' implicitly denotes `%xmm0' to `%xmm3' source group in `v4fnmaddps' +.*:12: Warning: the second source register `%xmm3' implicitly denotes `%xmm0' to `%xmm3' source group in `v4fnmaddps' +.*:15: Warning: the second source register `%xmm1' implicitly denotes `%xmm0' to `%xmm3' source group in `v4fmaddss' +.*:16: Warning: the second source register `%xmm2' implicitly denotes `%xmm0' to `%xmm3' source group in `v4fmaddss' +.*:17: Warning: the second source register `%xmm3' implicitly denotes `%xmm0' to `%xmm3' source group in `v4fmaddss' +.*:20: Warning: the second source register `%xmm1' implicitly denotes `%xmm0' to `%xmm3' source group in `v4fnmaddss' +.*:21: Warning: the second source register `%xmm2' implicitly denotes `%xmm0' to `%xmm3' source group in `v4fnmaddss' +.*:22: Warning: the second source register `%xmm3' implicitly denotes `%xmm0' to `%xmm3' source group in `v4fnmaddss' diff --git a/gas/testsuite/gas/i386/avx512_4fmaps-warn.s b/gas/testsuite/gas/i386/avx512_4fmaps-warn.s new file mode 100644 index 0000000..650358e --- /dev/null +++ b/gas/testsuite/gas/i386/avx512_4fmaps-warn.s @@ -0,0 +1,23 @@ +# Check warnings for invalid usage of register group + +.text + v4fmaddps (%eax), %xmm0, %xmm6 + v4fmaddps (%eax), %xmm1, %xmm6 + v4fmaddps (%eax), %xmm2, %xmm6 + v4fmaddps (%eax), %xmm3, %xmm6 + v4fmaddps (%eax), %xmm4, %xmm6 + v4fnmaddps (%eax), %xmm0, %xmm6 + v4fnmaddps (%eax), %xmm1, %xmm6 + v4fnmaddps (%eax), %xmm2, %xmm6 + v4fnmaddps (%eax), %xmm3, %xmm6 + v4fnmaddps (%eax), %xmm4, %xmm6 + v4fmaddss (%eax), %xmm0, %xmm6 + v4fmaddss (%eax), %xmm1, %xmm6 + v4fmaddss (%eax), %xmm2, %xmm6 + v4fmaddss (%eax), %xmm3, %xmm6 + v4fmaddss (%eax), %xmm4, %xmm6 + v4fnmaddss (%eax), %xmm0, %xmm6 + v4fnmaddss (%eax), %xmm1, %xmm6 + v4fnmaddss (%eax), %xmm2, %xmm6 + v4fnmaddss (%eax), %xmm3, %xmm6 + v4fnmaddss (%eax), %xmm4, %xmm6 diff --git a/gas/testsuite/gas/i386/avx512_4fmaps.d b/gas/testsuite/gas/i386/avx512_4fmaps.d new file mode 100644 index 0000000..5e1f8dd --- /dev/null +++ b/gas/testsuite/gas/i386/avx512_4fmaps.d @@ -0,0 +1,79 @@ +#objdump: -dw +#name: i386 AVX512/4FMAPS insns +#source: avx512_4fmaps.s + +.*: +file format .* + + +Disassembly of section \.text: + +0+ <_start>: +[ ]*[a-f0-9]+:[ ]*62 f2 5f 48 9a 09[ ]*v4fmaddps \(%ecx\),%zmm4,%zmm1 +[ ]*[a-f0-9]+:[ ]*62 f2 5f 4f 9a 09[ ]*v4fmaddps \(%ecx\),%zmm4,%zmm1\{%k7\} +[ ]*[a-f0-9]+:[ ]*62 f2 5f cf 9a 09[ ]*v4fmaddps \(%ecx\),%zmm4,%zmm1\{%k7\}\{z\} +[ ]*[a-f0-9]+:[ ]*62 f2 5f 48 9a 8c f4 c0 1d fe ff[ ]*v4fmaddps -0x1e240\(%esp,%esi,8\),%zmm4,%zmm1 +[ ]*[a-f0-9]+:[ ]*62 f2 5f 48 9a 8a e0 0f 00 00[ ]*v4fmaddps 0xfe0\(%edx\),%zmm4,%zmm1 +[ ]*[a-f0-9]+:[ ]*62 f2 5f 48 9a 8a 00 10 00 00[ ]*v4fmaddps 0x1000\(%edx\),%zmm4,%zmm1 +[ ]*[a-f0-9]+:[ ]*62 f2 5f 48 9a 8a 00 f0 ff ff[ ]*v4fmaddps -0x1000\(%edx\),%zmm4,%zmm1 +[ ]*[a-f0-9]+:[ ]*62 f2 5f 48 9a 8a e0 ef ff ff[ ]*v4fmaddps -0x1020\(%edx\),%zmm4,%zmm1 +[ ]*[a-f0-9]+:[ ]*62 f2 5f 48 aa 09[ ]*v4fnmaddps \(%ecx\),%zmm4,%zmm1 +[ ]*[a-f0-9]+:[ ]*62 f2 5f 4f aa 09[ ]*v4fnmaddps \(%ecx\),%zmm4,%zmm1\{%k7\} +[ ]*[a-f0-9]+:[ ]*62 f2 5f cf aa 09[ ]*v4fnmaddps \(%ecx\),%zmm4,%zmm1\{%k7\}\{z\} +[ ]*[a-f0-9]+:[ ]*62 f2 5f 48 aa 8c f4 c0 1d fe ff[ ]*v4fnmaddps -0x1e240\(%esp,%esi,8\),%zmm4,%zmm1 +[ ]*[a-f0-9]+:[ ]*62 f2 5f 48 aa 8a e0 0f 00 00[ ]*v4fnmaddps 0xfe0\(%edx\),%zmm4,%zmm1 +[ ]*[a-f0-9]+:[ ]*62 f2 5f 48 aa 8a 00 10 00 00[ ]*v4fnmaddps 0x1000\(%edx\),%zmm4,%zmm1 +[ ]*[a-f0-9]+:[ ]*62 f2 5f 48 aa 8a 00 f0 ff ff[ ]*v4fnmaddps -0x1000\(%edx\),%zmm4,%zmm1 +[ ]*[a-f0-9]+:[ ]*62 f2 5f 48 aa 8a e0 ef ff ff[ ]*v4fnmaddps -0x1020\(%edx\),%zmm4,%zmm1 +[ ]*[a-f0-9]+:[ ]*62 f2 5f 08 9b 09[ ]*v4fmaddss \(%ecx\),%xmm4,%xmm1 +[ ]*[a-f0-9]+:[ ]*62 f2 5f 0f 9b 09[ ]*v4fmaddss \(%ecx\),%xmm4,%xmm1\{%k7\} +[ ]*[a-f0-9]+:[ ]*62 f2 5f 8f 9b 09[ ]*v4fmaddss \(%ecx\),%xmm4,%xmm1\{%k7\}\{z\} +[ ]*[a-f0-9]+:[ ]*62 f2 5f 08 9b 8c f4 c0 1d fe ff[ ]*v4fmaddss -0x1e240\(%esp,%esi,8\),%xmm4,%xmm1 +[ ]*[a-f0-9]+:[ ]*62 f2 5f 08 9b 8a e0 0f 00 00[ ]*v4fmaddss 0xfe0\(%edx\),%xmm4,%xmm1 +[ ]*[a-f0-9]+:[ ]*62 f2 5f 08 9b 8a 00 10 00 00[ ]*v4fmaddss 0x1000\(%edx\),%xmm4,%xmm1 +[ ]*[a-f0-9]+:[ ]*62 f2 5f 08 9b 8a 00 f0 ff ff[ ]*v4fmaddss -0x1000\(%edx\),%xmm4,%xmm1 +[ ]*[a-f0-9]+:[ ]*62 f2 5f 08 9b 8a e0 ef ff ff[ ]*v4fmaddss -0x1020\(%edx\),%xmm4,%xmm1 +[ ]*[a-f0-9]+:[ ]*62 f2 5f 08 ab 09[ ]*v4fnmaddss \(%ecx\),%xmm4,%xmm1 +[ ]*[a-f0-9]+:[ ]*62 f2 5f 0f ab 09[ ]*v4fnmaddss \(%ecx\),%xmm4,%xmm1\{%k7\} +[ ]*[a-f0-9]+:[ ]*62 f2 5f 8f ab 09[ ]*v4fnmaddss \(%ecx\),%xmm4,%xmm1\{%k7\}\{z\} +[ ]*[a-f0-9]+:[ ]*62 f2 5f 08 ab 8c f4 c0 1d fe ff[ ]*v4fnmaddss -0x1e240\(%esp,%esi,8\),%xmm4,%xmm1 +[ ]*[a-f0-9]+:[ ]*62 f2 5f 08 ab 8a e0 0f 00 00[ ]*v4fnmaddss 0xfe0\(%edx\),%xmm4,%xmm1 +[ ]*[a-f0-9]+:[ ]*62 f2 5f 08 ab 8a 00 10 00 00[ ]*v4fnmaddss 0x1000\(%edx\),%xmm4,%xmm1 +[ ]*[a-f0-9]+:[ ]*62 f2 5f 08 ab 8a 00 f0 ff ff[ ]*v4fnmaddss -0x1000\(%edx\),%xmm4,%xmm1 +[ ]*[a-f0-9]+:[ ]*62 f2 5f 08 ab 8a e0 ef ff ff[ ]*v4fnmaddss -0x1020\(%edx\),%xmm4,%xmm1 +[ ]*[a-f0-9]+:[ ]*62 f2 5f 48 9a 09[ ]*v4fmaddps \(%ecx\),%zmm4,%zmm1 +[ ]*[a-f0-9]+:[ ]*62 f2 5f 48 9a 09[ ]*v4fmaddps \(%ecx\),%zmm4,%zmm1 +[ ]*[a-f0-9]+:[ ]*62 f2 5f 4f 9a 09[ ]*v4fmaddps \(%ecx\),%zmm4,%zmm1\{%k7\} +[ ]*[a-f0-9]+:[ ]*62 f2 5f cf 9a 09[ ]*v4fmaddps \(%ecx\),%zmm4,%zmm1\{%k7\}\{z\} +[ ]*[a-f0-9]+:[ ]*62 f2 5f 48 9a 8c f4 c0 1d fe ff[ ]*v4fmaddps -0x1e240\(%esp,%esi,8\),%zmm4,%zmm1 +[ ]*[a-f0-9]+:[ ]*62 f2 5f 48 9a 8a e0 0f 00 00[ ]*v4fmaddps 0xfe0\(%edx\),%zmm4,%zmm1 +[ ]*[a-f0-9]+:[ ]*62 f2 5f 48 9a 8a 00 10 00 00[ ]*v4fmaddps 0x1000\(%edx\),%zmm4,%zmm1 +[ ]*[a-f0-9]+:[ ]*62 f2 5f 48 9a 8a 00 f0 ff ff[ ]*v4fmaddps -0x1000\(%edx\),%zmm4,%zmm1 +[ ]*[a-f0-9]+:[ ]*62 f2 5f 48 9a 8a e0 ef ff ff[ ]*v4fmaddps -0x1020\(%edx\),%zmm4,%zmm1 +[ ]*[a-f0-9]+:[ ]*62 f2 5f 48 aa 09[ ]*v4fnmaddps \(%ecx\),%zmm4,%zmm1 +[ ]*[a-f0-9]+:[ ]*62 f2 5f 48 aa 09[ ]*v4fnmaddps \(%ecx\),%zmm4,%zmm1 +[ ]*[a-f0-9]+:[ ]*62 f2 5f 4f aa 09[ ]*v4fnmaddps \(%ecx\),%zmm4,%zmm1\{%k7\} +[ ]*[a-f0-9]+:[ ]*62 f2 5f cf aa 09[ ]*v4fnmaddps \(%ecx\),%zmm4,%zmm1\{%k7\}\{z\} +[ ]*[a-f0-9]+:[ ]*62 f2 5f 48 aa 8c f4 c0 1d fe ff[ ]*v4fnmaddps -0x1e240\(%esp,%esi,8\),%zmm4,%zmm1 +[ ]*[a-f0-9]+:[ ]*62 f2 5f 48 aa 8a e0 0f 00 00[ ]*v4fnmaddps 0xfe0\(%edx\),%zmm4,%zmm1 +[ ]*[a-f0-9]+:[ ]*62 f2 5f 48 aa 8a 00 10 00 00[ ]*v4fnmaddps 0x1000\(%edx\),%zmm4,%zmm1 +[ ]*[a-f0-9]+:[ ]*62 f2 5f 48 aa 8a 00 f0 ff ff[ ]*v4fnmaddps -0x1000\(%edx\),%zmm4,%zmm1 +[ ]*[a-f0-9]+:[ ]*62 f2 5f 48 aa 8a e0 ef ff ff[ ]*v4fnmaddps -0x1020\(%edx\),%zmm4,%zmm1 +[ ]*[a-f0-9]+:[ ]*62 f2 5f 08 9b 09[ ]*v4fmaddss \(%ecx\),%xmm4,%xmm1 +[ ]*[a-f0-9]+:[ ]*62 f2 5f 08 9b 09[ ]*v4fmaddss \(%ecx\),%xmm4,%xmm1 +[ ]*[a-f0-9]+:[ ]*62 f2 5f 0f 9b 09[ ]*v4fmaddss \(%ecx\),%xmm4,%xmm1\{%k7\} +[ ]*[a-f0-9]+:[ ]*62 f2 5f 8f 9b 09[ ]*v4fmaddss \(%ecx\),%xmm4,%xmm1\{%k7\}\{z\} +[ ]*[a-f0-9]+:[ ]*62 f2 5f 08 9b 8c f4 c0 1d fe ff[ ]*v4fmaddss -0x1e240\(%esp,%esi,8\),%xmm4,%xmm1 +[ ]*[a-f0-9]+:[ ]*62 f2 5f 08 9b 8a e0 0f 00 00[ ]*v4fmaddss 0xfe0\(%edx\),%xmm4,%xmm1 +[ ]*[a-f0-9]+:[ ]*62 f2 5f 08 9b 8a 00 10 00 00[ ]*v4fmaddss 0x1000\(%edx\),%xmm4,%xmm1 +[ ]*[a-f0-9]+:[ ]*62 f2 5f 08 9b 8a 00 f0 ff ff[ ]*v4fmaddss -0x1000\(%edx\),%xmm4,%xmm1 +[ ]*[a-f0-9]+:[ ]*62 f2 5f 08 9b 8a e0 ef ff ff[ ]*v4fmaddss -0x1020\(%edx\),%xmm4,%xmm1 +[ ]*[a-f0-9]+:[ ]*62 f2 5f 08 ab 09[ ]*v4fnmaddss \(%ecx\),%xmm4,%xmm1 +[ ]*[a-f0-9]+:[ ]*62 f2 5f 08 ab 09[ ]*v4fnmaddss \(%ecx\),%xmm4,%xmm1 +[ ]*[a-f0-9]+:[ ]*62 f2 5f 0f ab 09[ ]*v4fnmaddss \(%ecx\),%xmm4,%xmm1\{%k7\} +[ ]*[a-f0-9]+:[ ]*62 f2 5f 8f ab 09[ ]*v4fnmaddss \(%ecx\),%xmm4,%xmm1\{%k7\}\{z\} +[ ]*[a-f0-9]+:[ ]*62 f2 5f 08 ab 8c f4 c0 1d fe ff[ ]*v4fnmaddss -0x1e240\(%esp,%esi,8\),%xmm4,%xmm1 +[ ]*[a-f0-9]+:[ ]*62 f2 5f 08 ab 8a e0 0f 00 00[ ]*v4fnmaddss 0xfe0\(%edx\),%xmm4,%xmm1 +[ ]*[a-f0-9]+:[ ]*62 f2 5f 08 ab 8a 00 10 00 00[ ]*v4fnmaddss 0x1000\(%edx\),%xmm4,%xmm1 +[ ]*[a-f0-9]+:[ ]*62 f2 5f 08 ab 8a 00 f0 ff ff[ ]*v4fnmaddss -0x1000\(%edx\),%xmm4,%xmm1 +[ ]*[a-f0-9]+:[ ]*62 f2 5f 08 ab 8a e0 ef ff ff[ ]*v4fnmaddss -0x1020\(%edx\),%xmm4,%xmm1 +#pass diff --git a/gas/testsuite/gas/i386/avx512_4fmaps.s b/gas/testsuite/gas/i386/avx512_4fmaps.s new file mode 100644 index 0000000..06d7bfa --- /dev/null +++ b/gas/testsuite/gas/i386/avx512_4fmaps.s @@ -0,0 +1,75 @@ +# Check 32bit AVX512_4FMAPS instructions + + .allow_index_reg + .text +_start: + v4fmaddps (%ecx), %zmm4, %zmm1 # AVX512_4FMAPS + v4fmaddps (%ecx), %zmm4, %zmm1{%k7} # AVX512_4FMAPS + v4fmaddps (%ecx), %zmm4, %zmm1{%k7}{z} # AVX512_4FMAPS + v4fmaddps -123456(%esp,%esi,8), %zmm4, %zmm1 # AVX512_4FMAPS + v4fmaddps 4064(%edx), %zmm4, %zmm1 # AVX512_4FMAPS Disp8 + v4fmaddps 4096(%edx), %zmm4, %zmm1 # AVX512_4FMAPS + v4fmaddps -4096(%edx), %zmm4, %zmm1 # AVX512_4FMAPS Disp8 + v4fmaddps -4128(%edx), %zmm4, %zmm1 # AVX512_4FMAPS + v4fnmaddps (%ecx), %zmm4, %zmm1 # AVX512_4FMAPS + v4fnmaddps (%ecx), %zmm4, %zmm1{%k7} # AVX512_4FMAPS + v4fnmaddps (%ecx), %zmm4, %zmm1{%k7}{z} # AVX512_4FMAPS + v4fnmaddps -123456(%esp,%esi,8), %zmm4, %zmm1 # AVX512_4FMAPS + v4fnmaddps 4064(%edx), %zmm4, %zmm1 # AVX512_4FMAPS Disp8 + v4fnmaddps 4096(%edx), %zmm4, %zmm1 # AVX512_4FMAPS + v4fnmaddps -4096(%edx), %zmm4, %zmm1 # AVX512_4FMAPS Disp8 + v4fnmaddps -4128(%edx), %zmm4, %zmm1 # AVX512_4FMAPS + v4fmaddss (%ecx), %xmm4, %xmm1 # AVX512_4FMAPS + v4fmaddss (%ecx), %xmm4, %xmm1{%k7} # AVX512_4FMAPS + v4fmaddss (%ecx), %xmm4, %xmm1{%k7}{z} # AVX512_4FMAPS + v4fmaddss -123456(%esp,%esi,8), %xmm4, %xmm1 # AVX512_4FMAPS + v4fmaddss 4064(%edx), %xmm4, %xmm1 # AVX512_4FMAPS Disp8 + v4fmaddss 4096(%edx), %xmm4, %xmm1 # AVX512_4FMAPS + v4fmaddss -4096(%edx), %xmm4, %xmm1 # AVX512_4FMAPS Disp8 + v4fmaddss -4128(%edx), %xmm4, %xmm1 # AVX512_4FMAPS + v4fnmaddss (%ecx), %xmm4, %xmm1 # AVX512_4FMAPS + v4fnmaddss (%ecx), %xmm4, %xmm1{%k7} # AVX512_4FMAPS + v4fnmaddss (%ecx), %xmm4, %xmm1{%k7}{z} # AVX512_4FMAPS + v4fnmaddss -123456(%esp,%esi,8), %xmm4, %xmm1 # AVX512_4FMAPS + v4fnmaddss 4064(%edx), %xmm4, %xmm1 # AVX512_4FMAPS Disp8 + v4fnmaddss 4096(%edx), %xmm4, %xmm1 # AVX512_4FMAPS + v4fnmaddss -4096(%edx), %xmm4, %xmm1 # AVX512_4FMAPS Disp8 + v4fnmaddss -4128(%edx), %xmm4, %xmm1 # AVX512_4FMAPS + + .intel_syntax noprefix + v4fmaddps zmm1, zmm4, [ecx] # AVX512_4FMAPS + v4fmaddps zmm1, zmm4, XMMWORD PTR [ecx] # AVX512_4FMAPS + v4fmaddps zmm1{k7}, zmm4, XMMWORD PTR [ecx] # AVX512_4FMAPS + v4fmaddps zmm1{k7}{z}, zmm4, XMMWORD PTR [ecx] # AVX512_4FMAPS + v4fmaddps zmm1, zmm4, XMMWORD PTR [esp+esi*8-123456] # AVX512_4FMAPS + v4fmaddps zmm1, zmm4, XMMWORD PTR [edx+4064] # AVX512_4FMAPS Disp8 + v4fmaddps zmm1, zmm4, XMMWORD PTR [edx+4096] # AVX512_4FMAPS + v4fmaddps zmm1, zmm4, XMMWORD PTR [edx-4096] # AVX512_4FMAPS Disp8 + v4fmaddps zmm1, zmm4, XMMWORD PTR [edx-4128] # AVX512_4FMAPS + v4fnmaddps zmm1, zmm4, [ecx] # AVX512_4FMAPS + v4fnmaddps zmm1, zmm4, XMMWORD PTR [ecx] # AVX512_4FMAPS + v4fnmaddps zmm1{k7}, zmm4, XMMWORD PTR [ecx] # AVX512_4FMAPS + v4fnmaddps zmm1{k7}{z}, zmm4, XMMWORD PTR [ecx] # AVX512_4FMAPS + v4fnmaddps zmm1, zmm4, XMMWORD PTR [esp+esi*8-123456] # AVX512_4FMAPS + v4fnmaddps zmm1, zmm4, XMMWORD PTR [edx+4064] # AVX512_4FMAPS Disp8 + v4fnmaddps zmm1, zmm4, XMMWORD PTR [edx+4096] # AVX512_4FMAPS + v4fnmaddps zmm1, zmm4, XMMWORD PTR [edx-4096] # AVX512_4FMAPS Disp8 + v4fnmaddps zmm1, zmm4, XMMWORD PTR [edx-4128] # AVX512_4FMAPS + v4fmaddss xmm1, xmm4, [ecx] # AVX512_4FMAPS + v4fmaddss xmm1, xmm4, XMMWORD PTR [ecx] # AVX512_4FMAPS + v4fmaddss xmm1{k7}, xmm4, XMMWORD PTR [ecx] # AVX512_4FMAPS + v4fmaddss xmm1{k7}{z}, xmm4, XMMWORD PTR [ecx] # AVX512_4FMAPS + v4fmaddss xmm1, xmm4, XMMWORD PTR [esp+esi*8-123456] # AVX512_4FMAPS + v4fmaddss xmm1, xmm4, XMMWORD PTR [edx+4064] # AVX512_4FMAPS Disp8 + v4fmaddss xmm1, xmm4, XMMWORD PTR [edx+4096] # AVX512_4FMAPS + v4fmaddss xmm1, xmm4, XMMWORD PTR [edx-4096] # AVX512_4FMAPS Disp8 + v4fmaddss xmm1, xmm4, XMMWORD PTR [edx-4128] # AVX512_4FMAPS + v4fnmaddss xmm1, xmm4, [ecx] # AVX512_4FMAPS + v4fnmaddss xmm1, xmm4, XMMWORD PTR [ecx] # AVX512_4FMAPS + v4fnmaddss xmm1{k7}, xmm4, XMMWORD PTR [ecx] # AVX512_4FMAPS + v4fnmaddss xmm1{k7}{z}, xmm4, XMMWORD PTR [ecx] # AVX512_4FMAPS + v4fnmaddss xmm1, xmm4, XMMWORD PTR [esp+esi*8-123456] # AVX512_4FMAPS + v4fnmaddss xmm1, xmm4, XMMWORD PTR [edx+4064] # AVX512_4FMAPS Disp8 + v4fnmaddss xmm1, xmm4, XMMWORD PTR [edx+4096] # AVX512_4FMAPS + v4fnmaddss xmm1, xmm4, XMMWORD PTR [edx-4096] # AVX512_4FMAPS Disp8 + v4fnmaddss xmm1, xmm4, XMMWORD PTR [edx-4128] # AVX512_4FMAPS diff --git a/gas/testsuite/gas/i386/avx512_4fmaps_vl-intel.d b/gas/testsuite/gas/i386/avx512_4fmaps_vl-intel.d new file mode 100644 index 0000000..a964a17 --- /dev/null +++ b/gas/testsuite/gas/i386/avx512_4fmaps_vl-intel.d @@ -0,0 +1,78 @@ +#objdump: -dw -Mintel +#name: i386 AVX512/4FMAPS_VL insns (Intel disassembly) +#source: avx512_4fmaps_vl.s + +.*: +file format .* + + +Disassembly of section \.text: + +0+ <_start>: +[ ]*[a-f0-9]+:[ ]*62 f2 5f 08 9a 09[ ]*v4fmaddps xmm1,xmm4,XMMWORD PTR \[ecx\] +[ ]*[a-f0-9]+:[ ]*62 f2 5f 0f 9a 09[ ]*v4fmaddps xmm1\{k7\},xmm4,XMMWORD PTR \[ecx\] +[ ]*[a-f0-9]+:[ ]*62 f2 5f 8f 9a 09[ ]*v4fmaddps xmm1\{k7\}\{z\},xmm4,XMMWORD PTR \[ecx\] +[ ]*[a-f0-9]+:[ ]*62 f2 5f 08 9a 8c f4 c0 1d fe ff[ ]*v4fmaddps xmm1,xmm4,XMMWORD PTR \[esp\+esi\*8-0x1e240\] +[ ]*[a-f0-9]+:[ ]*62 f2 5f 08 9a 8a e0 0f 00 00[ ]*v4fmaddps xmm1,xmm4,XMMWORD PTR \[edx\+0xfe0\] +[ ]*[a-f0-9]+:[ ]*62 f2 5f 08 9a 8a 00 10 00 00[ ]*v4fmaddps xmm1,xmm4,XMMWORD PTR \[edx\+0x1000\] +[ ]*[a-f0-9]+:[ ]*62 f2 5f 08 9a 8a 00 f0 ff ff[ ]*v4fmaddps xmm1,xmm4,XMMWORD PTR \[edx-0x1000\] hooks/post-receive -- Repository for Project Archer.