aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorH. Peter Anvin (Intel) <hpa@zytor.com>2018-06-25 14:51:15 -0700
committerH. Peter Anvin (Intel) <hpa@zytor.com>2018-06-25 14:51:15 -0700
commit2bf35e0b026d937bbd1c5208c0060e36caacb7cc (patch)
treee710945f48b4d9467b59ed40d0757b1dd8537d19
parent26b810176f939f5c7f1e6364ed5901283d1a576b (diff)
downloadnasm-2bf35e0b026d937bbd1c5208c0060e36caacb7cc.tar.gz
nasm-2bf35e0b026d937bbd1c5208c0060e36caacb7cc.tar.xz
nasm-2bf35e0b026d937bbd1c5208c0060e36caacb7cc.zip
insns.dat: add support for the V4* and VP4* 4-way instructionsnasm-2.14rc8
New instructions which do four full iterations of a data-reduction operation (FMA, dot product.) Bug report: https://bugzilla.nasm.us/show_bug.cgi?id=3392492 Reported-by: ff_ff <qqqqqqqqqfffffffff@gmail.com> Signed-off-by: H. Peter Anvin (Intel) <hpa@zytor.com>
-rw-r--r--x86/insns-iflags.ph2
-rw-r--r--x86/insns.dat10
2 files changed, 12 insertions, 0 deletions
diff --git a/x86/insns-iflags.ph b/x86/insns-iflags.ph
index 7258d3c2..1042f0f5 100644
--- a/x86/insns-iflags.ph
+++ b/x86/insns-iflags.ph
@@ -148,6 +148,8 @@ my %insns_flag_bit = (
"AVX512VNNI" => [$f++, "AVX-512 VNNI instructions"],
"AVX512BITALG" => [$f++, "AVX-512 Bit Algorithm instructions"],
"AVX512VPOPCNTDQ" => [$f++, "AVX-512 VPOPCNTD/VPOPCNTQ"],
+ "AVX5124FMAPS" => [$f++, "AVX-512 4-iteration multiply-add"],
+ "AVX5124VNNIW" => [$f++, "AVX-512 4-iteration dot product"],
# Put these last
"OBSOLETE" => [$f++, "Instruction removed from architecture"],
diff --git a/x86/insns.dat b/x86/insns.dat
index 96295dc1..22af9f5f 100644
--- a/x86/insns.dat
+++ b/x86/insns.dat
@@ -5332,6 +5332,16 @@ VPSHUFBITQMB kreg|mask,xmmreg,xmmrm128 [rvm:fvm: evex.nds.128.66.0f38.w0 8f /r
VPSHUFBITQMB kreg|mask,ymmreg,ymmrm256 [rvm:fvm: evex.nds.256.66.0f38.w0 8f /r] AVX512BITALG,AVX512VL,FUTURE
VPSHUFBITQMB kreg|mask,zmmreg,zmmrm512 [rvm:fvm: evex.nds.512.66.0f38.w0 8f /r] AVX512BITALG,FUTURE
+;# AVX512 4-iteration Multiply-Add
+V4FMADDPS zmmreg|mask|z,zmmreg,mem128 [rvm:m128:evex.dds.512.f2.0f38.w0 9a /r] AVX5124FMAPS,FUTURE
+V4FNMADDPS zmmreg|mask|z,zmmreg,mem128 [rvm:m128:evex.dds.512.f2.0f38.w0 9a /r] AVX5124FMAPS,FUTURE
+V4FMADDSS zmmreg|mask|z,zmmreg,mem128 [rvm:m128:evex.dds.512.f2.0f38.w0 9b /r] AVX5124FMAPS,FUTURE
+V4FNMADDSS zmmreg|mask|z,zmmreg,mem128 [rvm:m128:evex.dds.512.f2.0f38.w0 9b /r] AVX5124FMAPS,FUTURE
+
+;# AVX512 4-iteration Dot Product
+V4DPWSSDS zmmreg|mask|z,zmmreg,mem128 [rvm:m128:evex.dds.512.f2.0f38.w0 53 /r] AVX5124VNNIW,FUTURE
+V4DPWSSD zmmreg|mask|z,zmmreg,mem128 [rvm:m128:evex.dds.512.f2.0f38.w0 52 /r] AVX5124VNNIW,FUTURE
+
;# Systematic names for the hinting nop instructions
; These should be last in the file
HINT_NOP0 rm16 [m: o16 0f 18 /0] P6,UNDOC