working on new testmethods and bug-fixing size of (memref-operands | global and local variable

git-svn-id: branches/tg74/avx512-0037785@47678 -
This commit is contained in:
tg74 2020-12-03 16:24:00 +00:00
parent 06b229e1c3
commit 28fdba2c08
11 changed files with 105 additions and 302 deletions

View File

@ -1,2 +1,2 @@
{ don't edit, this file is generated from x86ins.dat }
4168;
4158;

View File

@ -10531,7 +10531,7 @@
(
opcode : A_VCVTPD2DQ;
ops : 2;
optypes : (ot_ymmreg_mz,ot_memory or ot_bits512,ot_none,ot_none);
optypes : (ot_ymmreg_mz,ot_zmmrm_er,ot_none,ot_none);
code : #220#232#233#234#248#1#230#72;
flags : [if_avx512,if_tfv]
),
@ -10542,13 +10542,6 @@
code : #220#232#233#234#248#1#230#72;
flags : [if_avx512,if_bcst8,if_tfv]
),
(
opcode : A_VCVTPD2DQ;
ops : 2;
optypes : (ot_ymmreg_mz,ot_zmmreg_er,ot_none,ot_none);
code : #220#232#233#234#248#1#230#72;
flags : [if_avx512]
),
(
opcode : A_VCVTPD2PS;
ops : 2;
@ -10587,7 +10580,7 @@
(
opcode : A_VCVTPD2PS;
ops : 2;
optypes : (ot_ymmreg_mz,ot_memory or ot_bits512,ot_none,ot_none);
optypes : (ot_ymmreg_mz,ot_zmmrm_er,ot_none,ot_none);
code : #232#233#234#241#248#1#90#72;
flags : [if_avx512,if_tfv]
),
@ -10598,13 +10591,6 @@
code : #232#233#234#241#248#1#90#72;
flags : [if_avx512,if_bcst8,if_tfv]
),
(
opcode : A_VCVTPD2PS;
ops : 2;
optypes : (ot_ymmreg_mz,ot_zmmreg_er,ot_none,ot_none);
code : #232#233#234#241#248#1#90#72;
flags : [if_avx512]
),
(
opcode : A_VCVTPH2PS;
ops : 2;
@ -10958,7 +10944,7 @@
(
opcode : A_VCVTTPD2DQ;
ops : 2;
optypes : (ot_ymmreg_mz,ot_memory or ot_bits512,ot_none,ot_none);
optypes : (ot_ymmreg_mz,ot_zmmrm_sae,ot_none,ot_none);
code : #232#233#234#241#248#1#230#72;
flags : [if_avx512,if_tfv]
),
@ -10969,13 +10955,6 @@
code : #232#233#234#241#248#1#230#72;
flags : [if_avx512,if_bcst8,if_tfv]
),
(
opcode : A_VCVTTPD2DQ;
ops : 2;
optypes : (ot_ymmreg_mz,ot_zmmreg_sae,ot_none,ot_none);
code : #232#233#234#241#248#1#230#72;
flags : [if_avx512]
),
(
opcode : A_VCVTTPS2DQ;
ops : 2;
@ -21266,13 +21245,6 @@
code : #232#233#234#241#248#1#123#72;
flags : [if_avx512]
),
(
opcode : A_VCVTPD2UDQ;
ops : 2;
optypes : (ot_xmmreg_mz,ot_memory or ot_bits128,ot_none,ot_none);
code : #232#234#248#1#121#72;
flags : [if_avx512,if_tfv]
),
(
opcode : A_VCVTPD2UDQ;
ops : 2;
@ -21283,9 +21255,9 @@
(
opcode : A_VCVTPD2UDQ;
ops : 2;
optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
optypes : (ot_xmmreg_mz,ot_xmmrm,ot_none,ot_none);
code : #232#234#248#1#121#72;
flags : [if_avx512]
flags : [if_avx512,if_tfv]
),
(
opcode : A_VCVTPD2UDQ;
@ -21311,7 +21283,7 @@
(
opcode : A_VCVTPD2UDQ;
ops : 2;
optypes : (ot_ymmreg_mz,ot_memory or ot_bits512,ot_none,ot_none);
optypes : (ot_ymmreg_mz,ot_zmmrm,ot_none,ot_none);
code : #232#233#234#248#1#121#72;
flags : [if_avx512,if_tfv]
),
@ -21588,13 +21560,6 @@
code : #219#232#233#234#248#1#230#72;
flags : [if_avx512]
),
(
opcode : A_VCVTQQ2PS;
ops : 2;
optypes : (ot_xmmreg_mz,ot_memory or ot_bits128,ot_none,ot_none);
code : #232#234#248#1#91#72;
flags : [if_avx512,if_tfv]
),
(
opcode : A_VCVTQQ2PS;
ops : 2;
@ -21605,7 +21570,7 @@
(
opcode : A_VCVTQQ2PS;
ops : 2;
optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
optypes : (ot_xmmreg_mz,ot_xmmrm,ot_none,ot_none);
code : #232#234#248#1#91#72;
flags : [if_avx512]
),
@ -21633,7 +21598,7 @@
(
opcode : A_VCVTQQ2PS;
ops : 2;
optypes : (ot_ymmreg_mz,ot_memory or ot_bits512,ot_none,ot_none);
optypes : (ot_ymmreg_mz,ot_zmmrm_er,ot_none,ot_none);
code : #232#233#234#248#1#91#72;
flags : [if_avx512,if_tfv]
),
@ -21644,13 +21609,6 @@
code : #232#233#234#248#1#91#72;
flags : [if_avx512,if_bcst8,if_tfv]
),
(
opcode : A_VCVTQQ2PS;
ops : 2;
optypes : (ot_ymmreg_mz,ot_zmmreg_er,ot_none,ot_none);
code : #232#233#234#248#1#91#72;
flags : [if_avx512]
),
(
opcode : A_VCVTSD2USI;
ops : 2;
@ -21756,13 +21714,6 @@
code : #232#233#234#241#248#1#122#72;
flags : [if_avx512]
),
(
opcode : A_VCVTTPD2UDQ;
ops : 2;
optypes : (ot_xmmreg_mz,ot_memory or ot_bits128,ot_none,ot_none);
code : #232#234#248#1#120#72;
flags : [if_avx512,if_tfv]
),
(
opcode : A_VCVTTPD2UDQ;
ops : 2;
@ -21773,7 +21724,7 @@
(
opcode : A_VCVTTPD2UDQ;
ops : 2;
optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
optypes : (ot_xmmreg_mz,ot_xmmrm,ot_none,ot_none);
code : #232#234#248#1#120#72;
flags : [if_avx512]
),
@ -21801,7 +21752,7 @@
(
opcode : A_VCVTTPD2UDQ;
ops : 2;
optypes : (ot_ymmreg_mz,ot_memory or ot_bits512,ot_none,ot_none);
optypes : (ot_ymmreg_mz,ot_zmmrm_sae,ot_none,ot_none);
code : #232#233#234#248#1#120#72;
flags : [if_avx512,if_tfv]
),
@ -21812,13 +21763,6 @@
code : #232#233#234#248#1#120#72;
flags : [if_avx512,if_bcst8,if_tfv]
),
(
opcode : A_VCVTTPD2UDQ;
ops : 2;
optypes : (ot_ymmreg_mz,ot_zmmreg_sae,ot_none,ot_none);
code : #232#233#234#248#1#120#72;
flags : [if_avx512]
),
(
opcode : A_VCVTTPD2UQQ;
ops : 2;
@ -22239,13 +22183,6 @@
code : #219#232#233#234#248#1#122#72;
flags : [if_avx512]
),
(
opcode : A_VCVTUQQ2PS;
ops : 2;
optypes : (ot_xmmreg_mz,ot_memory or ot_bits128,ot_none,ot_none);
code : #220#232#234#248#1#122#72;
flags : [if_avx512,if_tfv]
),
(
opcode : A_VCVTUQQ2PS;
ops : 2;
@ -22256,9 +22193,9 @@
(
opcode : A_VCVTUQQ2PS;
ops : 2;
optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
optypes : (ot_xmmreg_mz,ot_xmmrm,ot_none,ot_none);
code : #220#232#234#248#1#122#72;
flags : [if_avx512]
flags : [if_avx512,if_tfv]
),
(
opcode : A_VCVTUQQ2PS;
@ -22284,7 +22221,7 @@
(
opcode : A_VCVTUQQ2PS;
ops : 2;
optypes : (ot_ymmreg_mz,ot_memory or ot_bits512,ot_none,ot_none);
optypes : (ot_ymmreg_mz,ot_zmmrm_er,ot_none,ot_none);
code : #220#232#233#234#248#1#122#72;
flags : [if_avx512,if_tfv]
),
@ -22295,13 +22232,6 @@
code : #220#232#233#234#248#1#122#72;
flags : [if_avx512,if_bcst8,if_tfv]
),
(
opcode : A_VCVTUQQ2PS;
ops : 2;
optypes : (ot_ymmreg_mz,ot_zmmreg_er,ot_none,ot_none);
code : #220#232#233#234#248#1#122#72;
flags : [if_avx512]
),
(
opcode : A_VCVTUSI2SD;
ops : 3;

View File

@ -1,2 +1,2 @@
{ don't edit, this file is generated from x86ins.dat }
4200;
4190;

View File

@ -10559,7 +10559,7 @@
(
opcode : A_VCVTPD2DQ;
ops : 2;
optypes : (ot_ymmreg_mz,ot_memory or ot_bits512,ot_none,ot_none);
optypes : (ot_ymmreg_mz,ot_zmmrm_er,ot_none,ot_none);
code : #220#232#233#234#248#1#230#72;
flags : [if_avx512,if_tfv]
),
@ -10570,13 +10570,6 @@
code : #220#232#233#234#248#1#230#72;
flags : [if_avx512,if_bcst8,if_tfv]
),
(
opcode : A_VCVTPD2DQ;
ops : 2;
optypes : (ot_ymmreg_mz,ot_zmmreg_er,ot_none,ot_none);
code : #220#232#233#234#248#1#230#72;
flags : [if_avx512]
),
(
opcode : A_VCVTPD2PS;
ops : 2;
@ -10615,7 +10608,7 @@
(
opcode : A_VCVTPD2PS;
ops : 2;
optypes : (ot_ymmreg_mz,ot_memory or ot_bits512,ot_none,ot_none);
optypes : (ot_ymmreg_mz,ot_zmmrm_er,ot_none,ot_none);
code : #232#233#234#241#248#1#90#72;
flags : [if_avx512,if_tfv]
),
@ -10626,13 +10619,6 @@
code : #232#233#234#241#248#1#90#72;
flags : [if_avx512,if_bcst8,if_tfv]
),
(
opcode : A_VCVTPD2PS;
ops : 2;
optypes : (ot_ymmreg_mz,ot_zmmreg_er,ot_none,ot_none);
code : #232#233#234#241#248#1#90#72;
flags : [if_avx512]
),
(
opcode : A_VCVTPH2PS;
ops : 2;
@ -10986,7 +10972,7 @@
(
opcode : A_VCVTTPD2DQ;
ops : 2;
optypes : (ot_ymmreg_mz,ot_memory or ot_bits512,ot_none,ot_none);
optypes : (ot_ymmreg_mz,ot_zmmrm_sae,ot_none,ot_none);
code : #232#233#234#241#248#1#230#72;
flags : [if_avx512,if_tfv]
),
@ -10997,13 +10983,6 @@
code : #232#233#234#241#248#1#230#72;
flags : [if_avx512,if_bcst8,if_tfv]
),
(
opcode : A_VCVTTPD2DQ;
ops : 2;
optypes : (ot_ymmreg_mz,ot_zmmreg_sae,ot_none,ot_none);
code : #232#233#234#241#248#1#230#72;
flags : [if_avx512]
),
(
opcode : A_VCVTTPS2DQ;
ops : 2;
@ -21490,13 +21469,6 @@
code : #232#233#234#241#248#1#123#72;
flags : [if_avx512]
),
(
opcode : A_VCVTPD2UDQ;
ops : 2;
optypes : (ot_xmmreg_mz,ot_memory or ot_bits128,ot_none,ot_none);
code : #232#234#248#1#121#72;
flags : [if_avx512,if_tfv]
),
(
opcode : A_VCVTPD2UDQ;
ops : 2;
@ -21507,9 +21479,9 @@
(
opcode : A_VCVTPD2UDQ;
ops : 2;
optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
optypes : (ot_xmmreg_mz,ot_xmmrm,ot_none,ot_none);
code : #232#234#248#1#121#72;
flags : [if_avx512]
flags : [if_avx512,if_tfv]
),
(
opcode : A_VCVTPD2UDQ;
@ -21535,7 +21507,7 @@
(
opcode : A_VCVTPD2UDQ;
ops : 2;
optypes : (ot_ymmreg_mz,ot_memory or ot_bits512,ot_none,ot_none);
optypes : (ot_ymmreg_mz,ot_zmmrm,ot_none,ot_none);
code : #232#233#234#248#1#121#72;
flags : [if_avx512,if_tfv]
),
@ -21812,13 +21784,6 @@
code : #219#232#233#234#248#1#230#72;
flags : [if_avx512]
),
(
opcode : A_VCVTQQ2PS;
ops : 2;
optypes : (ot_xmmreg_mz,ot_memory or ot_bits128,ot_none,ot_none);
code : #232#234#248#1#91#72;
flags : [if_avx512,if_tfv]
),
(
opcode : A_VCVTQQ2PS;
ops : 2;
@ -21829,7 +21794,7 @@
(
opcode : A_VCVTQQ2PS;
ops : 2;
optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
optypes : (ot_xmmreg_mz,ot_xmmrm,ot_none,ot_none);
code : #232#234#248#1#91#72;
flags : [if_avx512]
),
@ -21857,7 +21822,7 @@
(
opcode : A_VCVTQQ2PS;
ops : 2;
optypes : (ot_ymmreg_mz,ot_memory or ot_bits512,ot_none,ot_none);
optypes : (ot_ymmreg_mz,ot_zmmrm_er,ot_none,ot_none);
code : #232#233#234#248#1#91#72;
flags : [if_avx512,if_tfv]
),
@ -21868,13 +21833,6 @@
code : #232#233#234#248#1#91#72;
flags : [if_avx512,if_bcst8,if_tfv]
),
(
opcode : A_VCVTQQ2PS;
ops : 2;
optypes : (ot_ymmreg_mz,ot_zmmreg_er,ot_none,ot_none);
code : #232#233#234#248#1#91#72;
flags : [if_avx512]
),
(
opcode : A_VCVTSD2USI;
ops : 2;
@ -21980,13 +21938,6 @@
code : #232#233#234#241#248#1#122#72;
flags : [if_avx512]
),
(
opcode : A_VCVTTPD2UDQ;
ops : 2;
optypes : (ot_xmmreg_mz,ot_memory or ot_bits128,ot_none,ot_none);
code : #232#234#248#1#120#72;
flags : [if_avx512,if_tfv]
),
(
opcode : A_VCVTTPD2UDQ;
ops : 2;
@ -21997,7 +21948,7 @@
(
opcode : A_VCVTTPD2UDQ;
ops : 2;
optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
optypes : (ot_xmmreg_mz,ot_xmmrm,ot_none,ot_none);
code : #232#234#248#1#120#72;
flags : [if_avx512]
),
@ -22025,7 +21976,7 @@
(
opcode : A_VCVTTPD2UDQ;
ops : 2;
optypes : (ot_ymmreg_mz,ot_memory or ot_bits512,ot_none,ot_none);
optypes : (ot_ymmreg_mz,ot_zmmrm_sae,ot_none,ot_none);
code : #232#233#234#248#1#120#72;
flags : [if_avx512,if_tfv]
),
@ -22036,13 +21987,6 @@
code : #232#233#234#248#1#120#72;
flags : [if_avx512,if_bcst8,if_tfv]
),
(
opcode : A_VCVTTPD2UDQ;
ops : 2;
optypes : (ot_ymmreg_mz,ot_zmmreg_sae,ot_none,ot_none);
code : #232#233#234#248#1#120#72;
flags : [if_avx512]
),
(
opcode : A_VCVTTPD2UQQ;
ops : 2;
@ -22463,13 +22407,6 @@
code : #219#232#233#234#248#1#122#72;
flags : [if_avx512]
),
(
opcode : A_VCVTUQQ2PS;
ops : 2;
optypes : (ot_xmmreg_mz,ot_memory or ot_bits128,ot_none,ot_none);
code : #220#232#234#248#1#122#72;
flags : [if_avx512,if_tfv]
),
(
opcode : A_VCVTUQQ2PS;
ops : 2;
@ -22480,9 +22417,9 @@
(
opcode : A_VCVTUQQ2PS;
ops : 2;
optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
optypes : (ot_xmmreg_mz,ot_xmmrm,ot_none,ot_none);
code : #220#232#234#248#1#122#72;
flags : [if_avx512]
flags : [if_avx512,if_tfv]
),
(
opcode : A_VCVTUQQ2PS;
@ -22508,7 +22445,7 @@
(
opcode : A_VCVTUQQ2PS;
ops : 2;
optypes : (ot_ymmreg_mz,ot_memory or ot_bits512,ot_none,ot_none);
optypes : (ot_ymmreg_mz,ot_zmmrm_er,ot_none,ot_none);
code : #220#232#233#234#248#1#122#72;
flags : [if_avx512,if_tfv]
),
@ -22519,13 +22456,6 @@
code : #220#232#233#234#248#1#122#72;
flags : [if_avx512,if_bcst8,if_tfv]
),
(
opcode : A_VCVTUQQ2PS;
ops : 2;
optypes : (ot_ymmreg_mz,ot_zmmreg_er,ot_none,ot_none);
code : #220#232#233#234#248#1#122#72;
flags : [if_avx512]
),
(
opcode : A_VCVTUSI2SD;
ops : 3;

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<CONFIG>
<ProjectOptions>
<Version Value="11"/>
<Version Value="9"/>
<PathDelim Value="\"/>
<General>
<Flags>
@ -22,18 +22,10 @@
</PublishOptions>
<RunParams>
<local>
<CommandLineParams Value="-O- \home\torsten\tmp\vfpclasps.pp -Fu\home\torsten\avx512\rtl\units\x86_64-linux"/>
<FormatVersion Value="1"/>
<CommandLineParams Value="-O- \home\torsten\tmp\test.pp -Fu\home\torsten\avx512\rtl\units\x86_64-linux"/>
<LaunchingApplication PathPlusParams="\usr\X11R6\bin\xterm -T 'Lazarus Run Output' -e $(LazarusDir)\tools\runwait.sh $(TargetCmdLine)"/>
</local>
<FormatVersion Value="2"/>
<Modes Count="1">
<Mode0 Name="default">
<local>
<CommandLineParams Value="-O- \home\torsten\tmp\vfpclasps.pp -Fu\home\torsten\avx512\rtl\units\x86_64-linux"/>
<LaunchingApplication PathPlusParams="\usr\X11R6\bin\xterm -T 'Lazarus Run Output' -e $(LazarusDir)\tools\runwait.sh $(TargetCmdLine)"/>
</local>
</Mode0>
</Modes>
</RunParams>
<Units Count="2">
<Unit0>

View File

@ -1829,9 +1829,17 @@ implementation
if (insot and OT_SIZE_MASK) = 0 then
begin
case insot and (OT_XMMRM or OT_YMMRM or OT_ZMMRM or OT_REG_EXTRA_MASK) of
OT_XMMRM: insot := insot or OT_BITS128;
OT_YMMRM: insot := insot or OT_BITS256;
OT_ZMMRM: insot := insot or OT_BITS512;
//OT_XMMRM: if InsTabMemRefSizeInfoCache^[opcode].MemRefSize <> msiMultipleMinSize128
// then insot := insot or OT_BITS128;
//OT_YMMRM: if InsTabMemRefSizeInfoCache^[opcode].MemRefSize <> msiMultipleMinSize256
// then insot := insot or OT_BITS256;
//OT_ZMMRM: if InsTabMemRefSizeInfoCache^[opcode].MemRefSize <> msiMultipleMinSize512
// then insot := insot or OT_BITS512;
OT_MEM128: insot := insot or OT_BITS128;
OT_MEM256: insot := insot or OT_BITS256;
OT_MEM512: insot := insot or OT_BITS512;
else
;
end;

View File

@ -726,13 +726,13 @@ begin
msiYMem64,
msiZMem64: ; // ignore; gather/scatter opcodes haven a fixed element-size, not a fixed memory-size
// the vector-register have indices with base of the memory-address in the memory-operand
msiMultipleMinSize8,
msiMultipleMinSize16,
msiMultipleMinSize32,
msiMultipleMinSize64,
msiMultipleMinSize128,
msiMultipleMinSize256,
msiMultipleMinSize512: ; // ignore
msiMultipleMinSize8: memrefsize := 8;
msiMultipleMinSize16: memrefsize := 16;
msiMultipleMinSize32: memrefsize := 32;
msiMultipleMinSize64: memrefsize := 64;
msiMultipleMinSize128: memrefsize := 128;
msiMultipleMinSize256: memrefsize := 256;
msiMultipleMinSize512: memrefsize := 512;
msiNoSize,
msiNoMemRef,
msiUnknown,
@ -2005,24 +2005,25 @@ begin
// //(((tx86operand(operands[i]).vopext and OTVE_VECTOR_BCST) = OTVE_VECTOR_BCST) and
// // (MemRefInfo(opcode).MemRefSizeBCST = msbBCST32)
// //)
// then
// then
// asize:=OT_BITS32;
// OS_64,OS_M64: if (operands[i].HasType) or
// (MemRefInfo(opcode).MemRefSizeBCST = msbBCST64)
// (MemRefInfo(opcode).MemRefSize = msiMem64) or
// //(((tx86operand(operands[i]).vopext and OTVE_VECTOR_BCST) = OTVE_VECTOR_BCST) and
// // (MemRefInfo(opcode).MemRefSizeBCST = msbBCST64)
// //) then
// (MemRefInfo(opcode).MemRefSizeBCST = msbBCST64) then
// asize:=OT_BITS64;
// asize:=OT_BITS64;
// OS_M128: if (operands[i].HasType) or
// (MemRefInfo(opcode).MemRefSize = msiMem128) then
//asize:=OT_BITS128;
// //asize:=OT_BITS128;
// OS_M256: if (operands[i].HasType) or
// (MemRefInfo(opcode).MemRefSize = msiMem256) then
//asize:=OT_BITS256;
// //asize:=OT_BITS256;
// OS_M512: if (operands[i].HasType) or
// (MemRefInfo(opcode).MemRefSize = msiMem512) then
//asize:=OT_BITS512;
// //asize:=OT_BITS512;
// else;
// end;
//

View File

@ -4184,9 +4184,10 @@ xmmreg_mz,ymmreg \334\350\352\362\364\370\1\xE6\110
xmmreg_mz,bmem64 \334\350\352\370\1\xE6\110 AVX512,BCST2,TFV
xmmreg_mz,bmem64 \334\350\352\364\370\1\xE6\110 AVX512,BCST4,TFV
ymmreg_mz,mem512 \334\350\351\352\370\1\xE6\110 AVX512,TFV
;ymmreg_mz,mem512 \334\350\351\352\370\1\xE6\110 AVX512,TFV
ymmreg_mz,zmmrm_er \334\350\351\352\370\1\xE6\110 AVX512,TFV
ymmreg_mz,bmem64 \334\350\351\352\370\1\xE6\110 AVX512,BCST8,TFV
ymmreg_mz,zmmreg_er \334\350\351\352\370\1\xE6\110 AVX512
;ymmreg_mz,zmmreg_er \334\350\351\352\370\1\xE6\110 AVX512
; VCVTPD2PS xmmreg_mz,mem256 must come first - map MemRefSize 256bits correct
@ -4198,9 +4199,10 @@ xmmreg_mz,ymmreg \350\352\361\362\364\370\1\x5A\110
xmmreg_mz,xmmrm \350\352\361\362\370\1\x5A\110 AVX,SANDYBRIDGE,TFV
xmmreg_mz,bmem64 \350\352\361\370\1\x5A\110 AVX512,BCST2,TFV
xmmreg_mz,bmem64 \350\352\361\364\370\1\x5A\110 AVX512,BCST4,TFV
ymmreg_mz,mem512 \350\351\352\361\370\1\x5A\110 AVX512,TFV
;ymmreg_mz,mem512 \350\351\352\361\370\1\x5A\110 AVX512,TFV
ymmreg_mz,zmmrm_er \350\351\352\361\370\1\x5A\110 AVX512,TFV
ymmreg_mz,bmem64 \350\351\352\361\370\1\x5A\110 AVX512,BCST8,TFV
ymmreg_mz,zmmreg_er \350\351\352\361\370\1\x5A\110 AVX512
;ymmreg_mz,zmmreg_er \350\351\352\361\370\1\x5A\110 AVX512
[VCVTPH2PS]
(Ch_Wop2, Ch_Rop1)
@ -4304,9 +4306,10 @@ xmmreg_mz,ymmreg \350\352\361\362\364\370\1\xE6\110
xmmreg_mz,xmmrm \350\352\361\362\370\1\xE6\110 AVX,SANDYBRIDGE,AVX512,TFV
xmmreg_mz,bmem64 \350\352\361\370\1\xE6\110 AVX512,BCST2,TFV
xmmreg_mz,bmem64 \350\352\361\364\370\1\xE6\110 AVX512,BCST4,TFV
ymmreg_mz,mem512 \350\351\352\361\370\1\xE6\110 AVX512,TFV
;ymmreg_mz,mem512 \350\351\352\361\370\1\xE6\110 AVX512,TFV
ymmreg_mz,zmmrm_sae \350\351\352\361\370\1\xE6\110 AVX512,TFV
ymmreg_mz,bmem64 \350\351\352\361\370\1\xE6\110 AVX512,BCST8,TFV
ymmreg_mz,zmmreg_sae \350\351\352\361\370\1\xE6\110 AVX512
;ymmreg_mz,zmmreg_sae \350\351\352\361\370\1\xE6\110 AVX512
[VCVTTPS2DQ]
(Ch_Wop2, Ch_Rop1)
@ -7305,15 +7308,14 @@ zmmreg_mz,zmmreg_er \350\351\352\361\370\1\x7B\110
[VCVTPD2UDQ, vcvtpd2udqN]
(Ch_All)
xmmreg_mz,mem128 \350\352\370\1\x79\110 AVX512,TFV
xmmreg_mz,mem256 \350\352\364\370\1\x79\110 AVX512,TFV
xmmreg_mz,xmmreg \350\352\370\1\x79\110 AVX512
xmmreg_mz,xmmrm \350\352\370\1\x79\110 AVX512,TFV
xmmreg_mz,bmem64 \350\352\370\1\x79\110 AVX512,BCST2,TFV
xmmreg_mz,bmem64 \350\352\364\370\1\x79\110 AVX512,BCST4,TFV
xmmreg_mz,ymmreg \350\352\364\370\1\x79\110 AVX512
ymmreg_mz,mem512 \350\351\352\370\1\x79\110 AVX512,TFV
;ymmreg_mz,mem512 \350\351\352\370\1\x79\110 AVX512,TFV
ymmreg_mz,zmmrm_er \350\351\352\370\1\x79\110 AVX512,TFV
ymmreg_mz,bmem64 \350\351\352\370\1\x79\110 AVX512,BCST8,TFV
ymmreg_mz,zmmreg_er \350\351\352\370\1\x79\110 AVX512
[VCVTPD2UQQ]
(Ch_All)
@ -7367,17 +7369,22 @@ zmmreg_mz,mem512 \333\350\351\352\370\1\xE6\110
zmmreg_mz,bmem64 \333\350\351\352\370\1\xE6\110 AVX512,TFV
zmmreg_mz,zmmreg_er \333\350\351\352\370\1\xE6\110 AVX512
; VCVTQQ2PS xmmreg_mz,mem256 must come first - map MemRefSize 256,512bits correct
; map all other MemrefSize (without broasdcast MemRef) to xmmreg, xmmrm
;
[VCVTQQ2PS,vcvtqq2psN]
(Ch_All)
xmmreg_mz,mem128 \350\352\370\1\x5B\110 AVX512,TFV
;xmmreg_mz,mem128 \350\352\370\1\x5B\110 AVX512,TFV
xmmreg_mz,mem256 \350\352\364\370\1\x5B\110 AVX512,TFV
xmmreg_mz,xmmreg \350\352\370\1\x5B\110 AVX512
;xmmreg_mz,xmmreg \350\352\370\1\x5B\110 AVX512
xmmreg_mz,xmmrm \350\352\370\1\x5B\110 AVX512
xmmreg_mz,bmem64 \350\352\370\1\x5B\110 AVX512,BCST2,TFV
xmmreg_mz,bmem64 \350\352\364\370\1\x5B\110 AVX512,BCST4,TFV
xmmreg_mz,ymmreg \350\352\364\370\1\x5B\110 AVX512
ymmreg_mz,mem512 \350\351\352\370\1\x5B\110 AVX512,TFV
;ymmreg_mz,mem512 \350\351\352\370\1\x5B\110 AVX512,TFV
ymmreg_mz,zmmrm_er \350\351\352\370\1\x5B\110 AVX512,TFV
ymmreg_mz,bmem64 \350\351\352\370\1\x5B\110 AVX512,BCST8,TFV
ymmreg_mz,zmmreg_er \350\351\352\370\1\x5B\110 AVX512
;ymmreg_mz,zmmreg_er \350\351\352\370\1\x5B\110 AVX512
[VCVTSD2USI]
(Ch_All)
@ -7403,17 +7410,22 @@ zmmreg_mz,mem512 \350\351\352\361\370\1\x7A\110
zmmreg_mz,bmem64 \350\351\352\361\370\1\x7A\110 AVX512,TFV
zmmreg_mz,zmmreg_sae \350\351\352\361\370\1\x7A\110 AVX512
; VCVTTPD2UDQ xmmreg_mz,mem256 must come first - map MemRefSize 256,512bits correct
; map all other MemrefSize (without broasdcast MemRef) to kreg_m, xmmrm
[VCVTTPD2UDQ,vcvttpd2udqN]
(Ch_All)
xmmreg_mz,mem128 \350\352\370\1\x78\110 AVX512,TFV
;xmmreg_mz,mem128 \350\352\370\1\x78\110 AVX512,TFV
xmmreg_mz,mem256 \350\352\364\370\1\x78\110 AVX512,TFV
xmmreg_mz,xmmreg \350\352\370\1\x78\110 AVX512
;xmmreg_mz,xmmreg \350\352\370\1\x78\110 AVX512
xmmreg_mz,xmmrm \350\352\370\1\x78\110 AVX512
xmmreg_mz,bmem64 \350\352\370\1\x78\110 AVX512,BCST2,TFV
xmmreg_mz,bmem64 \350\352\364\370\1\x78\110 AVX512,BCST4,TFV
xmmreg_mz,ymmreg \350\352\364\370\1\x78\110 AVX512
ymmreg_mz,mem512 \350\351\352\370\1\x78\110 AVX512,TFV
;ymmreg_mz,mem512 \350\351\352\370\1\x78\110 AVX512,TFV
ymmreg_mz,zmmrm_sae \350\351\352\370\1\x78\110 AVX512,TFV
ymmreg_mz,bmem64 \350\351\352\370\1\x78\110 AVX512,BCST8,TFV
ymmreg_mz,zmmreg_sae \350\351\352\370\1\x78\110 AVX512
;ymmreg_mz,zmmreg_sae \350\351\352\370\1\x78\110 AVX512
[VCVTTPD2UQQ]
(Ch_All)
@ -7504,15 +7516,15 @@ zmmreg_mz,zmmreg_er \333\350\351\352\370\1\x7A\110
[VCVTUQQ2PS,vcvtuqq2psN]
(Ch_All)
xmmreg_mz,mem128 \334\350\352\370\1\x7A\110 AVX512,TFV
xmmreg_mz,mem256 \334\350\352\364\370\1\x7A\110 AVX512,TFV
xmmreg_mz,xmmreg \334\350\352\370\1\x7A\110 AVX512
xmmreg_mz,xmmrm \334\350\352\370\1\x7A\110 AVX512,TFV
xmmreg_mz,bmem64 \334\350\352\370\1\x7A\110 AVX512,BCST2,TFV
xmmreg_mz,bmem64 \334\350\352\364\370\1\x7A\110 AVX512,BCST4,TFV
xmmreg_mz,ymmreg \334\350\352\364\370\1\x7A\110 AVX512
ymmreg_mz,mem512 \334\350\351\352\370\1\x7A\110 AVX512,TFV
;ymmreg_mz,mem512 \334\350\351\352\370\1\x7A\110 AVX512,TFV
ymmreg_mz,zmmrm_er \334\350\351\352\370\1\x7A\110 AVX512,TFV
ymmreg_mz,bmem64 \334\350\351\352\370\1\x7A\110 AVX512,BCST8,TFV
ymmreg_mz,zmmreg_er \334\350\351\352\370\1\x7A\110 AVX512
;ymmreg_mz,zmmreg_er \334\350\351\352\370\1\x7A\110 AVX512
; special handling - gas suffix "S" =>> instructions-opsize = source-operand

View File

@ -1,2 +1,2 @@
{ don't edit, this file is generated from x86ins.dat }
4232;
4222;

View File

@ -10832,7 +10832,7 @@
(
opcode : A_VCVTPD2DQ;
ops : 2;
optypes : (ot_ymmreg_mz,ot_memory or ot_bits512,ot_none,ot_none);
optypes : (ot_ymmreg_mz,ot_zmmrm_er,ot_none,ot_none);
code : #220#232#233#234#248#1#230#72;
flags : [if_avx512,if_tfv]
),
@ -10843,13 +10843,6 @@
code : #220#232#233#234#248#1#230#72;
flags : [if_avx512,if_bcst8,if_tfv]
),
(
opcode : A_VCVTPD2DQ;
ops : 2;
optypes : (ot_ymmreg_mz,ot_zmmreg_er,ot_none,ot_none);
code : #220#232#233#234#248#1#230#72;
flags : [if_avx512]
),
(
opcode : A_VCVTPD2PS;
ops : 2;
@ -10888,7 +10881,7 @@
(
opcode : A_VCVTPD2PS;
ops : 2;
optypes : (ot_ymmreg_mz,ot_memory or ot_bits512,ot_none,ot_none);
optypes : (ot_ymmreg_mz,ot_zmmrm_er,ot_none,ot_none);
code : #232#233#234#241#248#1#90#72;
flags : [if_avx512,if_tfv]
),
@ -10899,13 +10892,6 @@
code : #232#233#234#241#248#1#90#72;
flags : [if_avx512,if_bcst8,if_tfv]
),
(
opcode : A_VCVTPD2PS;
ops : 2;
optypes : (ot_ymmreg_mz,ot_zmmreg_er,ot_none,ot_none);
code : #232#233#234#241#248#1#90#72;
flags : [if_avx512]
),
(
opcode : A_VCVTPH2PS;
ops : 2;
@ -11273,7 +11259,7 @@
(
opcode : A_VCVTTPD2DQ;
ops : 2;
optypes : (ot_ymmreg_mz,ot_memory or ot_bits512,ot_none,ot_none);
optypes : (ot_ymmreg_mz,ot_zmmrm_sae,ot_none,ot_none);
code : #232#233#234#241#248#1#230#72;
flags : [if_avx512,if_tfv]
),
@ -11284,13 +11270,6 @@
code : #232#233#234#241#248#1#230#72;
flags : [if_avx512,if_bcst8,if_tfv]
),
(
opcode : A_VCVTTPD2DQ;
ops : 2;
optypes : (ot_ymmreg_mz,ot_zmmreg_sae,ot_none,ot_none);
code : #232#233#234#241#248#1#230#72;
flags : [if_avx512]
),
(
opcode : A_VCVTTPS2DQ;
ops : 2;
@ -21700,13 +21679,6 @@
code : #232#233#234#241#248#1#123#72;
flags : [if_avx512]
),
(
opcode : A_VCVTPD2UDQ;
ops : 2;
optypes : (ot_xmmreg_mz,ot_memory or ot_bits128,ot_none,ot_none);
code : #232#234#248#1#121#72;
flags : [if_avx512,if_tfv]
),
(
opcode : A_VCVTPD2UDQ;
ops : 2;
@ -21717,9 +21689,9 @@
(
opcode : A_VCVTPD2UDQ;
ops : 2;
optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
optypes : (ot_xmmreg_mz,ot_xmmrm,ot_none,ot_none);
code : #232#234#248#1#121#72;
flags : [if_avx512]
flags : [if_avx512,if_tfv]
),
(
opcode : A_VCVTPD2UDQ;
@ -21745,7 +21717,7 @@
(
opcode : A_VCVTPD2UDQ;
ops : 2;
optypes : (ot_ymmreg_mz,ot_memory or ot_bits512,ot_none,ot_none);
optypes : (ot_ymmreg_mz,ot_zmmrm,ot_none,ot_none);
code : #232#233#234#248#1#121#72;
flags : [if_avx512,if_tfv]
),
@ -22022,13 +21994,6 @@
code : #219#232#233#234#248#1#230#72;
flags : [if_avx512]
),
(
opcode : A_VCVTQQ2PS;
ops : 2;
optypes : (ot_xmmreg_mz,ot_memory or ot_bits128,ot_none,ot_none);
code : #232#234#248#1#91#72;
flags : [if_avx512,if_tfv]
),
(
opcode : A_VCVTQQ2PS;
ops : 2;
@ -22039,7 +22004,7 @@
(
opcode : A_VCVTQQ2PS;
ops : 2;
optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
optypes : (ot_xmmreg_mz,ot_xmmrm,ot_none,ot_none);
code : #232#234#248#1#91#72;
flags : [if_avx512]
),
@ -22067,7 +22032,7 @@
(
opcode : A_VCVTQQ2PS;
ops : 2;
optypes : (ot_ymmreg_mz,ot_memory or ot_bits512,ot_none,ot_none);
optypes : (ot_ymmreg_mz,ot_zmmrm_er,ot_none,ot_none);
code : #232#233#234#248#1#91#72;
flags : [if_avx512,if_tfv]
),
@ -22078,13 +22043,6 @@
code : #232#233#234#248#1#91#72;
flags : [if_avx512,if_bcst8,if_tfv]
),
(
opcode : A_VCVTQQ2PS;
ops : 2;
optypes : (ot_ymmreg_mz,ot_zmmreg_er,ot_none,ot_none);
code : #232#233#234#248#1#91#72;
flags : [if_avx512]
),
(
opcode : A_VCVTSD2USI;
ops : 2;
@ -22190,13 +22148,6 @@
code : #232#233#234#241#248#1#122#72;
flags : [if_avx512]
),
(
opcode : A_VCVTTPD2UDQ;
ops : 2;
optypes : (ot_xmmreg_mz,ot_memory or ot_bits128,ot_none,ot_none);
code : #232#234#248#1#120#72;
flags : [if_avx512,if_tfv]
),
(
opcode : A_VCVTTPD2UDQ;
ops : 2;
@ -22207,7 +22158,7 @@
(
opcode : A_VCVTTPD2UDQ;
ops : 2;
optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
optypes : (ot_xmmreg_mz,ot_xmmrm,ot_none,ot_none);
code : #232#234#248#1#120#72;
flags : [if_avx512]
),
@ -22235,7 +22186,7 @@
(
opcode : A_VCVTTPD2UDQ;
ops : 2;
optypes : (ot_ymmreg_mz,ot_memory or ot_bits512,ot_none,ot_none);
optypes : (ot_ymmreg_mz,ot_zmmrm_sae,ot_none,ot_none);
code : #232#233#234#248#1#120#72;
flags : [if_avx512,if_tfv]
),
@ -22246,13 +22197,6 @@
code : #232#233#234#248#1#120#72;
flags : [if_avx512,if_bcst8,if_tfv]
),
(
opcode : A_VCVTTPD2UDQ;
ops : 2;
optypes : (ot_ymmreg_mz,ot_zmmreg_sae,ot_none,ot_none);
code : #232#233#234#248#1#120#72;
flags : [if_avx512]
),
(
opcode : A_VCVTTPD2UQQ;
ops : 2;
@ -22673,13 +22617,6 @@
code : #219#232#233#234#248#1#122#72;
flags : [if_avx512]
),
(
opcode : A_VCVTUQQ2PS;
ops : 2;
optypes : (ot_xmmreg_mz,ot_memory or ot_bits128,ot_none,ot_none);
code : #220#232#234#248#1#122#72;
flags : [if_avx512,if_tfv]
),
(
opcode : A_VCVTUQQ2PS;
ops : 2;
@ -22690,9 +22627,9 @@
(
opcode : A_VCVTUQQ2PS;
ops : 2;
optypes : (ot_xmmreg_mz,ot_xmmreg,ot_none,ot_none);
optypes : (ot_xmmreg_mz,ot_xmmrm,ot_none,ot_none);
code : #220#232#234#248#1#122#72;
flags : [if_avx512]
flags : [if_avx512,if_tfv]
),
(
opcode : A_VCVTUQQ2PS;
@ -22718,7 +22655,7 @@
(
opcode : A_VCVTUQQ2PS;
ops : 2;
optypes : (ot_ymmreg_mz,ot_memory or ot_bits512,ot_none,ot_none);
optypes : (ot_ymmreg_mz,ot_zmmrm_er,ot_none,ot_none);
code : #220#232#233#234#248#1#122#72;
flags : [if_avx512,if_tfv]
),
@ -22729,13 +22666,6 @@
code : #220#232#233#234#248#1#122#72;
flags : [if_avx512,if_bcst8,if_tfv]
),
(
opcode : A_VCVTUQQ2PS;
ops : 2;
optypes : (ot_ymmreg_mz,ot_zmmreg_er,ot_none,ot_none);
code : #220#232#233#234#248#1#122#72;
flags : [if_avx512]
),
(
opcode : A_VCVTUSI2SD;
ops : 3;

View File

@ -399,9 +399,9 @@ begin
FOpCodeList.Add('vcmppd,1,1,1,KREG_M,XMMREG,XMMRM,IMM8');
FOpCodeList.Add('vcmppd,1,1,1,KREG_M,XMMREG,2B64,IMM8');
FOpCodeList.Add('vcmppd,1,1,1,KREG_M,YMMREG,YMMRM,IMM8');
FOpCodeList.Add('vcmppd,1,1,1,KREG_M,YMMREG,4B32,IMM8');
FOpCodeList.Add('vcmppd,1,1,1,KREG_M,YMMREG,4B64,IMM8');
FOpCodeList.Add('vcmppd,1,1,1,KREG_M,ZMMREG,MEM512,IMM8');
FOpCodeList.Add('vcmppd,1,1,1,KREG_M,ZMMREG,8B32,IMM8');
FOpCodeList.Add('vcmppd,1,1,1,KREG_M,ZMMREG,8B64,IMM8');
FOpCodeList.Add('vcmppd,1,1,1,KREG_M,ZMMREG,ZMMREG_SAE,IMM8');
FOpCodeList.Add('vcmppd,1,1,0,XMMREG,XMMREG,XMMRM,IMM8');
FOpCodeList.Add('vcmppd,1,1,0,YMMREG,YMMREG,YMMRM,IMM8');