瀏覽代碼

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

git-svn-id: branches/tg74/avx512-0037785@47678 -
tg74 4 年之前
父節點
當前提交
0530a2f6e7

+ 1 - 1
compiler/i386/i386nop.inc

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

+ 13 - 83
compiler/i386/i386tab.inc

@@ -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;
@@ -21315,13 +21294,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;
@@ -21332,9 +21304,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;
@@ -21360,7 +21332,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]
   ),
@@ -21637,13 +21609,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;
@@ -21654,7 +21619,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]
   ),
@@ -21682,7 +21647,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]
   ),
@@ -21693,13 +21658,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;
@@ -21805,13 +21763,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;
@@ -21822,7 +21773,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]
   ),
@@ -21850,7 +21801,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]
   ),
@@ -21861,13 +21812,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;
@@ -22288,13 +22232,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;
@@ -22305,9 +22242,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;
@@ -22333,7 +22270,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]
   ),
@@ -22344,13 +22281,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;

+ 1 - 1
compiler/i8086/i8086nop.inc

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

+ 13 - 83
compiler/i8086/i8086tab.inc

@@ -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;
@@ -21539,13 +21518,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;
@@ -21556,9 +21528,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;
@@ -21584,7 +21556,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]
   ),
@@ -21861,13 +21833,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;
@@ -21878,7 +21843,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]
   ),
@@ -21906,7 +21871,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]
   ),
@@ -21917,13 +21882,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;
@@ -22029,13 +21987,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;
@@ -22046,7 +21997,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]
   ),
@@ -22074,7 +22025,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]
   ),
@@ -22085,13 +22036,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;
@@ -22512,13 +22456,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;
@@ -22529,9 +22466,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;
@@ -22557,7 +22494,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]
   ),
@@ -22568,13 +22505,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;

+ 3 - 11
compiler/ppcx64.lpi

@@ -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>

+ 11 - 3
compiler/x86/aasmcpu.pas

@@ -1831,9 +1831,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;

+ 13 - 12
compiler/x86/rax86.pas

@@ -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,
@@ -2003,24 +2003,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;
     //

+ 47 - 20
compiler/x86/x86ins.dat

@@ -4175,9 +4175,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
 ;                                              map all other MemrefSize (without broasdcast MemRef) to xmmreg, xmmrm
@@ -4188,9 +4189,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)
@@ -4285,9 +4287,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)
@@ -7290,16 +7293,20 @@ zmmreg_mz,bmem64                          \350\351\352\361\370\1\x7B\110
 zmmreg_mz,zmmreg_er                       \350\351\352\361\370\1\x7B\110            AVX512
 
 [VCVTPD2UDQ, vcvtpd2udqN]
+<<<<<<< HEAD
 (Ch_Wop2, Ch_Rop1)
 xmmreg_mz,mem128                          \350\352\370\1\x79\110                    AVX512,TFV
+=======
+(Ch_All)
+>>>>>>> working on new testmethods and bug-fixing size of (memref-operands | global and local variable
 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_Wop2, Ch_Rop1)
@@ -7353,17 +7360,27 @@ 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]
+<<<<<<< HEAD
 (Ch_Wop2, Ch_Rop1)
 xmmreg_mz,mem128                          \350\352\370\1\x5B\110                    AVX512,TFV
+=======
+(Ch_All)
+;xmmreg_mz,mem128                          \350\352\370\1\x5B\110                    AVX512,TFV
+>>>>>>> working on new testmethods and bug-fixing size of (memref-operands | global and local variable
 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_Wop2, Ch_Rop1)
@@ -7389,17 +7406,27 @@ 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]
+<<<<<<< HEAD
 (Ch_Wop2, Ch_Rop1)
 xmmreg_mz,mem128                          \350\352\370\1\x78\110                    AVX512,TFV
+=======
+(Ch_All)
+;xmmreg_mz,mem128                          \350\352\370\1\x78\110                    AVX512,TFV
+>>>>>>> working on new testmethods and bug-fixing size of (memref-operands | global and local variable
 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_Wop2, Ch_Rop1)
@@ -7489,16 +7516,16 @@ zmmreg_mz,bmem64                          \333\350\351\352\370\1\x7A\110
 zmmreg_mz,zmmreg_er                       \333\350\351\352\370\1\x7A\110            AVX512
 
 [VCVTUQQ2PS,vcvtuqq2psN]
-(Ch_Wop2, Ch_Rop1)
-xmmreg_mz,mem128                          \334\350\352\370\1\x7A\110                AVX512,TFV
+(Ch_All)
 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
 [VCVTUSI2SD,vcvtusi2sdS]

+ 1 - 1
compiler/x86_64/x8664nop.inc

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

+ 13 - 83
compiler/x86_64/x8664tab.inc

@@ -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;
@@ -21749,13 +21728,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;
@@ -21766,9 +21738,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;
@@ -21794,7 +21766,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]
   ),
@@ -22071,13 +22043,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;
@@ -22088,7 +22053,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]
   ),
@@ -22116,7 +22081,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]
   ),
@@ -22127,13 +22092,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;
@@ -22239,13 +22197,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;
@@ -22256,7 +22207,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]
   ),
@@ -22284,7 +22235,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]
   ),
@@ -22295,13 +22246,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;
@@ -22722,13 +22666,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;
@@ -22739,9 +22676,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;
@@ -22767,7 +22704,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]
   ),
@@ -22778,13 +22715,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;

+ 2 - 2
tests/utils/avx/avxopcodes.pas

@@ -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');