From d04a2a498a40717c229cdca20518d38aecb59700 Mon Sep 17 00:00:00 2001 From: Margers Date: Wed, 14 May 2025 19:10:15 +0000 Subject: [PATCH] Update AVX test opcode list. --- tests/utils/avx/avxopcodes.pas | 978 +++++++++++++++++++++++++++++++-- 1 file changed, 921 insertions(+), 57 deletions(-) diff --git a/tests/utils/avx/avxopcodes.pas b/tests/utils/avx/avxopcodes.pas index e76a7f4018..76c6270c86 100644 --- a/tests/utils/avx/avxopcodes.pas +++ b/tests/utils/avx/avxopcodes.pas @@ -36,7 +36,7 @@ type implementation -uses SysUtils, AsmTestGenerator{, Dialogs}; +uses SysUtils, AsmTestGenerator; { TAVXTestGenerator } @@ -65,56 +65,920 @@ begin inherited; end; +{ $define TEST_FF} { place holder } +{ $define TEST_4FMAPS} {4FMAPS,4VNNIW} { $define TEST_FP16} -{$define TEST_VP2INTERSECT} -{$define TEST_SM} { $define TEST_BF16} -{$define TEST_GFNI} -{$define TEST_SHA512} +{ $define TEST_VP2INTERSECT} +{ $define TEST_SM} {SM3,SM4} +{ $define TEST_GFNI} +{ $define TEST_SHA512} { $define TEST_SHA} { $define TEST_XSAVE} +{ $define TEST_AVX} {AVX,AVX2,SSE,SSE2,SSE3,SSE4,BMI1,BMI2...} {$define TEST_ALL} procedure TAVXTestGenerator.Init; begin // Opcode, i386, x8664, AVX512, Parameter +{$if defined(TEST_FF) or defined(NOT_AT_ALL)} + { place holder } +{$endif} +{$if defined(TEST_4FMAPS) or defined(TEST_ALL)} + { 4FMAPS opcodes } + FOpCodeList.Add('V4FMADDPS,1,1,1,ZMMREG_MZ,ZMMREG,MEM512,'); + FOpCodeList.Add('V4FMADDSS,1,1,1,XMMREG_MZ,XMMREG,MEM128,'); + FOpCodeList.Add('V4FNMADDPS,1,1,1,ZMMREG_MZ,ZMMREG,MEM512,'); + FOpCodeList.Add('V4FNMADDSS,1,1,1,XMMREG_MZ,XMMREG,MEM128,'); + { 4VNNIW opcodes } + FOpCodeList.Add('VP4DPWSSD,1,1,1,ZMMREG_MZ,ZMMREG,MEM512,'); + FOpCodeList.Add('VP4DPWSSDS,1,1,1,ZMMREG_MZ,ZMMREG,MEM512,'); +{$endif} {$if defined(TEST_FP16) or defined(TEST_ALL)} { FP16 opcodes } + FOpCodeList.Add('vmovw,1,1,1,XMMREG,RM32,,'); //-- provided for Gas compatibility + //FOpCodeList.Add('vmovw,1,1,1,XMMREG,RM16,,'); //-- Gas does not accept reg16, but documentation states it has to be reg16 + //FOpCodeList.Add('vmovw,1,1,1,RM16,XMMREG,,'); //-- Gas does not accept reg16, but documentation states it has to be reg16 + FOpCodeList.Add('vmovw,1,1,1,RM32,XMMREG,,'); //-- provided for Gas compatibility + FOpCodeList.Add('vmovsh,1,1,1,XMMREG_MZ,MEM16,,'); + FOpCodeList.Add('vmovsh,1,1,1,XMMREG_MZ,XMMREG,XMMREG,'); + FOpCodeList.Add('vmovsh,1,1,1,MEM16_M,XMMREG,,'); + FOpCodeList.Add('vmovsh,1,1,1,XMMREG_MZ,XMMREG,XMMREG,'); + FOpCodeList.Add('vaddph,1,1,1,XMMREG_MZ,XMMREG,XMMRM,'); + FOpCodeList.Add('vaddph,1,1,1,XMMREG_MZ,XMMREG,8B16,'); + FOpCodeList.Add('vaddph,1,1,1,YMMREG_MZ,YMMREG,YMMRM,'); + FOpCodeList.Add('vaddph,1,1,1,YMMREG_MZ,YMMREG,16B16,'); + FOpCodeList.Add('vaddph,1,1,1,ZMMREG_MZ,ZMMREG,ZMMREG_ER,'); + FOpCodeList.Add('vaddph,1,1,1,ZMMREG_MZ,ZMMREG,MEM512,'); + FOpCodeList.Add('vaddph,1,1,1,ZMMREG_MZ,ZMMREG,32B16,'); + FOpCodeList.Add('vaddsh,1,1,1,XMMREG_MZ,XMMREG,XMMREG_ER,'); + FOpCodeList.Add('vaddsh,1,1,1,XMMREG_MZ,XMMREG,MEM16,'); + FOpCodeList.Add('vcmpeqph,1,1,1,KREG_M,XMMREG,XMMRM,'); + FOpCodeList.Add('vcmpeqph,1,1,1,KREG_M,XMMREG,8B16,'); + FOpCodeList.Add('vcmpeqph,1,1,1,KREG_M,YMMREG,YMMRM,'); + FOpCodeList.Add('vcmpeqph,1,1,1,KREG_M,YMMREG,16B16,'); + FOpCodeList.Add('vcmpeqph,1,1,1,KREG_M,ZMMREG,ZMMREG_SAE,'); + FOpCodeList.Add('vcmpeqph,1,1,1,KREG_M,ZMMREG,MEM512,'); + FOpCodeList.Add('vcmpeqph,1,1,1,KREG_M,ZMMREG,32B16,'); + FOpCodeList.Add('vcmpltph,1,1,1,KREG_M,XMMREG,XMMRM,'); + FOpCodeList.Add('vcmpltph,1,1,1,KREG_M,XMMREG,8B16,'); + FOpCodeList.Add('vcmpltph,1,1,1,KREG_M,YMMREG,YMMRM,'); + FOpCodeList.Add('vcmpltph,1,1,1,KREG_M,YMMREG,16B16,'); + FOpCodeList.Add('vcmpltph,1,1,1,KREG_M,ZMMREG,ZMMREG_SAE,'); + FOpCodeList.Add('vcmpltph,1,1,1,KREG_M,ZMMREG,MEM512,'); + FOpCodeList.Add('vcmpltph,1,1,1,KREG_M,ZMMREG,32B16,'); + FOpCodeList.Add('vcmpleph,1,1,1,KREG_M,XMMREG,XMMRM,'); + FOpCodeList.Add('vcmpleph,1,1,1,KREG_M,XMMREG,8B16,'); + FOpCodeList.Add('vcmpleph,1,1,1,KREG_M,YMMREG,YMMRM,'); + FOpCodeList.Add('vcmpleph,1,1,1,KREG_M,YMMREG,16B16,'); + FOpCodeList.Add('vcmpleph,1,1,1,KREG_M,ZMMREG,ZMMREG_SAE,'); + FOpCodeList.Add('vcmpleph,1,1,1,KREG_M,ZMMREG,MEM512,'); + FOpCodeList.Add('vcmpleph,1,1,1,KREG_M,ZMMREG,32B16,'); + FOpCodeList.Add('vcmpunordph,1,1,1,KREG_M,XMMREG,XMMRM,'); + FOpCodeList.Add('vcmpunordph,1,1,1,KREG_M,XMMREG,8B16,'); + FOpCodeList.Add('vcmpunordph,1,1,1,KREG_M,YMMREG,YMMRM,'); + FOpCodeList.Add('vcmpunordph,1,1,1,KREG_M,YMMREG,16B16,'); + FOpCodeList.Add('vcmpunordph,1,1,1,KREG_M,ZMMREG,ZMMREG_SAE,'); + FOpCodeList.Add('vcmpunordph,1,1,1,KREG_M,ZMMREG,MEM512,'); + FOpCodeList.Add('vcmpunordph,1,1,1,KREG_M,ZMMREG,32B16,'); + FOpCodeList.Add('vcmpneqph,1,1,1,KREG_M,XMMREG,XMMRM,'); + FOpCodeList.Add('vcmpneqph,1,1,1,KREG_M,XMMREG,8B16,'); + FOpCodeList.Add('vcmpneqph,1,1,1,KREG_M,YMMREG,YMMRM,'); + FOpCodeList.Add('vcmpneqph,1,1,1,KREG_M,YMMREG,16B16,'); + FOpCodeList.Add('vcmpneqph,1,1,1,KREG_M,ZMMREG,ZMMREG_SAE,'); + FOpCodeList.Add('vcmpneqph,1,1,1,KREG_M,ZMMREG,MEM512,'); + FOpCodeList.Add('vcmpneqph,1,1,1,KREG_M,ZMMREG,32B16,'); + FOpCodeList.Add('vcmpnltph,1,1,1,KREG_M,XMMREG,XMMRM,'); + FOpCodeList.Add('vcmpnltph,1,1,1,KREG_M,XMMREG,8B16,'); + FOpCodeList.Add('vcmpnltph,1,1,1,KREG_M,YMMREG,YMMRM,'); + FOpCodeList.Add('vcmpnltph,1,1,1,KREG_M,YMMREG,16B16,'); + FOpCodeList.Add('vcmpnltph,1,1,1,KREG_M,ZMMREG,ZMMREG_SAE,'); + FOpCodeList.Add('vcmpnltph,1,1,1,KREG_M,ZMMREG,MEM512,'); + FOpCodeList.Add('vcmpnltph,1,1,1,KREG_M,ZMMREG,32B16,'); + FOpCodeList.Add('vcmpnleph,1,1,1,KREG_M,XMMREG,XMMRM,'); + FOpCodeList.Add('vcmpnleph,1,1,1,KREG_M,XMMREG,8B16,'); + FOpCodeList.Add('vcmpnleph,1,1,1,KREG_M,YMMREG,YMMRM,'); + FOpCodeList.Add('vcmpnleph,1,1,1,KREG_M,YMMREG,16B16,'); + FOpCodeList.Add('vcmpnleph,1,1,1,KREG_M,ZMMREG,ZMMREG_SAE,'); + FOpCodeList.Add('vcmpnleph,1,1,1,KREG_M,ZMMREG,MEM512,'); + FOpCodeList.Add('vcmpnleph,1,1,1,KREG_M,ZMMREG,32B16,'); + FOpCodeList.Add('vcmpordph,1,1,1,KREG_M,XMMREG,XMMRM,'); + FOpCodeList.Add('vcmpordph,1,1,1,KREG_M,XMMREG,8B16,'); + FOpCodeList.Add('vcmpordph,1,1,1,KREG_M,YMMREG,YMMRM,'); + FOpCodeList.Add('vcmpordph,1,1,1,KREG_M,YMMREG,16B16,'); + FOpCodeList.Add('vcmpordph,1,1,1,KREG_M,ZMMREG,ZMMREG_SAE,'); + FOpCodeList.Add('vcmpordph,1,1,1,KREG_M,ZMMREG,MEM512,'); + FOpCodeList.Add('vcmpordph,1,1,1,KREG_M,ZMMREG,32B16,'); + FOpCodeList.Add('vcmpeq_uqph,1,1,1,KREG_M,XMMREG,XMMRM,'); + FOpCodeList.Add('vcmpeq_uqph,1,1,1,KREG_M,XMMREG,8B16,'); + FOpCodeList.Add('vcmpeq_uqph,1,1,1,KREG_M,YMMREG,YMMRM,'); + FOpCodeList.Add('vcmpeq_uqph,1,1,1,KREG_M,YMMREG,16B16,'); + FOpCodeList.Add('vcmpeq_uqph,1,1,1,KREG_M,ZMMREG,ZMMREG_SAE,'); + FOpCodeList.Add('vcmpeq_uqph,1,1,1,KREG_M,ZMMREG,MEM512,'); + FOpCodeList.Add('vcmpeq_uqph,1,1,1,KREG_M,ZMMREG,32B16,'); + FOpCodeList.Add('vcmpngeph,1,1,1,KREG_M,XMMREG,XMMRM,'); + FOpCodeList.Add('vcmpngeph,1,1,1,KREG_M,XMMREG,8B16,'); + FOpCodeList.Add('vcmpngeph,1,1,1,KREG_M,YMMREG,YMMRM,'); + FOpCodeList.Add('vcmpngeph,1,1,1,KREG_M,YMMREG,16B16,'); + FOpCodeList.Add('vcmpngeph,1,1,1,KREG_M,ZMMREG,ZMMREG_SAE,'); + FOpCodeList.Add('vcmpngeph,1,1,1,KREG_M,ZMMREG,MEM512,'); + FOpCodeList.Add('vcmpngeph,1,1,1,KREG_M,ZMMREG,32B16,'); + FOpCodeList.Add('vcmpngtph,1,1,1,KREG_M,XMMREG,XMMRM,'); + FOpCodeList.Add('vcmpngtph,1,1,1,KREG_M,XMMREG,8B16,'); + FOpCodeList.Add('vcmpngtph,1,1,1,KREG_M,YMMREG,YMMRM,'); + FOpCodeList.Add('vcmpngtph,1,1,1,KREG_M,YMMREG,16B16,'); + FOpCodeList.Add('vcmpngtph,1,1,1,KREG_M,ZMMREG,ZMMREG_SAE,'); + FOpCodeList.Add('vcmpngtph,1,1,1,KREG_M,ZMMREG,MEM512,'); + FOpCodeList.Add('vcmpngtph,1,1,1,KREG_M,ZMMREG,32B16,'); + FOpCodeList.Add('vcmpfalseph,1,1,1,KREG_M,XMMREG,XMMRM,'); + FOpCodeList.Add('vcmpfalseph,1,1,1,KREG_M,XMMREG,8B16,'); + FOpCodeList.Add('vcmpfalseph,1,1,1,KREG_M,YMMREG,YMMRM,'); + FOpCodeList.Add('vcmpfalseph,1,1,1,KREG_M,YMMREG,16B16,'); + FOpCodeList.Add('vcmpfalseph,1,1,1,KREG_M,ZMMREG,ZMMREG_SAE,'); + FOpCodeList.Add('vcmpfalseph,1,1,1,KREG_M,ZMMREG,MEM512,'); + FOpCodeList.Add('vcmpfalseph,1,1,1,KREG_M,ZMMREG,32B16,'); + FOpCodeList.Add('vcmpneq_oqph,1,1,1,KREG_M,XMMREG,XMMRM,'); + FOpCodeList.Add('vcmpneq_oqph,1,1,1,KREG_M,XMMREG,8B16,'); + FOpCodeList.Add('vcmpneq_oqph,1,1,1,KREG_M,YMMREG,YMMRM,'); + FOpCodeList.Add('vcmpneq_oqph,1,1,1,KREG_M,YMMREG,16B16,'); + FOpCodeList.Add('vcmpneq_oqph,1,1,1,KREG_M,ZMMREG,ZMMREG_SAE,'); + FOpCodeList.Add('vcmpneq_oqph,1,1,1,KREG_M,ZMMREG,MEM512,'); + FOpCodeList.Add('vcmpneq_oqph,1,1,1,KREG_M,ZMMREG,32B16,'); + FOpCodeList.Add('vcmpgeph,1,1,1,KREG_M,XMMREG,XMMRM,'); + FOpCodeList.Add('vcmpgeph,1,1,1,KREG_M,XMMREG,8B16,'); + FOpCodeList.Add('vcmpgeph,1,1,1,KREG_M,YMMREG,YMMRM,'); + FOpCodeList.Add('vcmpgeph,1,1,1,KREG_M,YMMREG,16B16,'); + FOpCodeList.Add('vcmpgeph,1,1,1,KREG_M,ZMMREG,ZMMREG_SAE,'); + FOpCodeList.Add('vcmpgeph,1,1,1,KREG_M,ZMMREG,MEM512,'); + FOpCodeList.Add('vcmpgeph,1,1,1,KREG_M,ZMMREG,32B16,'); + FOpCodeList.Add('vcmpgtph,1,1,1,KREG_M,XMMREG,XMMRM,'); + FOpCodeList.Add('vcmpgtph,1,1,1,KREG_M,XMMREG,8B16,'); + FOpCodeList.Add('vcmpgtph,1,1,1,KREG_M,YMMREG,YMMRM,'); + FOpCodeList.Add('vcmpgtph,1,1,1,KREG_M,YMMREG,16B16,'); + FOpCodeList.Add('vcmpgtph,1,1,1,KREG_M,ZMMREG,ZMMREG_SAE,'); + FOpCodeList.Add('vcmpgtph,1,1,1,KREG_M,ZMMREG,MEM512,'); + FOpCodeList.Add('vcmpgtph,1,1,1,KREG_M,ZMMREG,32B16,'); + FOpCodeList.Add('vcmptrueph,1,1,1,KREG_M,XMMREG,XMMRM,'); + FOpCodeList.Add('vcmptrueph,1,1,1,KREG_M,XMMREG,8B16,'); + FOpCodeList.Add('vcmptrueph,1,1,1,KREG_M,YMMREG,YMMRM,'); + FOpCodeList.Add('vcmptrueph,1,1,1,KREG_M,YMMREG,16B16,'); + FOpCodeList.Add('vcmptrueph,1,1,1,KREG_M,ZMMREG,ZMMREG_SAE,'); + FOpCodeList.Add('vcmptrueph,1,1,1,KREG_M,ZMMREG,MEM512,'); + FOpCodeList.Add('vcmptrueph,1,1,1,KREG_M,ZMMREG,32B16,'); + FOpCodeList.Add('vcmpeq_osph,1,1,1,KREG_M,XMMREG,XMMRM,'); + FOpCodeList.Add('vcmpeq_osph,1,1,1,KREG_M,XMMREG,8B16,'); + FOpCodeList.Add('vcmpeq_osph,1,1,1,KREG_M,YMMREG,YMMRM,'); + FOpCodeList.Add('vcmpeq_osph,1,1,1,KREG_M,YMMREG,16B16,'); + FOpCodeList.Add('vcmpeq_osph,1,1,1,KREG_M,ZMMREG,ZMMREG_SAE,'); + FOpCodeList.Add('vcmpeq_osph,1,1,1,KREG_M,ZMMREG,MEM512,'); + FOpCodeList.Add('vcmpeq_osph,1,1,1,KREG_M,ZMMREG,32B16,'); + FOpCodeList.Add('vcmplt_oqph,1,1,1,KREG_M,XMMREG,XMMRM,'); + FOpCodeList.Add('vcmplt_oqph,1,1,1,KREG_M,XMMREG,8B16,'); + FOpCodeList.Add('vcmplt_oqph,1,1,1,KREG_M,YMMREG,YMMRM,'); + FOpCodeList.Add('vcmplt_oqph,1,1,1,KREG_M,YMMREG,16B16,'); + FOpCodeList.Add('vcmplt_oqph,1,1,1,KREG_M,ZMMREG,ZMMREG_SAE,'); + FOpCodeList.Add('vcmplt_oqph,1,1,1,KREG_M,ZMMREG,MEM512,'); + FOpCodeList.Add('vcmplt_oqph,1,1,1,KREG_M,ZMMREG,32B16,'); + FOpCodeList.Add('vcmple_oqph,1,1,1,KREG_M,XMMREG,XMMRM,'); + FOpCodeList.Add('vcmple_oqph,1,1,1,KREG_M,XMMREG,8B16,'); + FOpCodeList.Add('vcmple_oqph,1,1,1,KREG_M,YMMREG,YMMRM,'); + FOpCodeList.Add('vcmple_oqph,1,1,1,KREG_M,YMMREG,16B16,'); + FOpCodeList.Add('vcmple_oqph,1,1,1,KREG_M,ZMMREG,ZMMREG_SAE,'); + FOpCodeList.Add('vcmple_oqph,1,1,1,KREG_M,ZMMREG,MEM512,'); + FOpCodeList.Add('vcmple_oqph,1,1,1,KREG_M,ZMMREG,32B16,'); + FOpCodeList.Add('vcmpunord_sph,1,1,1,KREG_M,XMMREG,XMMRM,'); + FOpCodeList.Add('vcmpunord_sph,1,1,1,KREG_M,XMMREG,8B16,'); + FOpCodeList.Add('vcmpunord_sph,1,1,1,KREG_M,YMMREG,YMMRM,'); + FOpCodeList.Add('vcmpunord_sph,1,1,1,KREG_M,YMMREG,16B16,'); + FOpCodeList.Add('vcmpunord_sph,1,1,1,KREG_M,ZMMREG,ZMMREG_SAE,'); + FOpCodeList.Add('vcmpunord_sph,1,1,1,KREG_M,ZMMREG,MEM512,'); + FOpCodeList.Add('vcmpunord_sph,1,1,1,KREG_M,ZMMREG,32B16,'); + FOpCodeList.Add('vcmpneq_usph,1,1,1,KREG_M,XMMREG,XMMRM,'); + FOpCodeList.Add('vcmpneq_usph,1,1,1,KREG_M,XMMREG,8B16,'); + FOpCodeList.Add('vcmpneq_usph,1,1,1,KREG_M,YMMREG,YMMRM,'); + FOpCodeList.Add('vcmpneq_usph,1,1,1,KREG_M,YMMREG,16B16,'); + FOpCodeList.Add('vcmpneq_usph,1,1,1,KREG_M,ZMMREG,ZMMREG_SAE,'); + FOpCodeList.Add('vcmpneq_usph,1,1,1,KREG_M,ZMMREG,MEM512,'); + FOpCodeList.Add('vcmpneq_usph,1,1,1,KREG_M,ZMMREG,32B16,'); + FOpCodeList.Add('vcmpnlt_uqph,1,1,1,KREG_M,XMMREG,XMMRM,'); + FOpCodeList.Add('vcmpnlt_uqph,1,1,1,KREG_M,XMMREG,8B16,'); + FOpCodeList.Add('vcmpnlt_uqph,1,1,1,KREG_M,YMMREG,YMMRM,'); + FOpCodeList.Add('vcmpnlt_uqph,1,1,1,KREG_M,YMMREG,16B16,'); + FOpCodeList.Add('vcmpnlt_uqph,1,1,1,KREG_M,ZMMREG,ZMMREG_SAE,'); + FOpCodeList.Add('vcmpnlt_uqph,1,1,1,KREG_M,ZMMREG,MEM512,'); + FOpCodeList.Add('vcmpnlt_uqph,1,1,1,KREG_M,ZMMREG,32B16,'); + FOpCodeList.Add('vcmpnle_uqph,1,1,1,KREG_M,XMMREG,XMMRM,'); + FOpCodeList.Add('vcmpnle_uqph,1,1,1,KREG_M,XMMREG,8B16,'); + FOpCodeList.Add('vcmpnle_uqph,1,1,1,KREG_M,YMMREG,YMMRM,'); + FOpCodeList.Add('vcmpnle_uqph,1,1,1,KREG_M,YMMREG,16B16,'); + FOpCodeList.Add('vcmpnle_uqph,1,1,1,KREG_M,ZMMREG,ZMMREG_SAE,'); + FOpCodeList.Add('vcmpnle_uqph,1,1,1,KREG_M,ZMMREG,MEM512,'); + FOpCodeList.Add('vcmpnle_uqph,1,1,1,KREG_M,ZMMREG,32B16,'); + FOpCodeList.Add('vcmpord_sph,1,1,1,KREG_M,XMMREG,XMMRM,'); + FOpCodeList.Add('vcmpord_sph,1,1,1,KREG_M,XMMREG,8B16,'); + FOpCodeList.Add('vcmpord_sph,1,1,1,KREG_M,YMMREG,YMMRM,'); + FOpCodeList.Add('vcmpord_sph,1,1,1,KREG_M,YMMREG,16B16,'); + FOpCodeList.Add('vcmpord_sph,1,1,1,KREG_M,ZMMREG,ZMMREG_SAE,'); + FOpCodeList.Add('vcmpord_sph,1,1,1,KREG_M,ZMMREG,MEM512,'); + FOpCodeList.Add('vcmpord_sph,1,1,1,KREG_M,ZMMREG,32B16,'); + FOpCodeList.Add('vcmpeq_usph,1,1,1,KREG_M,XMMREG,XMMRM,'); + FOpCodeList.Add('vcmpeq_usph,1,1,1,KREG_M,XMMREG,8B16,'); + FOpCodeList.Add('vcmpeq_usph,1,1,1,KREG_M,YMMREG,YMMRM,'); + FOpCodeList.Add('vcmpeq_usph,1,1,1,KREG_M,YMMREG,16B16,'); + FOpCodeList.Add('vcmpeq_usph,1,1,1,KREG_M,ZMMREG,ZMMREG_SAE,'); + FOpCodeList.Add('vcmpeq_usph,1,1,1,KREG_M,ZMMREG,MEM512,'); + FOpCodeList.Add('vcmpeq_usph,1,1,1,KREG_M,ZMMREG,32B16,'); + FOpCodeList.Add('vcmpnge_uqph,1,1,1,KREG_M,XMMREG,XMMRM,'); + FOpCodeList.Add('vcmpnge_uqph,1,1,1,KREG_M,XMMREG,8B16,'); + FOpCodeList.Add('vcmpnge_uqph,1,1,1,KREG_M,YMMREG,YMMRM,'); + FOpCodeList.Add('vcmpnge_uqph,1,1,1,KREG_M,YMMREG,16B16,'); + FOpCodeList.Add('vcmpnge_uqph,1,1,1,KREG_M,ZMMREG,ZMMREG_SAE,'); + FOpCodeList.Add('vcmpnge_uqph,1,1,1,KREG_M,ZMMREG,MEM512,'); + FOpCodeList.Add('vcmpnge_uqph,1,1,1,KREG_M,ZMMREG,32B16,'); + FOpCodeList.Add('vcmpngt_uqph,1,1,1,KREG_M,XMMREG,XMMRM,'); + FOpCodeList.Add('vcmpngt_uqph,1,1,1,KREG_M,XMMREG,8B16,'); + FOpCodeList.Add('vcmpngt_uqph,1,1,1,KREG_M,YMMREG,YMMRM,'); + FOpCodeList.Add('vcmpngt_uqph,1,1,1,KREG_M,YMMREG,16B16,'); + FOpCodeList.Add('vcmpngt_uqph,1,1,1,KREG_M,ZMMREG,ZMMREG_SAE,'); + FOpCodeList.Add('vcmpngt_uqph,1,1,1,KREG_M,ZMMREG,MEM512,'); + FOpCodeList.Add('vcmpngt_uqph,1,1,1,KREG_M,ZMMREG,32B16,'); + FOpCodeList.Add('vcmpfalse_osph,1,1,1,KREG_M,XMMREG,XMMRM,'); + FOpCodeList.Add('vcmpfalse_osph,1,1,1,KREG_M,XMMREG,8B16,'); + FOpCodeList.Add('vcmpfalse_osph,1,1,1,KREG_M,YMMREG,YMMRM,'); + FOpCodeList.Add('vcmpfalse_osph,1,1,1,KREG_M,YMMREG,16B16,'); + FOpCodeList.Add('vcmpfalse_osph,1,1,1,KREG_M,ZMMREG,ZMMREG_SAE,'); + FOpCodeList.Add('vcmpfalse_osph,1,1,1,KREG_M,ZMMREG,MEM512,'); + FOpCodeList.Add('vcmpfalse_osph,1,1,1,KREG_M,ZMMREG,32B16,'); + FOpCodeList.Add('vcmpneq_osph,1,1,1,KREG_M,XMMREG,XMMRM,'); + FOpCodeList.Add('vcmpneq_osph,1,1,1,KREG_M,XMMREG,8B16,'); + FOpCodeList.Add('vcmpneq_osph,1,1,1,KREG_M,YMMREG,YMMRM,'); + FOpCodeList.Add('vcmpneq_osph,1,1,1,KREG_M,YMMREG,16B16,'); + FOpCodeList.Add('vcmpneq_osph,1,1,1,KREG_M,ZMMREG,ZMMREG_SAE,'); + FOpCodeList.Add('vcmpneq_osph,1,1,1,KREG_M,ZMMREG,MEM512,'); + FOpCodeList.Add('vcmpneq_osph,1,1,1,KREG_M,ZMMREG,32B16,'); + FOpCodeList.Add('vcmpge_oqph,1,1,1,KREG_M,XMMREG,XMMRM,'); + FOpCodeList.Add('vcmpge_oqph,1,1,1,KREG_M,XMMREG,8B16,'); + FOpCodeList.Add('vcmpge_oqph,1,1,1,KREG_M,YMMREG,YMMRM,'); + FOpCodeList.Add('vcmpge_oqph,1,1,1,KREG_M,YMMREG,16B16,'); + FOpCodeList.Add('vcmpge_oqph,1,1,1,KREG_M,ZMMREG,ZMMREG_SAE,'); + FOpCodeList.Add('vcmpge_oqph,1,1,1,KREG_M,ZMMREG,MEM512,'); + FOpCodeList.Add('vcmpge_oqph,1,1,1,KREG_M,ZMMREG,32B16,'); + FOpCodeList.Add('vcmpgt_oqph,1,1,1,KREG_M,XMMREG,XMMRM,'); + FOpCodeList.Add('vcmpgt_oqph,1,1,1,KREG_M,XMMREG,8B16,'); + FOpCodeList.Add('vcmpgt_oqph,1,1,1,KREG_M,YMMREG,YMMRM,'); + FOpCodeList.Add('vcmpgt_oqph,1,1,1,KREG_M,YMMREG,16B16,'); + FOpCodeList.Add('vcmpgt_oqph,1,1,1,KREG_M,ZMMREG,ZMMREG_SAE,'); + FOpCodeList.Add('vcmpgt_oqph,1,1,1,KREG_M,ZMMREG,MEM512,'); + FOpCodeList.Add('vcmpgt_oqph,1,1,1,KREG_M,ZMMREG,32B16,'); + FOpCodeList.Add('vcmptrue_usph,1,1,1,KREG_M,XMMREG,XMMRM,'); + FOpCodeList.Add('vcmptrue_usph,1,1,1,KREG_M,XMMREG,8B16,'); + FOpCodeList.Add('vcmptrue_usph,1,1,1,KREG_M,YMMREG,YMMRM,'); + FOpCodeList.Add('vcmptrue_usph,1,1,1,KREG_M,YMMREG,16B16,'); + FOpCodeList.Add('vcmptrue_usph,1,1,1,KREG_M,ZMMREG,ZMMREG_SAE,'); + FOpCodeList.Add('vcmptrue_usph,1,1,1,KREG_M,ZMMREG,MEM512,'); + FOpCodeList.Add('vcmptrue_usph,1,1,1,KREG_M,ZMMREG,32B16,'); + FOpCodeList.Add('vcmpeqsh,1,1,1,KREG_M,XMMREG,XMMREG_SAE,'); + FOpCodeList.Add('vcmpeqsh,1,1,1,KREG_M,XMMREG,MEM16,'); + FOpCodeList.Add('vcmpltsh,1,1,1,KREG_M,XMMREG,XMMREG_SAE,'); + FOpCodeList.Add('vcmpltsh,1,1,1,KREG_M,XMMREG,MEM16,'); + FOpCodeList.Add('vcmplesh,1,1,1,KREG_M,XMMREG,XMMREG_SAE,'); + FOpCodeList.Add('vcmplesh,1,1,1,KREG_M,XMMREG,MEM16,'); + FOpCodeList.Add('vcmpunordsh,1,1,1,KREG_M,XMMREG,XMMREG_SAE,'); + FOpCodeList.Add('vcmpunordsh,1,1,1,KREG_M,XMMREG,MEM16,'); + FOpCodeList.Add('vcmpneqsh,1,1,1,KREG_M,XMMREG,XMMREG_SAE,'); + FOpCodeList.Add('vcmpneqsh,1,1,1,KREG_M,XMMREG,MEM16,'); + FOpCodeList.Add('vcmpnltsh,1,1,1,KREG_M,XMMREG,XMMREG_SAE,'); + FOpCodeList.Add('vcmpnltsh,1,1,1,KREG_M,XMMREG,MEM16,'); + FOpCodeList.Add('vcmpnlesh,1,1,1,KREG_M,XMMREG,XMMREG_SAE,'); + FOpCodeList.Add('vcmpnlesh,1,1,1,KREG_M,XMMREG,MEM16,'); + FOpCodeList.Add('vcmpordsh,1,1,1,KREG_M,XMMREG,XMMREG_SAE,'); + FOpCodeList.Add('vcmpordsh,1,1,1,KREG_M,XMMREG,MEM16,'); + FOpCodeList.Add('vcmpeq_uqsh,1,1,1,KREG_M,XMMREG,XMMREG_SAE,'); + FOpCodeList.Add('vcmpeq_uqsh,1,1,1,KREG_M,XMMREG,MEM16,'); + FOpCodeList.Add('vcmpngesh,1,1,1,KREG_M,XMMREG,XMMREG_SAE,'); + FOpCodeList.Add('vcmpngesh,1,1,1,KREG_M,XMMREG,MEM16,'); + FOpCodeList.Add('vcmpngtsh,1,1,1,KREG_M,XMMREG,XMMREG_SAE,'); + FOpCodeList.Add('vcmpngtsh,1,1,1,KREG_M,XMMREG,MEM16,'); + FOpCodeList.Add('vcmpfalsesh,1,1,1,KREG_M,XMMREG,XMMREG_SAE,'); + FOpCodeList.Add('vcmpfalsesh,1,1,1,KREG_M,XMMREG,MEM16,'); + FOpCodeList.Add('vcmpneq_oqsh,1,1,1,KREG_M,XMMREG,XMMREG_SAE,'); + FOpCodeList.Add('vcmpneq_oqsh,1,1,1,KREG_M,XMMREG,MEM16,'); + FOpCodeList.Add('vcmpgesh,1,1,1,KREG_M,XMMREG,XMMREG_SAE,'); + FOpCodeList.Add('vcmpgesh,1,1,1,KREG_M,XMMREG,MEM16,'); + FOpCodeList.Add('vcmpgtsh,1,1,1,KREG_M,XMMREG,XMMREG_SAE,'); + FOpCodeList.Add('vcmpgtsh,1,1,1,KREG_M,XMMREG,MEM16,'); + FOpCodeList.Add('vcmptruesh,1,1,1,KREG_M,XMMREG,XMMREG_SAE,'); + FOpCodeList.Add('vcmptruesh,1,1,1,KREG_M,XMMREG,MEM16,'); + FOpCodeList.Add('vcmpeq_ossh,1,1,1,KREG_M,XMMREG,XMMREG_SAE,'); + FOpCodeList.Add('vcmpeq_ossh,1,1,1,KREG_M,XMMREG,MEM16,'); + FOpCodeList.Add('vcmplt_oqsh,1,1,1,KREG_M,XMMREG,XMMREG_SAE,'); + FOpCodeList.Add('vcmplt_oqsh,1,1,1,KREG_M,XMMREG,MEM16,'); + FOpCodeList.Add('vcmple_oqsh,1,1,1,KREG_M,XMMREG,XMMREG_SAE,'); + FOpCodeList.Add('vcmple_oqsh,1,1,1,KREG_M,XMMREG,MEM16,'); + FOpCodeList.Add('vcmpunord_ssh,1,1,1,KREG_M,XMMREG,XMMREG_SAE,'); + FOpCodeList.Add('vcmpunord_ssh,1,1,1,KREG_M,XMMREG,MEM16,'); + FOpCodeList.Add('vcmpneq_ussh,1,1,1,KREG_M,XMMREG,XMMREG_SAE,'); + FOpCodeList.Add('vcmpneq_ussh,1,1,1,KREG_M,XMMREG,MEM16,'); + FOpCodeList.Add('vcmpnlt_uqsh,1,1,1,KREG_M,XMMREG,XMMREG_SAE,'); + FOpCodeList.Add('vcmpnlt_uqsh,1,1,1,KREG_M,XMMREG,MEM16,'); + FOpCodeList.Add('vcmpnle_uqsh,1,1,1,KREG_M,XMMREG,XMMREG_SAE,'); + FOpCodeList.Add('vcmpnle_uqsh,1,1,1,KREG_M,XMMREG,MEM16,'); + FOpCodeList.Add('vcmpord_ssh,1,1,1,KREG_M,XMMREG,XMMREG_SAE,'); + FOpCodeList.Add('vcmpord_ssh,1,1,1,KREG_M,XMMREG,MEM16,'); + FOpCodeList.Add('vcmpeq_ussh,1,1,1,KREG_M,XMMREG,XMMREG_SAE,'); + FOpCodeList.Add('vcmpeq_ussh,1,1,1,KREG_M,XMMREG,MEM16,'); + FOpCodeList.Add('vcmpnge_uqsh,1,1,1,KREG_M,XMMREG,XMMREG_SAE,'); + FOpCodeList.Add('vcmpnge_uqsh,1,1,1,KREG_M,XMMREG,MEM16,'); + FOpCodeList.Add('vcmpngt_uqsh,1,1,1,KREG_M,XMMREG,XMMREG_SAE,'); + FOpCodeList.Add('vcmpngt_uqsh,1,1,1,KREG_M,XMMREG,MEM16,'); + FOpCodeList.Add('vcmpfalse_ossh,1,1,1,KREG_M,XMMREG,XMMREG_SAE,'); + FOpCodeList.Add('vcmpfalse_ossh,1,1,1,KREG_M,XMMREG,MEM16,'); + FOpCodeList.Add('vcmpneq_ossh,1,1,1,KREG_M,XMMREG,XMMREG_SAE,'); + FOpCodeList.Add('vcmpneq_ossh,1,1,1,KREG_M,XMMREG,MEM16,'); + FOpCodeList.Add('vcmpge_oqsh,1,1,1,KREG_M,XMMREG,XMMREG_SAE,'); + FOpCodeList.Add('vcmpge_oqsh,1,1,1,KREG_M,XMMREG,MEM16,'); + FOpCodeList.Add('vcmpgt_oqsh,1,1,1,KREG_M,XMMREG,XMMREG_SAE,'); + FOpCodeList.Add('vcmpgt_oqsh,1,1,1,KREG_M,XMMREG,MEM16,'); + FOpCodeList.Add('vcmptrue_ussh,1,1,1,KREG_M,XMMREG,XMMREG_SAE,'); + FOpCodeList.Add('vcmptrue_ussh,1,1,1,KREG_M,XMMREG,MEM16,'); + FOpCodeList.Add('vcmpph,1,1,1,KREG_M,XMMREG,XMMRM,IMM8'); + FOpCodeList.Add('vcmpph,1,1,1,KREG_M,XMMREG,8B16,IMM8'); + FOpCodeList.Add('vcmpph,1,1,1,KREG_M,YMMREG,YMMRM,IMM8'); + FOpCodeList.Add('vcmpph,1,1,1,KREG_M,YMMREG,16B16,IMM8'); + FOpCodeList.Add('vcmpph,1,1,1,KREG_M,ZMMREG,ZMMREG_SAE,IMM8'); + FOpCodeList.Add('vcmpph,1,1,1,KREG_M,ZMMREG,MEM512,IMM8'); + FOpCodeList.Add('vcmpph,1,1,1,KREG_M,ZMMREG,32B16,IMM8'); + FOpCodeList.Add('vcmpsh,1,1,1,KREG_M,XMMREG,XMMREG_SAE,IMM8'); + FOpCodeList.Add('vcmpsh,1,1,1,KREG_M,XMMREG,MEM16,IMM8'); + FOpCodeList.Add('VCOMISH,1,1,1,XMMREG,XMMREG_SAE,,'); + FOpCodeList.Add('VCOMISH,1,1,1,XMMREG,MEM16,,'); + FOpCodeList.Add('vcvtdq2ph,1,1,1,XMMREG_MZ,XMMRM,,'); + FOpCodeList.Add('vcvtdq2ph,1,1,1,XMMREG_MZ,4B32,,'); + FOpCodeList.Add('vcvtdq2ph,1,1,1,XMMREG_MZ,YMMRM,,'); + FOpCodeList.Add('vcvtdq2ph,1,1,1,XMMREG_MZ,8B32,,'); + FOpCodeList.Add('vcvtdq2ph,1,1,1,YMMREG_MZ,ZMMREG_ER,,'); + FOpCodeList.Add('vcvtdq2ph,1,1,1,YMMREG_MZ,MEM512,,'); + FOpCodeList.Add('vcvtdq2ph,1,1,1,YMMREG_MZ,16B32,,'); + FOpCodeList.Add('vcvtpd2ph,1,1,1,XMMREG_MZ,XMMRM,,'); + FOpCodeList.Add('vcvtpd2ph,1,1,1,XMMREG_MZ,2B64,,'); + FOpCodeList.Add('vcvtpd2ph,1,1,1,XMMREG_MZ,YMMRM,,'); + FOpCodeList.Add('vcvtpd2ph,1,1,1,XMMREG_MZ,4B32,,'); + FOpCodeList.Add('vcvtpd2ph,1,1,1,XMMREG_MZ,ZMMREG_ER,,'); + FOpCodeList.Add('vcvtpd2ph,1,1,1,XMMREG_MZ,MEM512,,'); + FOpCodeList.Add('vcvtpd2ph,1,1,1,XMMREG_MZ,8B32,,'); + FOpCodeList.Add('vcvtph2dq,1,1,1,XMMREG_MZ,XMMREG,,'); + FOpCodeList.Add('vcvtph2dq,1,1,1,XMMREG_MZ,MEM64,,'); + FOpCodeList.Add('vcvtph2dq,1,1,1,XMMREG_MZ,4B32,,'); + FOpCodeList.Add('vcvtph2dq,1,1,1,YMMREG_MZ,XMMRM,,'); + FOpCodeList.Add('vcvtph2dq,1,1,1,YMMREG_MZ,8B32,,'); + FOpCodeList.Add('vcvtph2dq,1,1,1,ZMMREG_MZ,YMMREG_ER,,'); + FOpCodeList.Add('vcvtph2dq,1,1,1,ZMMREG_MZ,MEM256,,'); + FOpCodeList.Add('vcvtph2dq,1,1,1,ZMMREG_MZ,16B32,,'); + FOpCodeList.Add('vcvtph2pd,1,1,1,XMMREG_MZ,XMMREG,,'); + FOpCodeList.Add('vcvtph2pd,1,1,1,XMMREG_MZ,MEM32,,'); + FOpCodeList.Add('vcvtph2pd,1,1,1,XMMREG_MZ,2B64,,'); + FOpCodeList.Add('vcvtph2pd,1,1,1,YMMREG_MZ,XMMREG,,'); + FOpCodeList.Add('vcvtph2pd,1,1,1,YMMREG_MZ,MEM16,,'); + FOpCodeList.Add('vcvtph2pd,1,1,1,YMMREG_MZ,4B64,,'); + FOpCodeList.Add('vcvtph2pd,1,1,1,ZMMREG_MZ,XMMREG_SAE,,'); + FOpCodeList.Add('vcvtph2pd,1,1,1,ZMMREG_MZ,MEM128,,'); + FOpCodeList.Add('vcvtph2pd,1,1,1,ZMMREG_MZ,8B64,,'); + FOpCodeList.Add('vcvtph2psx,1,1,1,XMMREG_MZ,XMMREG,,'); + FOpCodeList.Add('vcvtph2psx,1,1,1,XMMREG_MZ,MEM64,,'); + FOpCodeList.Add('vcvtph2psx,1,1,1,XMMREG_MZ,4B32,,'); + FOpCodeList.Add('vcvtph2psx,1,1,1,YMMREG_MZ,XMMRM,,'); + FOpCodeList.Add('vcvtph2psx,1,1,1,YMMREG_MZ,8B32,,'); + FOpCodeList.Add('vcvtph2psx,1,1,1,ZMMREG_MZ,YMMREG_SAE,,'); + FOpCodeList.Add('vcvtph2psx,1,1,1,ZMMREG_MZ,MEM256,,'); + FOpCodeList.Add('vcvtph2psx,1,1,1,ZMMREG_MZ,16B32,,'); + FOpCodeList.Add('vcvtph2qq,1,1,1,XMMREG_MZ,XMMREG,,'); + FOpCodeList.Add('vcvtph2qq,1,1,1,XMMREG_MZ,MEM32,,'); + FOpCodeList.Add('vcvtph2qq,1,1,1,XMMREG_MZ,2B64,,'); + FOpCodeList.Add('vcvtph2qq,1,1,1,YMMREG_MZ,XMMREG,,'); + FOpCodeList.Add('vcvtph2qq,1,1,1,YMMREG_MZ,MEM64,,'); + FOpCodeList.Add('vcvtph2qq,1,1,1,YMMREG_MZ,4B64,,'); + FOpCodeList.Add('vcvtph2qq,1,1,1,ZMMREG_MZ,XMMREG_ER,,'); + FOpCodeList.Add('vcvtph2qq,1,1,1,ZMMREG_MZ,MEM128,,'); + FOpCodeList.Add('vcvtph2qq,1,1,1,ZMMREG_MZ,8B64,,'); + FOpCodeList.Add('vcvtph2udq,1,1,1,XMMREG_MZ,XMMREG,,'); + FOpCodeList.Add('vcvtph2udq,1,1,1,XMMREG_MZ,MEM64,,'); + FOpCodeList.Add('vcvtph2udq,1,1,1,XMMREG_MZ,4B32,,'); + FOpCodeList.Add('vcvtph2udq,1,1,1,YMMREG_MZ,XMMRM,,'); + FOpCodeList.Add('vcvtph2udq,1,1,1,YMMREG_MZ,8B32,,'); + FOpCodeList.Add('vcvtph2udq,1,1,1,ZMMREG_MZ,YMMREG_ER,,'); + FOpCodeList.Add('vcvtph2udq,1,1,1,ZMMREG_MZ,MEM256,,'); + FOpCodeList.Add('vcvtph2udq,1,1,1,ZMMREG_MZ,16B32,,'); + FOpCodeList.Add('vcvtph2uqq,1,1,1,XMMREG_MZ,XMMREG,,'); + FOpCodeList.Add('vcvtph2uqq,1,1,1,XMMREG_MZ,MEM32,,'); + FOpCodeList.Add('vcvtph2uqq,1,1,1,XMMREG_MZ,2B64,,'); + FOpCodeList.Add('vcvtph2uqq,1,1,1,YMMREG_MZ,XMMREG,,'); + FOpCodeList.Add('vcvtph2uqq,1,1,1,YMMREG_MZ,MEM64,,'); + FOpCodeList.Add('vcvtph2uqq,1,1,1,YMMREG_MZ,4B64,,'); + FOpCodeList.Add('vcvtph2uqq,1,1,1,ZMMREG_MZ,XMMREG_ER,,'); + FOpCodeList.Add('vcvtph2uqq,1,1,1,ZMMREG_MZ,MEM128,,'); + FOpCodeList.Add('vcvtph2uqq,1,1,1,ZMMREG_MZ,8B64,,'); + FOpCodeList.Add('vcvtph2uw,1,1,1,XMMREG_MZ,XMMRM,,'); + FOpCodeList.Add('vcvtph2uw,1,1,1,XMMREG_MZ,8B16,,'); + FOpCodeList.Add('vcvtph2uw,1,1,1,YMMREG_MZ,YMMRM,,'); + FOpCodeList.Add('vcvtph2uw,1,1,1,YMMREG_MZ,16B16,,'); + FOpCodeList.Add('vcvtph2uw,1,1,1,ZMMREG_MZ,ZMMREG_ER,,'); + FOpCodeList.Add('vcvtph2uw,1,1,1,ZMMREG_MZ,MEM512,,'); + FOpCodeList.Add('vcvtph2uw,1,1,1,ZMMREG_MZ,32B16,,'); + FOpCodeList.Add('vcvtph2w,1,1,1,XMMREG_MZ,XMMRM,,'); + FOpCodeList.Add('vcvtph2w,1,1,1,XMMREG_MZ,8B16,,'); + FOpCodeList.Add('vcvtph2w,1,1,1,YMMREG_MZ,YMMRM,,'); + FOpCodeList.Add('vcvtph2w,1,1,1,YMMREG_MZ,16B16,,'); + FOpCodeList.Add('vcvtph2w,1,1,1,ZMMREG_MZ,ZMMREG_ER,,'); + FOpCodeList.Add('vcvtph2w,1,1,1,ZMMREG_MZ,MEM512,,'); + FOpCodeList.Add('vcvtph2w,1,1,1,ZMMREG_MZ,32B16,,'); + FOpCodeList.Add('vcvtps2phx,1,1,1,XMMREG_MZ,XMMRM,,'); + FOpCodeList.Add('vcvtps2phx,1,1,1,XMMREG_MZ,4B32,,'); + FOpCodeList.Add('vcvtps2phx,1,1,1,XMMREG_MZ,YMMRM,,'); + FOpCodeList.Add('vcvtps2phx,1,1,1,XMMREG_MZ,8B32,,'); + FOpCodeList.Add('vcvtps2phx,1,1,1,YMMREG_MZ,ZMMREG_ER,,'); + FOpCodeList.Add('vcvtps2phx,1,1,1,YMMREG_MZ,MEM512,,'); + FOpCodeList.Add('vcvtps2phx,1,1,1,YMMREG_MZ,16B32,,'); + FOpCodeList.Add('vcvtqq2ph,1,1,1,XMMREG_MZ,XMMRM,,'); + FOpCodeList.Add('vcvtqq2ph,1,1,1,XMMREG_MZ,2B64,,'); + FOpCodeList.Add('vcvtqq2ph,1,1,1,XMMREG_MZ,YMMRM,,'); + FOpCodeList.Add('vcvtqq2ph,1,1,1,XMMREG_MZ,4B32,,'); + FOpCodeList.Add('vcvtqq2ph,1,1,1,XMMREG_MZ,ZMMREG_ER,,'); + FOpCodeList.Add('vcvtqq2ph,1,1,1,XMMREG_MZ,MEM512,,'); + FOpCodeList.Add('vcvtqq2ph,1,1,1,XMMREG_MZ,8B32,,'); + FOpCodeList.Add('vcvtsd2sh,1,1,1,XMMREG_MZ,XMMREG,XMMREG_ER,'); + FOpCodeList.Add('vcvtsd2sh,1,1,1,XMMREG_MZ,XMMREG,MEM64,'); + FOpCodeList.Add('vcvtsh2sd,1,1,1,XMMREG_MZ,XMMREG,XMMREG_SAE,'); + FOpCodeList.Add('vcvtsh2sd,1,1,1,XMMREG_MZ,XMMREG,MEM16,'); + FOpCodeList.Add('vcvtsh2si,1,1,1,REG32,XMMREG_ER,,'); + FOpCodeList.Add('vcvtsh2si,1,1,1,REG32,MEM16,,'); + FOpCodeList.Add('vcvtsh2si,0,1,1,REG64,XMMREG_ER,,'); + FOpCodeList.Add('vcvtsh2si,0,1,1,REG64,MEM16,,'); + FOpCodeList.Add('vcvtsh2ss,1,1,1,XMMREG_MZ,XMMREG,XMMREG_SAE,'); + FOpCodeList.Add('vcvtsh2ss,1,1,1,XMMREG_MZ,XMMREG,MEM16,'); + FOpCodeList.Add('vcvtsh2usi,1,1,1,REG32,XMMREG_ER,,'); + FOpCodeList.Add('vcvtsh2usi,1,1,1,REG32,MEM16,,'); + FOpCodeList.Add('vcvtsh2usi,0,1,1,REG64,XMMREG_ER,,'); + FOpCodeList.Add('vcvtsh2usi,0,1,1,REG64,MEM16,,'); + FOpCodeList.Add('vcvtsi2sh,1,1,1,XMMREG,XMMREG_ER,REG32,'); + FOpCodeList.Add('vcvtsi2sh,1,1,1,XMMREG,XMMREG,MEM32,'); + FOpCodeList.Add('vcvtsi2sh,0,1,1,XMMREG,XMMREG_ER,REG64,'); + FOpCodeList.Add('vcvtsi2sh,0,1,1,XMMREG,XMMREG,MEM64,'); + FOpCodeList.Add('vcvtss2sh,1,1,1,XMMREG_MZ,XMMREG,XMMREG_ER,'); + FOpCodeList.Add('vcvtss2sh,1,1,1,XMMREG_MZ,XMMREG,MEM32,'); + FOpCodeList.Add('vcvttph2dq,1,1,1,XMMREG_MZ,XMMREG,,'); + FOpCodeList.Add('vcvttph2dq,1,1,1,XMMREG_MZ,MEM64,,'); + FOpCodeList.Add('vcvttph2dq,1,1,1,XMMREG_MZ,4B32,,'); + FOpCodeList.Add('vcvttph2dq,1,1,1,YMMREG_MZ,XMMRM,,'); + FOpCodeList.Add('vcvttph2dq,1,1,1,YMMREG_MZ,8B32,,'); + FOpCodeList.Add('vcvttph2dq,1,1,1,ZMMREG_MZ,YMMREG_SAE,,'); + FOpCodeList.Add('vcvttph2dq,1,1,1,ZMMREG_MZ,MEM256,,'); + FOpCodeList.Add('vcvttph2dq,1,1,1,ZMMREG_MZ,16B32,,'); + FOpCodeList.Add('vcvttph2qq,1,1,1,XMMREG_MZ,XMMREG,,'); + FOpCodeList.Add('vcvttph2qq,1,1,1,XMMREG_MZ,MEM32,,'); + FOpCodeList.Add('vcvttph2qq,1,1,1,XMMREG_MZ,2B64,,'); + FOpCodeList.Add('vcvttph2qq,1,1,1,YMMREG_MZ,XMMRM,,'); + FOpCodeList.Add('vcvttph2qq,1,1,1,YMMREG_MZ,MEM64,,'); + FOpCodeList.Add('vcvttph2qq,1,1,1,YMMREG_MZ,4B64,,'); + FOpCodeList.Add('vcvttph2qq,1,1,1,ZMMREG_MZ,XMMREG_SAE,,'); + FOpCodeList.Add('vcvttph2qq,1,1,1,ZMMREG_MZ,MEM128,,'); + FOpCodeList.Add('vcvttph2qq,1,1,1,ZMMREG_MZ,8B64,,'); + FOpCodeList.Add('vcvttph2udq,1,1,1,XMMREG_MZ,XMMREG,,'); + FOpCodeList.Add('vcvttph2udq,1,1,1,XMMREG_MZ,MEM64,,'); + FOpCodeList.Add('vcvttph2udq,1,1,1,XMMREG_MZ,4B32,,'); + FOpCodeList.Add('vcvttph2udq,1,1,1,YMMREG_MZ,XMMRM,,'); + FOpCodeList.Add('vcvttph2udq,1,1,1,YMMREG_MZ,8B32,,'); + FOpCodeList.Add('vcvttph2udq,1,1,1,ZMMREG_MZ,YMMREG_SAE,,'); + FOpCodeList.Add('vcvttph2udq,1,1,1,ZMMREG_MZ,MEM256,,'); + FOpCodeList.Add('vcvttph2udq,1,1,1,ZMMREG_MZ,16B32,,'); + FOpCodeList.Add('vcvttph2uqq,1,1,1,XMMREG_MZ,XMMREG,,'); + FOpCodeList.Add('vcvttph2uqq,1,1,1,XMMREG_MZ,MEM32,,'); + FOpCodeList.Add('vcvttph2uqq,1,1,1,XMMREG_MZ,2B64,,'); + FOpCodeList.Add('vcvttph2uqq,1,1,1,YMMREG_MZ,XMMRM,,'); + FOpCodeList.Add('vcvttph2uqq,1,1,1,YMMREG_MZ,MEM64,,'); + FOpCodeList.Add('vcvttph2uqq,1,1,1,YMMREG_MZ,4B64,,'); + FOpCodeList.Add('vcvttph2uqq,1,1,1,ZMMREG_MZ,XMMREG_SAE,,'); + FOpCodeList.Add('vcvttph2uqq,1,1,1,ZMMREG_MZ,MEM128,,'); + FOpCodeList.Add('vcvttph2uqq,1,1,1,ZMMREG_MZ,8B64,,'); + FOpCodeList.Add('vcvttph2uw,1,1,1,XMMREG_MZ,XMMRM,,'); + FOpCodeList.Add('vcvttph2uw,1,1,1,XMMREG_MZ,8B16,,'); + FOpCodeList.Add('vcvttph2uw,1,1,1,YMMREG_MZ,YMMRM,,'); + FOpCodeList.Add('vcvttph2uw,1,1,1,YMMREG_MZ,16B16,,'); + FOpCodeList.Add('vcvttph2uw,1,1,1,ZMMREG_MZ,ZMMREG_SAE,,'); + FOpCodeList.Add('vcvttph2uw,1,1,1,ZMMREG_MZ,MEM512,,'); + FOpCodeList.Add('vcvttph2uw,1,1,1,ZMMREG_MZ,32B16,,'); + FOpCodeList.Add('vcvttph2w,1,1,1,XMMREG_MZ,XMMRM,,'); + FOpCodeList.Add('vcvttph2w,1,1,1,XMMREG_MZ,8B16,,'); + FOpCodeList.Add('vcvttph2w,1,1,1,YMMREG_MZ,YMMRM,,'); + FOpCodeList.Add('vcvttph2w,1,1,1,YMMREG_MZ,16B16,,'); + FOpCodeList.Add('vcvttph2w,1,1,1,ZMMREG_MZ,ZMMREG_SAE,,'); + FOpCodeList.Add('vcvttph2w,1,1,1,ZMMREG_MZ,MEM512,,'); + FOpCodeList.Add('vcvttph2w,1,1,1,ZMMREG_MZ,32B16,,'); + FOpCodeList.Add('vcvttsh2si,1,1,1,REG32,XMMREG_SAE,,'); + FOpCodeList.Add('vcvttsh2si,1,1,1,REG32,MEM16,,'); + FOpCodeList.Add('vcvttsh2si,0,1,1,REG64,XMMREG_SAE,,'); + FOpCodeList.Add('vcvttsh2si,0,1,1,REG64,MEM16,,'); + FOpCodeList.Add('vcvttsh2usi,1,1,1,REG32,XMMREG_SAE,,'); + FOpCodeList.Add('vcvttsh2usi,1,1,1,REG32,MEM16,,'); + FOpCodeList.Add('vcvttsh2usi,0,1,1,REG64,XMMREG_SAE,,'); + FOpCodeList.Add('vcvttsh2usi,0,1,1,REG64,MEM16,,'); + FOpCodeList.Add('vcvtudq2ph,1,1,1,XMMREG_MZ,XMMRM,,'); + FOpCodeList.Add('vcvtudq2ph,1,1,1,XMMREG_MZ,4B32,,'); + FOpCodeList.Add('vcvtudq2ph,1,1,1,XMMREG_MZ,YMMRM,,'); + FOpCodeList.Add('vcvtudq2ph,1,1,1,XMMREG_MZ,8B32,,'); + FOpCodeList.Add('vcvtudq2ph,1,1,1,YMMREG_MZ,ZMMREG_ER,,'); + FOpCodeList.Add('vcvtudq2ph,1,1,1,YMMREG_MZ,MEM512,,'); + FOpCodeList.Add('vcvtudq2ph,1,1,1,YMMREG_MZ,16B32,,'); + FOpCodeList.Add('vcvtuqq2ph,1,1,1,XMMREG_MZ,XMMRM,,'); + FOpCodeList.Add('vcvtuqq2ph,1,1,1,XMMREG_MZ,2B64,,'); + FOpCodeList.Add('vcvtuqq2ph,1,1,1,XMMREG_MZ,YMMRM,,'); + FOpCodeList.Add('vcvtuqq2ph,1,1,1,XMMREG_MZ,4B32,,'); + FOpCodeList.Add('vcvtuqq2ph,1,1,1,XMMREG_MZ,ZMMREG_ER,,'); + FOpCodeList.Add('vcvtuqq2ph,1,1,1,XMMREG_MZ,MEM512,,'); + FOpCodeList.Add('vcvtuqq2ph,1,1,1,XMMREG_MZ,8B32,,'); + FOpCodeList.Add('vcvtusi2sh,1,1,1,XMMREG,XMMREG_ER,REG32,'); + FOpCodeList.Add('vcvtusi2sh,1,1,1,XMMREG,XMMREG,MEM32,'); + FOpCodeList.Add('vcvtusi2sh,0,1,1,XMMREG,XMMREG_ER,REG64,'); + FOpCodeList.Add('vcvtusi2sh,0,1,1,XMMREG,XMMREG,MEM64,'); + FOpCodeList.Add('vcvtuw2ph,1,1,1,XMMREG_MZ,XMMRM,,'); + FOpCodeList.Add('vcvtuw2ph,1,1,1,XMMREG_MZ,8B16,,'); + FOpCodeList.Add('vcvtuw2ph,1,1,1,YMMREG_MZ,YMMRM,,'); + FOpCodeList.Add('vcvtuw2ph,1,1,1,YMMREG_MZ,16B16,,'); + FOpCodeList.Add('vcvtuw2ph,1,1,1,ZMMREG_MZ,ZMMREG_ER,,'); + FOpCodeList.Add('vcvtuw2ph,1,1,1,ZMMREG_MZ,MEM512,,'); + FOpCodeList.Add('vcvtuw2ph,1,1,1,ZMMREG_MZ,32B16,,'); + FOpCodeList.Add('vcvtw2ph,1,1,1,XMMREG_MZ,XMMRM,,'); + FOpCodeList.Add('vcvtw2ph,1,1,1,XMMREG_MZ,8B16,,'); + FOpCodeList.Add('vcvtw2ph,1,1,1,YMMREG_MZ,YMMRM,,'); + FOpCodeList.Add('vcvtw2ph,1,1,1,YMMREG_MZ,16B16,,'); + FOpCodeList.Add('vcvtw2ph,1,1,1,ZMMREG_MZ,ZMMREG_ER,,'); + FOpCodeList.Add('vcvtw2ph,1,1,1,ZMMREG_MZ,MEM512,,'); + FOpCodeList.Add('vcvtw2ph,1,1,1,ZMMREG_MZ,32B16,,'); + FOpCodeList.Add('vdivph,1,1,1,XMMREG_MZ,XMMREG,XMMRM,'); + FOpCodeList.Add('vdivph,1,1,1,XMMREG_MZ,XMMREG,8B16,'); + FOpCodeList.Add('vdivph,1,1,1,YMMREG_MZ,YMMREG,YMMRM,'); + FOpCodeList.Add('vdivph,1,1,1,YMMREG_MZ,YMMREG,16B16,'); + FOpCodeList.Add('vdivph,1,1,1,ZMMREG_MZ,ZMMREG,ZMMREG_ER,'); + FOpCodeList.Add('vdivph,1,1,1,ZMMREG_MZ,ZMMREG,MEM512,'); + FOpCodeList.Add('vdivph,1,1,1,ZMMREG_MZ,ZMMREG,32B16,'); + FOpCodeList.Add('vdivsh,1,1,1,XMMREG_MZ,XMMREG,XMMREG_ER,'); + FOpCodeList.Add('vdivsh,1,1,1,XMMREG_MZ,XMMREG,MEM16,'); + FOpCodeList.Add('vfcmaddcph,1,1,1,XMMREG_MZ,XMMREG,XMMRM,'); + FOpCodeList.Add('vfcmaddcph,1,1,1,XMMREG_MZ,XMMREG,4B32,'); + FOpCodeList.Add('vfcmaddcph,1,1,1,YMMREG_MZ,YMMREG,YMMRM,'); + FOpCodeList.Add('vfcmaddcph,1,1,1,YMMREG_MZ,YMMREG,8B32,'); + FOpCodeList.Add('vfcmaddcph,1,1,1,ZMMREG_MZ,ZMMREG,ZMMREG_ER,'); + FOpCodeList.Add('vfcmaddcph,1,1,1,ZMMREG_MZ,ZMMREG,MEM512,'); + FOpCodeList.Add('vfcmaddcph,1,1,1,ZMMREG_MZ,ZMMREG,16B32,'); + FOpCodeList.Add('vfcmaddcsh,1,1,1,XMMREG_MZ,XMMREG,XMMREG_ER,'); + FOpCodeList.Add('vfcmaddcsh,1,1,1,XMMREG_MZ,XMMREG,MEM32,'); + FOpCodeList.Add('vfmaddcph,1,1,1,XMMREG_MZ,XMMREG,XMMRM,'); + FOpCodeList.Add('vfmaddcph,1,1,1,XMMREG_MZ,XMMREG,4B32,'); + FOpCodeList.Add('vfmaddcph,1,1,1,YMMREG_MZ,YMMREG,YMMRM,'); + FOpCodeList.Add('vfmaddcph,1,1,1,YMMREG_MZ,YMMREG,8B32,'); + FOpCodeList.Add('vfmaddcph,1,1,1,ZMMREG_MZ,ZMMREG,ZMMREG_ER,'); + FOpCodeList.Add('vfmaddcph,1,1,1,ZMMREG_MZ,ZMMREG,MEM512,'); + FOpCodeList.Add('vfmaddcph,1,1,1,ZMMREG_MZ,ZMMREG,16B32,'); + FOpCodeList.Add('vfmaddcsh,1,1,1,XMMREG_MZ,XMMREG,XMMREG_ER,'); + FOpCodeList.Add('vfmaddcsh,1,1,1,XMMREG_MZ,XMMREG,MEM32,'); + FOpCodeList.Add('vfcmulcph,1,1,1,XMMREG_MZ,XMMREG,XMMRM,'); + FOpCodeList.Add('vfcmulcph,1,1,1,XMMREG_MZ,XMMREG,4B32,'); + FOpCodeList.Add('vfcmulcph,1,1,1,YMMREG_MZ,YMMREG,YMMRM,'); + FOpCodeList.Add('vfcmulcph,1,1,1,YMMREG_MZ,YMMREG,8B32,'); + FOpCodeList.Add('vfcmulcph,1,1,1,ZMMREG_MZ,ZMMREG,ZMMREG_ER,'); + FOpCodeList.Add('vfcmulcph,1,1,1,ZMMREG_MZ,ZMMREG,MEM512,'); + FOpCodeList.Add('vfcmulcph,1,1,1,ZMMREG_MZ,ZMMREG,16B32,'); + FOpCodeList.Add('vfcmulcsh,1,1,1,XMMREG_MZ,XMMREG,XMMREG_ER,'); + FOpCodeList.Add('vfcmulcsh,1,1,1,XMMREG_MZ,XMMREG,MEM32,'); + FOpCodeList.Add('vfmulcph,1,1,1,XMMREG_MZ,XMMREG,XMMRM,'); + FOpCodeList.Add('vfmulcph,1,1,1,XMMREG_MZ,XMMREG,4B32,'); + FOpCodeList.Add('vfmulcph,1,1,1,YMMREG_MZ,YMMREG,YMMRM,'); + FOpCodeList.Add('vfmulcph,1,1,1,YMMREG_MZ,YMMREG,8B32,'); + FOpCodeList.Add('vfmulcph,1,1,1,ZMMREG_MZ,ZMMREG,ZMMREG_ER,'); + FOpCodeList.Add('vfmulcph,1,1,1,ZMMREG_MZ,ZMMREG,MEM512,'); + FOpCodeList.Add('vfmulcph,1,1,1,ZMMREG_MZ,ZMMREG,16B32,'); + FOpCodeList.Add('vfmulcsh,1,1,1,XMMREG_MZ,XMMREG,XMMREG_ER,'); + FOpCodeList.Add('vfmulcsh,1,1,1,XMMREG_MZ,XMMREG,MEM32,'); + FOpCodeList.Add('vfmaddsub132ph,1,1,1,XMMREG_MZ,XMMREG,XMMRM,'); + FOpCodeList.Add('vfmaddsub132ph,1,1,1,XMMREG_MZ,XMMREG,8B16,'); + FOpCodeList.Add('vfmaddsub132ph,1,1,1,YMMREG_MZ,YMMREG,YMMRM,'); + FOpCodeList.Add('vfmaddsub132ph,1,1,1,YMMREG_MZ,YMMREG,16B16,'); + FOpCodeList.Add('vfmaddsub132ph,1,1,1,ZMMREG_MZ,ZMMREG,ZMMREG_ER,'); + FOpCodeList.Add('vfmaddsub132ph,1,1,1,ZMMREG_MZ,ZMMREG,MEM512,'); + FOpCodeList.Add('vfmaddsub132ph,1,1,1,ZMMREG_MZ,ZMMREG,32B16,'); + FOpCodeList.Add('vfmaddsub213ph,1,1,1,XMMREG_MZ,XMMREG,XMMRM,'); + FOpCodeList.Add('vfmaddsub213ph,1,1,1,XMMREG_MZ,XMMREG,8B16,'); + FOpCodeList.Add('vfmaddsub213ph,1,1,1,YMMREG_MZ,YMMREG,YMMRM,'); + FOpCodeList.Add('vfmaddsub213ph,1,1,1,YMMREG_MZ,YMMREG,16B16,'); + FOpCodeList.Add('vfmaddsub213ph,1,1,1,ZMMREG_MZ,ZMMREG,ZMMREG_ER,'); + FOpCodeList.Add('vfmaddsub213ph,1,1,1,ZMMREG_MZ,ZMMREG,MEM512,'); + FOpCodeList.Add('vfmaddsub213ph,1,1,1,ZMMREG_MZ,ZMMREG,32B16,'); + FOpCodeList.Add('vfmaddsub231ph,1,1,1,XMMREG_MZ,XMMREG,XMMRM,'); + FOpCodeList.Add('vfmaddsub231ph,1,1,1,XMMREG_MZ,XMMREG,8B16,'); + FOpCodeList.Add('vfmaddsub231ph,1,1,1,YMMREG_MZ,YMMREG,YMMRM,'); + FOpCodeList.Add('vfmaddsub231ph,1,1,1,YMMREG_MZ,YMMREG,16B16,'); + FOpCodeList.Add('vfmaddsub231ph,1,1,1,ZMMREG_MZ,ZMMREG,ZMMREG_ER,'); + FOpCodeList.Add('vfmaddsub231ph,1,1,1,ZMMREG_MZ,ZMMREG,MEM512,'); + FOpCodeList.Add('vfmaddsub231ph,1,1,1,ZMMREG_MZ,ZMMREG,32B16,'); + FOpCodeList.Add('vfmsubadd132ph,1,1,1,XMMREG_MZ,XMMREG,XMMRM,'); + FOpCodeList.Add('vfmsubadd132ph,1,1,1,XMMREG_MZ,XMMREG,8B16,'); + FOpCodeList.Add('vfmsubadd132ph,1,1,1,YMMREG_MZ,YMMREG,YMMRM,'); + FOpCodeList.Add('vfmsubadd132ph,1,1,1,YMMREG_MZ,YMMREG,16B16,'); + FOpCodeList.Add('vfmsubadd132ph,1,1,1,ZMMREG_MZ,ZMMREG,ZMMREG_ER,'); + FOpCodeList.Add('vfmsubadd132ph,1,1,1,ZMMREG_MZ,ZMMREG,MEM512,'); + FOpCodeList.Add('vfmsubadd132ph,1,1,1,ZMMREG_MZ,ZMMREG,32B16,'); + FOpCodeList.Add('vfmsubadd213ph,1,1,1,XMMREG_MZ,XMMREG,XMMRM,'); + FOpCodeList.Add('vfmsubadd213ph,1,1,1,XMMREG_MZ,XMMREG,8B16,'); + FOpCodeList.Add('vfmsubadd213ph,1,1,1,YMMREG_MZ,YMMREG,YMMRM,'); + FOpCodeList.Add('vfmsubadd213ph,1,1,1,YMMREG_MZ,YMMREG,16B16,'); + FOpCodeList.Add('vfmsubadd213ph,1,1,1,ZMMREG_MZ,ZMMREG,ZMMREG_ER,'); + FOpCodeList.Add('vfmsubadd213ph,1,1,1,ZMMREG_MZ,ZMMREG,MEM512,'); + FOpCodeList.Add('vfmsubadd213ph,1,1,1,ZMMREG_MZ,ZMMREG,32B16,'); + FOpCodeList.Add('vfmsubadd231ph,1,1,1,XMMREG_MZ,XMMREG,XMMRM,'); + FOpCodeList.Add('vfmsubadd231ph,1,1,1,XMMREG_MZ,XMMREG,8B16,'); + FOpCodeList.Add('vfmsubadd231ph,1,1,1,YMMREG_MZ,YMMREG,YMMRM,'); + FOpCodeList.Add('vfmsubadd231ph,1,1,1,YMMREG_MZ,YMMREG,16B16,'); + FOpCodeList.Add('vfmsubadd231ph,1,1,1,ZMMREG_MZ,ZMMREG,ZMMREG_ER,'); + FOpCodeList.Add('vfmsubadd231ph,1,1,1,ZMMREG_MZ,ZMMREG,MEM512,'); + FOpCodeList.Add('vfmsubadd231ph,1,1,1,ZMMREG_MZ,ZMMREG,32B16,'); + FOpCodeList.Add('vfmadd132ph,1,1,1,XMMREG_MZ,XMMREG,XMMRM,'); + FOpCodeList.Add('vfmadd132ph,1,1,1,XMMREG_MZ,XMMREG,8B16,'); + FOpCodeList.Add('vfmadd132ph,1,1,1,YMMREG_MZ,YMMREG,YMMRM,'); + FOpCodeList.Add('vfmadd132ph,1,1,1,YMMREG_MZ,YMMREG,16B16,'); + FOpCodeList.Add('vfmadd132ph,1,1,1,ZMMREG_MZ,ZMMREG,ZMMREG_ER,'); + FOpCodeList.Add('vfmadd132ph,1,1,1,ZMMREG_MZ,ZMMREG,MEM512,'); + FOpCodeList.Add('vfmadd132ph,1,1,1,ZMMREG_MZ,ZMMREG,32B16,'); + FOpCodeList.Add('vfmadd213ph,1,1,1,XMMREG_MZ,XMMREG,XMMRM,'); + FOpCodeList.Add('vfmadd213ph,1,1,1,XMMREG_MZ,XMMREG,8B16,'); + FOpCodeList.Add('vfmadd213ph,1,1,1,YMMREG_MZ,YMMREG,YMMRM,'); + FOpCodeList.Add('vfmadd213ph,1,1,1,YMMREG_MZ,YMMREG,16B16,'); + FOpCodeList.Add('vfmadd213ph,1,1,1,ZMMREG_MZ,ZMMREG,ZMMREG_ER,'); + FOpCodeList.Add('vfmadd213ph,1,1,1,ZMMREG_MZ,ZMMREG,MEM512,'); + FOpCodeList.Add('vfmadd213ph,1,1,1,ZMMREG_MZ,ZMMREG,32B16,'); + FOpCodeList.Add('vfmadd231ph,1,1,1,XMMREG_MZ,XMMREG,XMMRM,'); + FOpCodeList.Add('vfmadd231ph,1,1,1,XMMREG_MZ,XMMREG,8B16,'); + FOpCodeList.Add('vfmadd231ph,1,1,1,YMMREG_MZ,YMMREG,YMMRM,'); + FOpCodeList.Add('vfmadd231ph,1,1,1,YMMREG_MZ,YMMREG,16B16,'); + FOpCodeList.Add('vfmadd231ph,1,1,1,ZMMREG_MZ,ZMMREG,ZMMREG_ER,'); + FOpCodeList.Add('vfmadd231ph,1,1,1,ZMMREG_MZ,ZMMREG,MEM512,'); + FOpCodeList.Add('vfmadd231ph,1,1,1,ZMMREG_MZ,ZMMREG,32B16,'); + FOpCodeList.Add('vfnmadd132ph,1,1,1,XMMREG_MZ,XMMREG,XMMRM,'); + FOpCodeList.Add('vfnmadd132ph,1,1,1,XMMREG_MZ,XMMREG,8B16,'); + FOpCodeList.Add('vfnmadd132ph,1,1,1,YMMREG_MZ,YMMREG,YMMRM,'); + FOpCodeList.Add('vfnmadd132ph,1,1,1,YMMREG_MZ,YMMREG,16B16,'); + FOpCodeList.Add('vfnmadd132ph,1,1,1,ZMMREG_MZ,ZMMREG,ZMMREG_ER,'); + FOpCodeList.Add('vfnmadd132ph,1,1,1,ZMMREG_MZ,ZMMREG,MEM512,'); + FOpCodeList.Add('vfnmadd132ph,1,1,1,ZMMREG_MZ,ZMMREG,32B16,'); + FOpCodeList.Add('vfnmadd213ph,1,1,1,XMMREG_MZ,XMMREG,XMMRM,'); + FOpCodeList.Add('vfnmadd213ph,1,1,1,XMMREG_MZ,XMMREG,8B16,'); + FOpCodeList.Add('vfnmadd213ph,1,1,1,YMMREG_MZ,YMMREG,YMMRM,'); + FOpCodeList.Add('vfnmadd213ph,1,1,1,YMMREG_MZ,YMMREG,16B16,'); + FOpCodeList.Add('vfnmadd213ph,1,1,1,ZMMREG_MZ,ZMMREG,ZMMREG_ER,'); + FOpCodeList.Add('vfnmadd213ph,1,1,1,ZMMREG_MZ,ZMMREG,MEM512,'); + FOpCodeList.Add('vfnmadd213ph,1,1,1,ZMMREG_MZ,ZMMREG,32B16,'); + FOpCodeList.Add('vfnmadd231ph,1,1,1,XMMREG_MZ,XMMREG,XMMRM,'); + FOpCodeList.Add('vfnmadd231ph,1,1,1,XMMREG_MZ,XMMREG,8B16,'); + FOpCodeList.Add('vfnmadd231ph,1,1,1,YMMREG_MZ,YMMREG,YMMRM,'); + FOpCodeList.Add('vfnmadd231ph,1,1,1,YMMREG_MZ,YMMREG,16B16,'); + FOpCodeList.Add('vfnmadd231ph,1,1,1,ZMMREG_MZ,ZMMREG,ZMMREG_ER,'); + FOpCodeList.Add('vfnmadd231ph,1,1,1,ZMMREG_MZ,ZMMREG,MEM512,'); + FOpCodeList.Add('vfnmadd231ph,1,1,1,ZMMREG_MZ,ZMMREG,32B16,'); + FOpCodeList.Add('vfmadd132sh,1,1,1,XMMREG_MZ,XMMREG,XMMREG_ER,'); + FOpCodeList.Add('vfmadd132sh,1,1,1,XMMREG_MZ,XMMREG,MEM16,'); + FOpCodeList.Add('vfmadd213sh,1,1,1,XMMREG_MZ,XMMREG,XMMREG_ER,'); + FOpCodeList.Add('vfmadd213sh,1,1,1,XMMREG_MZ,XMMREG,MEM16,'); + FOpCodeList.Add('vfmadd231sh,1,1,1,XMMREG_MZ,XMMREG,XMMREG_ER,'); + FOpCodeList.Add('vfmadd231sh,1,1,1,XMMREG_MZ,XMMREG,MEM16,'); + FOpCodeList.Add('vfnmadd132sh,1,1,1,XMMREG_MZ,XMMREG,XMMREG_ER,'); + FOpCodeList.Add('vfnmadd132sh,1,1,1,XMMREG_MZ,XMMREG,MEM16,'); + FOpCodeList.Add('vfnmadd213sh,1,1,1,XMMREG_MZ,XMMREG,XMMREG_ER,'); + FOpCodeList.Add('vfnmadd213sh,1,1,1,XMMREG_MZ,XMMREG,MEM16,'); + FOpCodeList.Add('vfnmadd231sh,1,1,1,XMMREG_MZ,XMMREG,XMMREG_ER,'); + FOpCodeList.Add('vfnmadd231sh,1,1,1,XMMREG_MZ,XMMREG,MEM16,'); + FOpCodeList.Add('vfmsub132ph,1,1,1,XMMREG_MZ,XMMREG,XMMRM,'); + FOpCodeList.Add('vfmsub132ph,1,1,1,XMMREG_MZ,XMMREG,8B16,'); + FOpCodeList.Add('vfmsub132ph,1,1,1,YMMREG_MZ,YMMREG,YMMRM,'); + FOpCodeList.Add('vfmsub132ph,1,1,1,YMMREG_MZ,YMMREG,16B16,'); + FOpCodeList.Add('vfmsub132ph,1,1,1,ZMMREG_MZ,ZMMREG,ZMMREG_ER,'); + FOpCodeList.Add('vfmsub132ph,1,1,1,ZMMREG_MZ,ZMMREG,MEM512,'); + FOpCodeList.Add('vfmsub132ph,1,1,1,ZMMREG_MZ,ZMMREG,32B16,'); + FOpCodeList.Add('vfmsub213ph,1,1,1,XMMREG_MZ,XMMREG,XMMRM,'); + FOpCodeList.Add('vfmsub213ph,1,1,1,XMMREG_MZ,XMMREG,8B16,'); + FOpCodeList.Add('vfmsub213ph,1,1,1,YMMREG_MZ,YMMREG,YMMRM,'); + FOpCodeList.Add('vfmsub213ph,1,1,1,YMMREG_MZ,YMMREG,16B16,'); + FOpCodeList.Add('vfmsub213ph,1,1,1,ZMMREG_MZ,ZMMREG,ZMMREG_ER,'); + FOpCodeList.Add('vfmsub213ph,1,1,1,ZMMREG_MZ,ZMMREG,MEM512,'); + FOpCodeList.Add('vfmsub213ph,1,1,1,ZMMREG_MZ,ZMMREG,32B16,'); + FOpCodeList.Add('vfmsub231ph,1,1,1,XMMREG_MZ,XMMREG,XMMRM,'); + FOpCodeList.Add('vfmsub231ph,1,1,1,XMMREG_MZ,XMMREG,8B16,'); + FOpCodeList.Add('vfmsub231ph,1,1,1,YMMREG_MZ,YMMREG,YMMRM,'); + FOpCodeList.Add('vfmsub231ph,1,1,1,YMMREG_MZ,YMMREG,16B16,'); + FOpCodeList.Add('vfmsub231ph,1,1,1,ZMMREG_MZ,ZMMREG,ZMMREG_ER,'); + FOpCodeList.Add('vfmsub231ph,1,1,1,ZMMREG_MZ,ZMMREG,MEM512,'); + FOpCodeList.Add('vfmsub231ph,1,1,1,ZMMREG_MZ,ZMMREG,32B16,'); + FOpCodeList.Add('vfnmsub132ph,1,1,1,XMMREG_MZ,XMMREG,XMMRM,'); + FOpCodeList.Add('vfnmsub132ph,1,1,1,XMMREG_MZ,XMMREG,8B16,'); + FOpCodeList.Add('vfnmsub132ph,1,1,1,YMMREG_MZ,YMMREG,YMMRM,'); + FOpCodeList.Add('vfnmsub132ph,1,1,1,YMMREG_MZ,YMMREG,16B16,'); + FOpCodeList.Add('vfnmsub132ph,1,1,1,ZMMREG_MZ,ZMMREG,ZMMREG_ER,'); + FOpCodeList.Add('vfnmsub132ph,1,1,1,ZMMREG_MZ,ZMMREG,MEM512,'); + FOpCodeList.Add('vfnmsub132ph,1,1,1,ZMMREG_MZ,ZMMREG,32B16,'); + FOpCodeList.Add('vfnmsub213ph,1,1,1,XMMREG_MZ,XMMREG,XMMRM,'); + FOpCodeList.Add('vfnmsub213ph,1,1,1,XMMREG_MZ,XMMREG,8B16,'); + FOpCodeList.Add('vfnmsub213ph,1,1,1,YMMREG_MZ,YMMREG,YMMRM,'); + FOpCodeList.Add('vfnmsub213ph,1,1,1,YMMREG_MZ,YMMREG,16B16,'); + FOpCodeList.Add('vfnmsub213ph,1,1,1,ZMMREG_MZ,ZMMREG,ZMMREG_ER,'); + FOpCodeList.Add('vfnmsub213ph,1,1,1,ZMMREG_MZ,ZMMREG,MEM512,'); + FOpCodeList.Add('vfnmsub213ph,1,1,1,ZMMREG_MZ,ZMMREG,32B16,'); + FOpCodeList.Add('vfnmsub231ph,1,1,1,XMMREG_MZ,XMMREG,XMMRM,'); + FOpCodeList.Add('vfnmsub231ph,1,1,1,XMMREG_MZ,XMMREG,8B16,'); + FOpCodeList.Add('vfnmsub231ph,1,1,1,YMMREG_MZ,YMMREG,YMMRM,'); + FOpCodeList.Add('vfnmsub231ph,1,1,1,YMMREG_MZ,YMMREG,16B16,'); + FOpCodeList.Add('vfnmsub231ph,1,1,1,ZMMREG_MZ,ZMMREG,ZMMREG_ER,'); + FOpCodeList.Add('vfnmsub231ph,1,1,1,ZMMREG_MZ,ZMMREG,MEM512,'); + FOpCodeList.Add('vfnmsub231ph,1,1,1,ZMMREG_MZ,ZMMREG,32B16,'); + FOpCodeList.Add('vfmsub132sh,1,1,1,XMMREG_MZ,XMMREG,XMMREG_ER,'); + FOpCodeList.Add('vfmsub132sh,1,1,1,XMMREG_MZ,XMMREG,MEM16,'); + FOpCodeList.Add('vfmsub213sh,1,1,1,XMMREG_MZ,XMMREG,XMMREG_ER,'); + FOpCodeList.Add('vfmsub213sh,1,1,1,XMMREG_MZ,XMMREG,MEM16,'); + FOpCodeList.Add('vfmsub231sh,1,1,1,XMMREG_MZ,XMMREG,XMMREG_ER,'); + FOpCodeList.Add('vfmsub231sh,1,1,1,XMMREG_MZ,XMMREG,MEM16,'); + FOpCodeList.Add('vfnmsub132sh,1,1,1,XMMREG_MZ,XMMREG,XMMREG_ER,'); + FOpCodeList.Add('vfnmsub132sh,1,1,1,XMMREG_MZ,XMMREG,MEM16,'); + FOpCodeList.Add('vfnmsub213sh,1,1,1,XMMREG_MZ,XMMREG,XMMREG_ER,'); + FOpCodeList.Add('vfnmsub213sh,1,1,1,XMMREG_MZ,XMMREG,MEM16,'); + FOpCodeList.Add('vfnmsub231sh,1,1,1,XMMREG_MZ,XMMREG,XMMREG_ER,'); + FOpCodeList.Add('vfnmsub231sh,1,1,1,XMMREG_MZ,XMMREG,MEM16,'); + FOpCodeList.Add('vfpclassph,1,1,1,KREG_M,XMMRM,IMM8'); + FOpCodeList.Add('vfpclassph,1,1,1,KREG_M,8B16,IMM8'); + FOpCodeList.Add('vfpclassph,1,1,1,KREG_M,YMMRM,IMM8'); + FOpCodeList.Add('vfpclassph,1,1,1,KREG_M,16B16,IMM8'); + FOpCodeList.Add('vfpclassph,1,1,1,KREG_M,ZMMREG_SAE,IMM8'); + FOpCodeList.Add('vfpclassph,1,1,1,KREG_M,MEM512,IMM8'); + FOpCodeList.Add('vfpclassph,1,1,1,KREG_M,32B16,IMM8'); + FOpCodeList.Add('vfpclasssh,1,1,1,KREG_M,XMMREG_SAE,IMM8'); + FOpCodeList.Add('vfpclasssh,1,1,1,KREG_M,MEM16,IMM8'); + FOpCodeList.Add('vgetexpph,1,1,1,XMMREG_MZ,XMMRM,,'); + FOpCodeList.Add('vgetexpph,1,1,1,XMMREG_MZ,8B16,,'); + FOpCodeList.Add('vgetexpph,1,1,1,YMMREG_MZ,YMMRM,,'); + FOpCodeList.Add('vgetexpph,1,1,1,YMMREG_MZ,16B16,,'); + FOpCodeList.Add('vgetexpph,1,1,1,ZMMREG_MZ,ZMMREG_SAE,,'); + FOpCodeList.Add('vgetexpph,1,1,1,ZMMREG_MZ,MEM512,,'); + FOpCodeList.Add('vgetexpph,1,1,1,ZMMREG_MZ,32B16,,'); + FOpCodeList.Add('vgetexpsh,1,1,1,XMMREG_MZ,XMMREG,XMMREG_SAE,'); + FOpCodeList.Add('vgetexpsh,1,1,1,XMMREG_MZ,XMMREG,MEM16,'); + FOpCodeList.Add('vgetmantph,1,1,1,XMMREG_MZ,XMMRM,IMM8,'); + FOpCodeList.Add('vgetmantph,1,1,1,XMMREG_MZ,8B16,IMM8,'); + FOpCodeList.Add('vgetmantph,1,1,1,YMMREG_MZ,YMMRM,IMM8,'); + FOpCodeList.Add('vgetmantph,1,1,1,YMMREG_MZ,16B16,IMM8,'); + FOpCodeList.Add('vgetmantph,1,1,1,ZMMREG_MZ,ZMMREG_SAE,IMM8,'); + FOpCodeList.Add('vgetmantph,1,1,1,ZMMREG_MZ,MEM512,IMM8,'); + FOpCodeList.Add('vgetmantph,1,1,1,ZMMREG_MZ,32B16,IMM8,'); + FOpCodeList.Add('vgetmantsh,1,1,1,XMMREG_MZ,XMMREG,XMMREG_SAE,IMM8'); + FOpCodeList.Add('vgetmantsh,1,1,1,XMMREG_MZ,XMMREG,MEM16,IMM8'); + FOpCodeList.Add('vmaxph,1,1,1,XMMREG_MZ,XMMREG,XMMRM,'); + FOpCodeList.Add('vmaxph,1,1,1,XMMREG_MZ,XMMREG,8B16,'); + FOpCodeList.Add('vmaxph,1,1,1,YMMREG_MZ,YMMREG,YMMRM,'); + FOpCodeList.Add('vmaxph,1,1,1,YMMREG_MZ,YMMREG,16B16,'); + FOpCodeList.Add('vmaxph,1,1,1,ZMMREG_MZ,ZMMREG,ZMMREG_SAE,'); + FOpCodeList.Add('vmaxph,1,1,1,ZMMREG_MZ,ZMMREG,MEM512,'); + FOpCodeList.Add('vmaxph,1,1,1,ZMMREG_MZ,ZMMREG,32B16,'); + FOpCodeList.Add('vmaxsh,1,1,1,XMMREG_MZ,XMMREG,XMMREG_SAE,'); + FOpCodeList.Add('vmaxsh,1,1,1,XMMREG_MZ,XMMREG,MEM16,'); + FOpCodeList.Add('vminph,1,1,1,XMMREG_MZ,XMMREG,XMMRM,'); + FOpCodeList.Add('vminph,1,1,1,XMMREG_MZ,XMMREG,8B16,'); + FOpCodeList.Add('vminph,1,1,1,YMMREG_MZ,YMMREG,YMMRM,'); + FOpCodeList.Add('vminph,1,1,1,YMMREG_MZ,YMMREG,16B16,'); + FOpCodeList.Add('vminph,1,1,1,ZMMREG_MZ,ZMMREG,ZMMREG_SAE,'); + FOpCodeList.Add('vminph,1,1,1,ZMMREG_MZ,ZMMREG,MEM512,'); + FOpCodeList.Add('vminph,1,1,1,ZMMREG_MZ,ZMMREG,32B16,'); + FOpCodeList.Add('vminsh,1,1,1,XMMREG_MZ,XMMREG,XMMREG_SAE,'); + FOpCodeList.Add('vminsh,1,1,1,XMMREG_MZ,XMMREG,MEM16,'); + FOpCodeList.Add('vmulph,1,1,1,XMMREG_MZ,XMMREG,XMMRM,'); + FOpCodeList.Add('vmulph,1,1,1,XMMREG_MZ,XMMREG,8B16,'); + FOpCodeList.Add('vmulph,1,1,1,YMMREG_MZ,YMMREG,YMMRM,'); + FOpCodeList.Add('vmulph,1,1,1,YMMREG_MZ,YMMREG,16B16,'); + FOpCodeList.Add('vmulph,1,1,1,ZMMREG_MZ,ZMMREG,ZMMREG_ER,'); + FOpCodeList.Add('vmulph,1,1,1,ZMMREG_MZ,ZMMREG,MEM512,'); + FOpCodeList.Add('vmulph,1,1,1,ZMMREG_MZ,ZMMREG,32B16,'); + FOpCodeList.Add('vmulsh,1,1,1,XMMREG_MZ,XMMREG,XMMREG_ER,'); + FOpCodeList.Add('vmulsh,1,1,1,XMMREG_MZ,XMMREG,MEM16,'); + FOpCodeList.Add('vrcpph,1,1,1,XMMREG_MZ,XMMRM,,'); + FOpCodeList.Add('vrcpph,1,1,1,XMMREG_MZ,8B16,,'); + FOpCodeList.Add('vrcpph,1,1,1,YMMREG_MZ,YMMRM,,'); + FOpCodeList.Add('vrcpph,1,1,1,YMMREG_MZ,16B16,,'); + FOpCodeList.Add('vrcpph,1,1,1,ZMMREG_MZ,ZMMRM,,'); + FOpCodeList.Add('vrcpph,1,1,1,ZMMREG_MZ,32B16,,'); + FOpCodeList.Add('vrcpsh,1,1,1,XMMREG_MZ,XMMREG,XMMREG,'); + FOpCodeList.Add('vrcpsh,1,1,1,XMMREG_MZ,XMMREG,MEM16,'); + FOpCodeList.Add('vreduceph,1,1,1,XMMREG_MZ,XMMRM,IMM8,'); + FOpCodeList.Add('vreduceph,1,1,1,XMMREG_MZ,8B16,IMM8,'); + FOpCodeList.Add('vreduceph,1,1,1,YMMREG_MZ,YMMRM,IMM8,'); + FOpCodeList.Add('vreduceph,1,1,1,YMMREG_MZ,16B16,IMM8,'); + FOpCodeList.Add('vreduceph,1,1,1,ZMMREG_MZ,ZMMREG_SAE,IMM8,'); + FOpCodeList.Add('vreduceph,1,1,1,ZMMREG_MZ,MEM512,IMM8,'); + FOpCodeList.Add('vreduceph,1,1,1,ZMMREG_MZ,32B16,IMM8,'); + FOpCodeList.Add('vreducesh,1,1,1,XMMREG_MZ,XMMREG,XMMREG_SAE,IMM8'); + FOpCodeList.Add('vreducesh,1,1,1,XMMREG_MZ,XMMREG,MEM16,IMM8'); + FOpCodeList.Add('vrndscaleph,1,1,1,XMMREG_MZ,XMMRM,IMM8,'); + FOpCodeList.Add('vrndscaleph,1,1,1,XMMREG_MZ,8B16,IMM8,'); + FOpCodeList.Add('vrndscaleph,1,1,1,YMMREG_MZ,YMMRM,IMM8,'); + FOpCodeList.Add('vrndscaleph,1,1,1,YMMREG_MZ,16B16,IMM8,'); + FOpCodeList.Add('vrndscaleph,1,1,1,ZMMREG_MZ,ZMMREG_SAE,IMM8,'); + FOpCodeList.Add('vrndscaleph,1,1,1,ZMMREG_MZ,MEM512,IMM8,'); + FOpCodeList.Add('vrndscaleph,1,1,1,ZMMREG_MZ,32B16,IMM8,'); + FOpCodeList.Add('vrndscalesh,1,1,1,XMMREG_MZ,XMMREG,XMMREG_SAE,IMM8'); + FOpCodeList.Add('vrndscalesh,1,1,1,XMMREG_MZ,XMMREG,MEM16,IMM8'); + FOpCodeList.Add('vrsqrtph,1,1,1,XMMREG_MZ,XMMRM,,'); + FOpCodeList.Add('vrsqrtph,1,1,1,XMMREG_MZ,8B16,,'); + FOpCodeList.Add('vrsqrtph,1,1,1,YMMREG_MZ,YMMRM,,'); + FOpCodeList.Add('vrsqrtph,1,1,1,YMMREG_MZ,16B16,,'); + FOpCodeList.Add('vrsqrtph,1,1,1,ZMMREG_MZ,ZMMRM,,'); + FOpCodeList.Add('vrsqrtph,1,1,1,ZMMREG_MZ,32B16,,'); + FOpCodeList.Add('vrsqrtsh,1,1,1,XMMREG_MZ,XMMREG,XMMREG,'); + FOpCodeList.Add('vrsqrtsh,1,1,1,XMMREG_MZ,XMMREG,MEM16,'); + FOpCodeList.Add('vscalefph,1,1,1,XMMREG_MZ,XMMREG,XMMRM,'); + FOpCodeList.Add('vscalefph,1,1,1,XMMREG_MZ,XMMREG,8B16,'); + FOpCodeList.Add('vscalefph,1,1,1,YMMREG_MZ,YMMREG,YMMRM,'); + FOpCodeList.Add('vscalefph,1,1,1,YMMREG_MZ,YMMREG,16B16,'); + FOpCodeList.Add('vscalefph,1,1,1,ZMMREG_MZ,ZMMREG,ZMMREG_ER,'); + FOpCodeList.Add('vscalefph,1,1,1,ZMMREG_MZ,ZMMREG,MEM512,'); + FOpCodeList.Add('vscalefph,1,1,1,ZMMREG_MZ,ZMMREG,32B16,'); + FOpCodeList.Add('vscalefsh,1,1,1,XMMREG_MZ,XMMREG,XMMREG_ER,'); + FOpCodeList.Add('vscalefsh,1,1,1,XMMREG_MZ,XMMREG,MEM16,'); + FOpCodeList.Add('vsqrtph,1,1,1,XMMREG_MZ,XMMRM,,'); + FOpCodeList.Add('vsqrtph,1,1,1,XMMREG_MZ,8B16,,'); + FOpCodeList.Add('vsqrtph,1,1,1,YMMREG_MZ,YMMRM,,'); + FOpCodeList.Add('vsqrtph,1,1,1,YMMREG_MZ,16B16,,'); + FOpCodeList.Add('vsqrtph,1,1,1,ZMMREG_MZ,ZMMREG_ER,,'); + FOpCodeList.Add('vsqrtph,1,1,1,ZMMREG_MZ,MEM512,,'); + FOpCodeList.Add('vsqrtph,1,1,1,ZMMREG_MZ,32B16,,'); + FOpCodeList.Add('vsqrtsh,1,1,1,XMMREG_MZ,XMMREG,XMMREG_ER,'); + FOpCodeList.Add('vsqrtsh,1,1,1,XMMREG_MZ,XMMREG,MEM16,'); + FOpCodeList.Add('vsubph,1,1,1,XMMREG_MZ,XMMREG,XMMRM,'); + FOpCodeList.Add('vsubph,1,1,1,XMMREG_MZ,XMMREG,8B16,'); + FOpCodeList.Add('vsubph,1,1,1,YMMREG_MZ,YMMREG,YMMRM,'); + FOpCodeList.Add('vsubph,1,1,1,YMMREG_MZ,YMMREG,16B16,'); + FOpCodeList.Add('vsubph,1,1,1,ZMMREG_MZ,ZMMREG,ZMMREG_ER,'); + FOpCodeList.Add('vsubph,1,1,1,ZMMREG_MZ,ZMMREG,MEM512,'); + FOpCodeList.Add('vsubph,1,1,1,ZMMREG_MZ,ZMMREG,32B16,'); + FOpCodeList.Add('vsubsh,1,1,1,XMMREG_MZ,XMMREG,XMMREG_ER,'); + FOpCodeList.Add('vsubsh,1,1,1,XMMREG_MZ,XMMREG,MEM16,'); + FOpCodeList.Add('vucomish,1,1,1,XMMREG,XMMREG_SAE,,'); + FOpCodeList.Add('vucomish,1,1,1,XMMREG,MEM16,,'); +{$endif} +{$if defined(TEST_BF16) or defined(TEST_ALL)} + { BF16 opcodes } + FOpCodeList.Add('VCVTNE2PS2BF16,1,1,1,XMMREG_MZ,XMMREG,XMMRM'); + FOpCodeList.Add('VCVTNE2PS2BF16,1,1,1,XMMREG,XMMREG,4B32'); + FOpCodeList.Add('VCVTNE2PS2BF16,1,1,1,YMMREG_MZ,YMMREG,YMMRM'); + FOpCodeList.Add('VCVTNE2PS2BF16,1,1,1,YMMREG,YMMREG,8B32'); + FOpCodeList.Add('VCVTNE2PS2BF16,1,1,1,ZMMREG_MZ,ZMMREG,ZMMRM'); + FOpCodeList.Add('VCVTNE2PS2BF16,1,1,1,ZMMREG,ZMMREG,16B32'); + FOpCodeList.Add('VCVTNEPS2BF16,1,1,1,XMMREG_MZ,XMMREG'); + FOpCodeList.Add('VCVTNEPS2BF16,1,1,1,XMMREG_MZ,MEM128'); + FOpCodeList.Add('VCVTNEPS2BF16,1,1,1,XMMREG,4B32'); + FOpCodeList.Add('VCVTNEPS2BF16,1,1,1,XMMREG_MZ,YMMREG'); + FOpCodeList.Add('VCVTNEPS2BF16,1,1,1,XMMREG_MZ,MEM256'); + FOpCodeList.Add('VCVTNEPS2BF16,1,1,1,XMMREG,8B32'); + FOpCodeList.Add('VCVTNEPS2BF16,1,1,1,YMMREG_MZ,ZMMREG'); + FOpCodeList.Add('VCVTNEPS2BF16,1,1,1,YMMREG_MZ,MEM512'); + FOpCodeList.Add('VCVTNEPS2BF16,1,1,1,YMMREG,16B32'); + FOpCodeList.Add('VDPBF16PS,1,1,1,XMMREG_MZ,XMMREG,XMMRM'); + FOpCodeList.Add('VDPBF16PS,1,1,1,XMMREG,XMMREG,4B32'); + FOpCodeList.Add('VDPBF16PS,1,1,1,YMMREG_MZ,YMMREG,YMMRM'); + FOpCodeList.Add('VDPBF16PS,1,1,1,YMMREG,YMMREG,8B32'); //-- ok, but Nasm 2.17rc fail this + FOpCodeList.Add('VDPBF16PS,1,1,1,ZMMREG_MZ,ZMMREG,ZMMRM'); + FOpCodeList.Add('VDPBF16PS,1,1,1,ZMMREG,ZMMREG,16B32'); //-- ok, but Nasm 2.17rc fail this {$endif} {$if defined(TEST_VP2INTERSECT) or defined(TEST_ALL)} { VP2INTERSECT opcodes } FOpCodeList.Add('VP2INTERSECTD,1,1,1,KREG,XMMREG,XMMRM'); - //FOpCodeList.Add('VP2INTERSECTD,1,1,1,KREG,XMMREG,4B32'); + FOpCodeList.Add('VP2INTERSECTD,1,1,1,KREG,XMMREG,4B32'); FOpCodeList.Add('VP2INTERSECTD,1,1,1,KREG,YMMREG,YMMRM'); - //FOpCodeList.Add('VP2INTERSECTD,1,1,1,KREG,YMMREG,8B32'); //-- Nasm 2.17rc expets 4B32, but that's an error!!! + FOpCodeList.Add('VP2INTERSECTD,1,1,1,KREG,YMMREG,8B32'); //-- ok, but Nasm 2.17rc fail this FOpCodeList.Add('VP2INTERSECTD,1,1,1,KREG,ZMMREG,ZMMRM'); - //FOpCodeList.Add('VP2INTERSECTD,1,1,1,KREG,ZMMREG,16B32'); //-- Nasm 2.17rc expets 4B32, but that's an error!!! + FOpCodeList.Add('VP2INTERSECTD,1,1,1,KREG,ZMMREG,16B32'); //-- ok, but Nasm 2.17rc fail this - { not implemented in Nasm 2.17rc - FOpCodeList.Add('VP2INTERSECTQ,1,1,1,KREG,XMMREG,XMMRM'); + FOpCodeList.Add('VP2INTERSECTQ,1,1,1,KREG,XMMREG,XMMRM'); { VP2INTERSECTQ not implemented in Nasm 2.17rc } FOpCodeList.Add('VP2INTERSECTQ,1,1,1,KREG,XMMREG,2B64'); FOpCodeList.Add('VP2INTERSECTQ,1,1,1,KREG,YMMREG,YMMRM'); FOpCodeList.Add('VP2INTERSECTQ,1,1,1,KREG,YMMREG,4B64'); FOpCodeList.Add('VP2INTERSECTQ,1,1,1,KREG,ZMMREG,ZMMRM'); FOpCodeList.Add('VP2INTERSECTQ,1,1,1,KREG,ZMMREG,8B64'); - } {$endif} {$if defined(TEST_SM) or defined(TEST_ALL)} { SM3 opcodes } - FOpCodeList.Add('VSM3RNDS2,1,1,0,XMMREG,XMMREG,XMMREG,IMM8'); //-- in Nasm 2.17rc implemented only XMMREG, we have XMMRM (manualy tested) - FOpCodeList.Add('VSM3MSG1,1,1,0,XMMREG,XMMREG,XMMREG'); //-- in Nasm 2.17rc implemented only XMMREG - FOpCodeList.Add('VSM3MSG2,1,1,0,XMMREG,XMMREG,XMMREG'); //-- in Nasm 2.17rc implemented only XMMREG + FOpCodeList.Add('VSM3RNDS2,1,1,0,XMMREG,XMMREG,XMMRM,IMM8'); //-- in Nasm 2.17rc implemented only XMMREG + FOpCodeList.Add('VSM3MSG1,1,1,0,XMMREG,XMMREG,XMMRM'); //-- in Nasm 2.17rc implemented only XMMREG + FOpCodeList.Add('VSM3MSG2,1,1,0,XMMREG,XMMREG,XMMRM'); //-- in Nasm 2.17rc implemented only XMMREG { SM4 opcodes } - FOpCodeList.Add('VSM4KEY4,1,1,1,XMMREG,XMMREG,XMMRM'); - FOpCodeList.Add('VSM4KEY4,1,1,1,YMMREG,YMMREG,YMMRM'); - //FOpCodeList.Add('VSM4KEY4,1,1,1,ZMMREG,ZMMREG,ZMMRM'); //-- not implemented in Nasm 2.17rc - FOpCodeList.Add('VSM4RNDS4,1,1,1,XMMREG,XMMREG,XMMRM'); - FOpCodeList.Add('VSM4RNDS4,1,1,1,YMMREG,YMMREG,YMMRM'); - //FOpCodeList.Add('VSM4RNDS4,1,1,1,ZMMREG,ZMMREG,ZMMRM'); //-- not implemented in Nasm 2.17rc -{$endif} -{$if defined(TEST_BF16) or defined(TEST_ALL)} - { BF16 opcodes } + FOpCodeList.Add('VSM4KEY4,1,1,1,XMMREG,XMMREG,XMMRM'); //-- not implemented EVEX encoding in Nasm 2.17rc (only VEX) + FOpCodeList.Add('VSM4KEY4,1,1,1,YMMREG,YMMREG,YMMRM'); //-- not implemented EVEX encoding in Nasm 2.17rc (only VEX) + FOpCodeList.Add('VSM4KEY4,1,1,1,ZMMREG,ZMMREG,ZMMRM'); //-- not implemented in Nasm 2.17rc + FOpCodeList.Add('VSM4RNDS4,1,1,1,XMMREG,XMMREG,XMMRM'); //-- not implemented EVEX encoding in Nasm 2.17rc (only VEX) + FOpCodeList.Add('VSM4RNDS4,1,1,1,YMMREG,YMMREG,YMMRM'); //-- not implemented EVEX encoding in Nasm 2.17rc (only VEX) + FOpCodeList.Add('VSM4RNDS4,1,1,1,ZMMREG,ZMMREG,ZMMRM'); //-- not implemented in Nasm 2.17rc {$endif} {$if defined(TEST_GFNI) or defined(TEST_ALL)} { GFNI opcodes } @@ -143,14 +1007,12 @@ begin FOpCodeList.Add('VGF2P8MULB,1,1,1,ZMMREG,ZMMREG,ZMMRM'); FOpCodeList.Add('VGF2P8MULB,1,1,1,ZMMREG_MZ,ZMMREG,ZMMRM'); {$endif} - {$if defined(TEST_SHA512) or defined(TEST_ALL)} { SHA512 opcodes } FOpCodeList.Add('VSHA512RNDS2,1,1,0,YMMREG,YMMREG,XMMREG'); FOpCodeList.Add('VSHA512MSG1,1,1,0,YMMREG,XMMREG'); FOpCodeList.Add('VSHA512MSG2,1,1,0,YMMREG,YMMREG'); {$endif} - {$if defined(TEST_SHA) or defined(TEST_ALL)} { SHA opcodes } FOpCodeList.Add('SHA1RNDS4,1,1,0,XMMREG,XMMRM,IMM8,'); @@ -167,14 +1029,14 @@ begin FOpCodeList.Add('XGETBV,1,1,0,,,,,'); FOpCodeList.Add('XSETBV,1,1,0,,,,,'); FOpCodeList.Add('XSAVE,1,1,0,MEM64,,,,'); - FOpCodeList.Add('XSAVE64,1,1,0,MEM64,,,,'); + FOpCodeList.Add('XSAVE64,0,1,0,MEM64,,,,'); FOpCodeList.Add('XRSTOR,1,1,0,MEM64,,,,'); - FOpCodeList.Add('XRSTOR64,1,1,0,MEM64,,,,'); + FOpCodeList.Add('XRSTOR64,0,1,0,MEM64,,,,'); FOpCodeList.Add('XSAVEOPT,1,1,0,MEM64,,,,'); - FOpCodeList.Add('XSAVEOPT64,1,1,0,MEM64,,,,'); + FOpCodeList.Add('XSAVEOPT64,0,1,0,MEM64,,,,'); {$endif defined(TEST_XSAVE) or defined(TEST_ALL)} -{$ifdef TEST_ALL} +{$if defined(TEST_AVX) or defined(TEST_ALL)} FOpCodeList.Add('ADDSS,1,1,0,XMMREG,XMMREG,,,'); FOpCodeList.Add('ADDSS,1,1,0,XMMREG,MEM32,,,'); @@ -201,13 +1063,13 @@ begin FOpCodeList.Add('COMISS,1,1,0,XMMREG,MEM32,,,'); FOpCodeList.Add('cvtsd2si,1,1,0,REG32,MEM64,,'); - FOpCodeList.Add('cvtsd2si,1,1,0,REG32,XMMREG_ER,,'); + FOpCodeList.Add('cvtsd2si,1,1,0,REG32,XMMREG,,'); FOpCodeList.Add('cvtsd2si,1,1,0,REG64,MEM64,,'); - FOpCodeList.Add('cvtsd2si,1,1,0,REG64,XMMREG_ER,,'); + FOpCodeList.Add('cvtsd2si,1,1,0,REG64,XMMREG,,'); FOpCodeList.Add('cvtss2si,1,1,0,REG32,MEM32,,'); - FOpCodeList.Add('cvtss2si,1,1,0,REG32,XMMREG_ER,,'); + FOpCodeList.Add('cvtss2si,1,1,0,REG32,XMMREG,,'); FOpCodeList.Add('cvtss2si,1,1,0,REG64,MEM32,,'); - FOpCodeList.Add('cvtss2si,1,1,0,REG64,XMMREG_ER,,'); + FOpCodeList.Add('cvtss2si,1,1,0,REG64,XMMREG,,'); FOpCodeList.Add('cvttsd2si,1,1,0,REG32,MEM64,,'); FOpCodeList.Add('cvttsd2si,1,1,0,REG32,XMMREG_SAE,,'); FOpCodeList.Add('cvttsd2si,1,1,0,REG64,MEM64,,'); @@ -626,6 +1488,8 @@ begin FOpCodeList.Add('vcvtsi2sd,0,1,1,XMMREG,XMMREG,MEM64,'); FOpCodeList.Add('vcvtsi2ss,1,1,1,XMMREG,XMMREG,REG32,'); FOpCodeList.Add('vcvtsi2ss,0,1,1,XMMREG,XMMREG_ER,REG64,'); + FOpCodeList.Add('vcvtsi2ss,1,1,1,XMMREG,XMMREG,MEM32,'); + FOpCodeList.Add('vcvtsi2ss,0,1,1,XMMREG,XMMREG,MEM64,'); FOpCodeList.Add('vcvtss2sd,1,1,1,XMMREG_MZ,XMMREG,MEM32,'); FOpCodeList.Add('vcvtss2sd,1,1,1,XMMREG_MZ,XMMREG,XMMREG_SAE,'); FOpCodeList.Add('vcvtss2si,1,1,1,REG32,MEM32,,'); @@ -1042,7 +1906,7 @@ begin FOpCodeList.Add('vpextrb,1,1,1,REG32,XMMREG,IMM8,'); FOpCodeList.Add('vpextrb,1,1,1,REG64,XMMREG,IMM8,'); FOpCodeList.Add('vpextrd,1,1,1,RM32,XMMREG,IMM8,'); - FOpCodeList.Add('vpextrq,1,1,1,RM64,XMMREG,IMM8,'); + FOpCodeList.Add('vpextrq,0,1,1,RM64,XMMREG,IMM8,'); FOpCodeList.Add('vpextrw,1,1,1,MEM16,XMMREG,IMM8,'); //FOpCodeList.Add('vpextrw,1,1,1,REG16,XMMREG,IMM8,'); FOpCodeList.Add('vpextrw,1,1,1,REG32,XMMREG,IMM8,'); @@ -2046,14 +2910,14 @@ begin FOpCodeList.Add('vcvtuqq2ps,1,1,1,ymmreg_mz,mem512,,'); FOpCodeList.Add('vcvtuqq2ps,1,1,1,ymmreg_mz,8b64,,'); FOpCodeList.Add('vcvtuqq2ps,1,1,1,ymmreg_mz,zmmreg_er,,'); - FOpCodeList.Add('vcvtusi2sd,1,1,1,xmmreg,xmmreg_er,reg32,'); - FOpCodeList.Add('vcvtusi2sd,1,1,1,xmmreg,xmmreg_er,mem32,'); + FOpCodeList.Add('vcvtusi2sd,1,1,1,xmmreg,xmmreg,reg32,'); + FOpCodeList.Add('vcvtusi2sd,1,1,1,xmmreg,xmmreg,mem32,'); FOpCodeList.Add('vcvtusi2sd,0,1,1,xmmreg,xmmreg_er,reg64,'); - FOpCodeList.Add('vcvtusi2sd,0,1,1,xmmreg,xmmreg_er,mem64,'); + FOpCodeList.Add('vcvtusi2sd,0,1,1,xmmreg,xmmreg,mem64,'); FOpCodeList.Add('vcvtusi2ss,1,1,1,xmmreg,xmmreg_er,reg32,'); - FOpCodeList.Add('vcvtusi2ss,1,1,1,xmmreg,xmmreg_er,mem32,'); + FOpCodeList.Add('vcvtusi2ss,1,1,1,xmmreg,xmmreg,mem32,'); FOpCodeList.Add('vcvtusi2ss,0,1,1,xmmreg,xmmreg_er,reg64,'); - FOpCodeList.Add('vcvtusi2ss,0,1,1,xmmreg,xmmreg_er,mem64,'); + FOpCodeList.Add('vcvtusi2ss,0,1,1,xmmreg,xmmreg,mem64,'); FOpCodeList.Add('vdbpsadbw,1,1,1,xmmreg_mz,xmmreg,xmmrm,imm8'); FOpCodeList.Add('vdbpsadbw,1,1,1,ymmreg_mz,ymmreg,ymmrm,imm8'); FOpCodeList.Add('vdbpsadbw,1,1,1,zmmreg_mz,zmmreg,zmmrm,imm8'); @@ -2477,58 +3341,58 @@ begin FOpCodeList.Add('vinserti64x4,1,1,1,zmmreg_mz,zmmreg,ymmrm,imm8'); FOpCodeList.Add('vmovdqa32,1,1,1,xmmreg_mz,xmmrm,,'); FOpCodeList.Add('vmovdqa32,1,1,1,xmmreg_mz,xmmreg,,'); - FOpCodeList.Add('vmovdqa32,1,1,1,mem128_mz,xmmreg,,'); + FOpCodeList.Add('vmovdqa32,1,1,1,mem128_m,xmmreg,,'); FOpCodeList.Add('vmovdqa32,1,1,1,ymmreg_mz,ymmrm,,'); FOpCodeList.Add('vmovdqa32,1,1,1,ymmreg_mz,ymmreg,,'); - FOpCodeList.Add('vmovdqa32,1,1,1,mem256_mz,ymmreg,,'); + FOpCodeList.Add('vmovdqa32,1,1,1,mem256_m,ymmreg,,'); FOpCodeList.Add('vmovdqa32,1,1,1,zmmreg_mz,zmmrm,,'); FOpCodeList.Add('vmovdqa32,1,1,1,zmmreg_mz,zmmreg,,'); - FOpCodeList.Add('vmovdqa32,1,1,1,mem512_mz,zmmreg,,'); + FOpCodeList.Add('vmovdqa32,1,1,1,mem512_m,zmmreg,,'); FOpCodeList.Add('vmovdqa64,1,1,1,xmmreg_mz,xmmrm,,'); FOpCodeList.Add('vmovdqa64,1,1,1,xmmreg_mz,xmmreg,,'); - FOpCodeList.Add('vmovdqa64,1,1,1,mem128_mz,xmmreg,,'); + FOpCodeList.Add('vmovdqa64,1,1,1,mem128_m,xmmreg,,'); FOpCodeList.Add('vmovdqa64,1,1,1,ymmreg_mz,ymmrm,,'); FOpCodeList.Add('vmovdqa64,1,1,1,ymmreg_mz,ymmreg,,'); - FOpCodeList.Add('vmovdqa64,1,1,1,mem256_mz,ymmreg,,'); + FOpCodeList.Add('vmovdqa64,1,1,1,mem256_m,ymmreg,,'); FOpCodeList.Add('vmovdqa64,1,1,1,zmmreg_mz,zmmrm,,'); FOpCodeList.Add('vmovdqa64,1,1,1,zmmreg_mz,zmmreg,,'); - FOpCodeList.Add('vmovdqa64,1,1,1,mem512_mz,zmmreg,,'); + FOpCodeList.Add('vmovdqa64,1,1,1,mem512_m,zmmreg,,'); FOpCodeList.Add('vmovdqu16,1,1,1,xmmreg_mz,xmmrm,,'); FOpCodeList.Add('vmovdqu16,1,1,1,xmmreg_mz,xmmreg,,'); - FOpCodeList.Add('vmovdqu16,1,1,1,mem128_mz,xmmreg,,'); + FOpCodeList.Add('vmovdqu16,1,1,1,mem128_m,xmmreg,,'); FOpCodeList.Add('vmovdqu16,1,1,1,ymmreg_mz,ymmrm,,'); FOpCodeList.Add('vmovdqu16,1,1,1,ymmreg_mz,ymmreg,,'); - FOpCodeList.Add('vmovdqu16,1,1,1,mem256_mz,ymmreg,,'); + FOpCodeList.Add('vmovdqu16,1,1,1,mem256_m,ymmreg,,'); FOpCodeList.Add('vmovdqu16,1,1,1,zmmreg_mz,zmmrm,,'); FOpCodeList.Add('vmovdqu16,1,1,1,zmmreg_mz,zmmreg,,'); - FOpCodeList.Add('vmovdqu16,1,1,1,mem512_mz,zmmreg,,'); + FOpCodeList.Add('vmovdqu16,1,1,1,mem512_m,zmmreg,,'); FOpCodeList.Add('vmovdqu32,1,1,1,xmmreg_mz,xmmrm,,'); FOpCodeList.Add('vmovdqu32,1,1,1,xmmreg_mz,xmmreg,,'); - FOpCodeList.Add('vmovdqu32,1,1,1,mem128_mz,xmmreg,,'); + FOpCodeList.Add('vmovdqu32,1,1,1,mem128_m,xmmreg,,'); FOpCodeList.Add('vmovdqu32,1,1,1,ymmreg_mz,ymmrm,,'); FOpCodeList.Add('vmovdqu32,1,1,1,ymmreg_mz,ymmreg,,'); - FOpCodeList.Add('vmovdqu32,1,1,1,mem256_mz,ymmreg,,'); + FOpCodeList.Add('vmovdqu32,1,1,1,mem256_m,ymmreg,,'); FOpCodeList.Add('vmovdqu32,1,1,1,zmmreg_mz,zmmrm,,'); FOpCodeList.Add('vmovdqu32,1,1,1,zmmreg_mz,zmmreg,,'); - FOpCodeList.Add('vmovdqu32,1,1,1,mem512_mz,zmmreg,,'); + FOpCodeList.Add('vmovdqu32,1,1,1,mem512_m,zmmreg,,'); FOpCodeList.Add('vmovdqu64,1,1,1,xmmreg_mz,xmmrm,,'); FOpCodeList.Add('vmovdqu64,1,1,1,xmmreg_mz,xmmreg,,'); - FOpCodeList.Add('vmovdqu64,1,1,1,mem128_mz,xmmreg,,'); + FOpCodeList.Add('vmovdqu64,1,1,1,mem128_m,xmmreg,,'); FOpCodeList.Add('vmovdqu64,1,1,1,ymmreg_mz,ymmrm,,'); FOpCodeList.Add('vmovdqu64,1,1,1,ymmreg_mz,ymmreg,,'); - FOpCodeList.Add('vmovdqu64,1,1,1,mem256_mz,ymmreg,,'); + FOpCodeList.Add('vmovdqu64,1,1,1,mem256_m,ymmreg,,'); FOpCodeList.Add('vmovdqu64,1,1,1,zmmreg_mz,zmmrm,,'); FOpCodeList.Add('vmovdqu64,1,1,1,zmmreg_mz,zmmreg,,'); - FOpCodeList.Add('vmovdqu64,1,1,1,mem512_mz,zmmreg,,'); + FOpCodeList.Add('vmovdqu64,1,1,1,mem512_m,zmmreg,,'); FOpCodeList.Add('vmovdqu8,1,1,1,xmmreg_mz,xmmrm,,'); FOpCodeList.Add('vmovdqu8,1,1,1,xmmreg_mz,xmmreg,,'); - FOpCodeList.Add('vmovdqu8,1,1,1,mem128_mz,xmmreg,,'); + FOpCodeList.Add('vmovdqu8,1,1,1,mem128_m,xmmreg,,'); FOpCodeList.Add('vmovdqu8,1,1,1,ymmreg_mz,ymmrm,,'); FOpCodeList.Add('vmovdqu8,1,1,1,ymmreg_mz,ymmreg,,'); - FOpCodeList.Add('vmovdqu8,1,1,1,mem256_mz,ymmreg,,'); + FOpCodeList.Add('vmovdqu8,1,1,1,mem256_m,ymmreg,,'); FOpCodeList.Add('vmovdqu8,1,1,1,zmmreg_mz,zmmrm,,'); FOpCodeList.Add('vmovdqu8,1,1,1,zmmreg_mz,zmmreg,,'); - FOpCodeList.Add('vmovdqu8,1,1,1,mem512_mz,zmmreg,,'); + FOpCodeList.Add('vmovdqu8,1,1,1,mem512_m,zmmreg,,'); FOpCodeList.Add('vpabsq,1,1,1,xmmreg_mz,xmmrm,,'); FOpCodeList.Add('vpabsq,1,1,1,xmmreg_mz,2b64,,'); FOpCodeList.Add('vpabsq,1,1,1,ymmreg_mz,ymmrm,,');