Browse Source

Add x86 instruction set AVX102.

Margers 2 months ago
parent
commit
45d8ffe13d

+ 8 - 1
compiler/x86/aasmcpu.pas

@@ -5725,6 +5725,13 @@ implementation
                      (AsmOp = A_VCVTNEPS2BF16) or
                      (AsmOp = A_vcvtps2phx) or
 
+                     (AsmOp = A_vcvtph2bf8) or
+                     (AsmOp = A_vcvtph2bf8s) or
+                     (AsmOp = A_vcvtph2hf8) or
+                     (AsmOp = A_vcvtph2hf8s) or
+                     (AsmOp = A_vcvttpd2dqs) or
+                     (AsmOp = A_vcvttpd2udqs) or
+
                      // TODO check
                      (AsmOp = A_VCMPSS)
 
@@ -5843,4 +5850,4 @@ implementation
 begin
   cai_align:=tai_align;
   cai_cpu:=taicpu;
-end.
+end.

File diff suppressed because it is too large
+ 447 - 335
compiler/x86/x86ins.dat


+ 213 - 0
compiler/x86_64/x8664ats.inc

@@ -364,6 +364,7 @@ attsufNONE,
 attsufNONE,
 attsufNONE,
 attsufNONE,
+attsufNONE,
 attsufINT,
 attsufINT,
 attsufINT,
@@ -680,6 +681,14 @@ attsufNONE,
 attsufNONE,
 attsufNONE,
 attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
 attsufINT,
 attsufNONE,
 attsufNONE,
@@ -1749,5 +1758,209 @@ attsufNONE,
 attsufNONE,
 attsufNONE,
 attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufMMS,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufMMX,
+attsufMMX,
+attsufMMX,
+attsufMMX,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufMMX,
+attsufNONE,
+attsufMMX,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
 attsufNONE
 );

+ 214 - 1
compiler/x86_64/x8664att.inc

@@ -364,6 +364,7 @@
 'wbinvd',
 'wrshr',
 'wrmsr',
+'wrmsrns',
 'xadd',
 'xbts',
 'xchg',
@@ -676,6 +677,14 @@
 'aesdeclast',
 'aesimc',
 'aeskeygenassist',
+'aesdec128kl',
+'aesdec256kl',
+'aesenc128kl',
+'aesenc256kl',
+'aesdecwide128kl',
+'aesdecwide256kl',
+'aesencwide128kl',
+'aesencwide256kl',
 'rdtscp',
 'stosq',
 'lodsq',
@@ -1749,5 +1758,209 @@
 'vsqrtsh',
 'vsubph',
 'vsubsh',
-'vucomish'
+'vucomish',
+'movdiri',
+'prefetchrst2',
+'movrs',
+'vmovrsb',
+'vmovrsd',
+'vmovrsq',
+'vmovrsw',
+'aadd',
+'aand',
+'aor',
+'axor',
+'cmpbexadd',
+'cmpbxadd',
+'cmplexadd',
+'cmplxadd',
+'cmpnbexadd',
+'cmpnbxadd',
+'cmpnlexadd',
+'cmpnlxadd',
+'cmpnoxadd',
+'cmpnpxadd',
+'cmpnsxadd',
+'cmpnzxadd',
+'cmpoxadd',
+'cmppxadd',
+'cmpsxadd',
+'cmpzxadd',
+'clui',
+'senduipi',
+'stui',
+'testui',
+'uiret',
+'serialize',
+'urdmsr',
+'uwrmsr',
+'vpdpbssd',
+'vpdpbssds',
+'vpdpbsud',
+'vpdpbsuds',
+'vpdpbuud',
+'vpdpbuuds',
+'vpdpwsud',
+'vpdpwsuds',
+'vpdpwusd',
+'vpdpwusds',
+'vpdpwuud',
+'vpdpwuuds',
+'tdpbf16ps',
+'tdpfp16ps',
+'ldtilecfg',
+'sttilecfg',
+'tileloadd',
+'tileloaddt1',
+'tilerelease',
+'tilestored',
+'tilezero',
+'tdpbssd',
+'tdpbsud',
+'tdpbusd',
+'tdpbuud',
+'t2rpntlvwz0',
+'t2rpntlvwz0t1',
+'t2rpntlvwz1',
+'t2rpntlvwz1t1',
+'t2rpntlvwz0rs',
+'t2rpntlvwz0rst1',
+'t2rpntlvwz1rs',
+'t2rpntlvwz1rst1',
+'tcmmimfp16ps',
+'tcmmrlfp16ps',
+'tconjtcmmimfp16ps',
+'tconjtfp16',
+'tdpbf8ps',
+'tdpbhf8ps',
+'tdphbf8ps',
+'tdphf8ps',
+'tileloaddrs',
+'tileloaddrst1',
+'tmmultf32ps',
+'ttcmmimfp16ps',
+'ttcmmrlfp16ps',
+'ttdpbf16ps',
+'ttdpfp16ps',
+'ttmmultf32ps',
+'ttransposed',
+'tcvtrowd2ps',
+'tcvtrowps2bf16h',
+'tcvtrowps2bf16l',
+'tcvtrowps2phh',
+'tcvtrowps2phl',
+'tilemovrow',
+'vaddbf16',
+'vcmpeqbf16',
+'vcmpltbf16',
+'vcmplebf16',
+'vcmpunordbf16',
+'vcmpneqbf16',
+'vcmpnltbf16',
+'vcmpnlebf16',
+'vcmpordbf16',
+'vcmpeq_uqbf16',
+'vcmpngebf16',
+'vcmpngtbf16',
+'vcmpfalsebf16',
+'vcmpneq_oqbf16',
+'vcmpgebf16',
+'vcmpgtbf16',
+'vcmptruebf16',
+'vcmpeq_osbf16',
+'vcmplt_oqbf16',
+'vcmple_oqbf16',
+'vcmpunord_sbf16',
+'vcmpneq_usbf16',
+'vcmpnlt_uqbf16',
+'vcmpnle_uqbf16',
+'vcmpord_sbf16',
+'vcmpeq_usbf16',
+'vcmpnge_uqbf16',
+'vcmpngt_uqbf16',
+'vcmpfalse_osbf16',
+'vcmpneq_osbf16',
+'vcmpge_oqbf16',
+'vcmpgt_oqbf16',
+'vcmptrue_usbf16',
+'vcmpbf16',
+'vcomisbf16',
+'vdivbf16',
+'vfmadd132bf16',
+'vfmadd213bf16',
+'vfmadd231bf16',
+'vfmsub132bf16',
+'vfmsub213bf16',
+'vfmsub231bf16',
+'vfnmadd132bf16',
+'vfnmadd213bf16',
+'vfnmadd231bf16',
+'vfnmsub132bf16',
+'vfnmsub213bf16',
+'vfnmsub231bf16',
+'vfpclassbf16',
+'vgetexpbf16',
+'vgetmantbf16',
+'vmaxbf16',
+'vminbf16',
+'vmulbf16',
+'vrcpbf16',
+'vreducebf16',
+'vrndscalebf16',
+'vrsqrtbf16',
+'vscalefbf16',
+'vsqrtbf16',
+'vsubbf16',
+'vcomxsd',
+'vcomxsh',
+'vcomxss',
+'vucomxsd',
+'vucomxsh',
+'vucomxss',
+'vcvt2ph2bf8',
+'vcvt2ph2bf8s',
+'vcvt2ph2hf8',
+'vcvt2ph2hf8s',
+'vcvtph2bf8',
+'vcvtph2bf8s',
+'vcvtph2hf8',
+'vcvtph2hf8s',
+'vcvt2ps2phx',
+'vcvtbiasph2bf8',
+'vcvtbiasph2bf8s',
+'vcvtbiasph2hf8',
+'vcvtbiasph2hf8s',
+'vcvthf82ph',
+'vcvtbf162ibs',
+'vcvtbf162iubs',
+'vcvttbf162ibs',
+'vcvttbf162iubs',
+'vcvttpd2dqs',
+'vcvttpd2qqs',
+'vcvttpd2udqs',
+'vcvttpd2uqqs',
+'vcvtph2ibs',
+'vcvtph2iubs',
+'vcvttph2ibs',
+'vcvttph2iubs',
+'vcvttps2dqs',
+'vcvtps2ibs',
+'vcvtps2iubs',
+'vcvttps2ibs',
+'vcvttps2iubs',
+'vcvttps2qqs',
+'vcvttps2udqs',
+'vcvttps2uqqs',
+'vcvttsd2sis',
+'vcvttsd2usis',
+'vcvttss2sis',
+'vcvttss2usis',
+'vminmaxbf16',
+'vminmaxpd',
+'vminmaxph',
+'vminmaxps',
+'vminmaxsd',
+'vminmaxsh',
+'vminmaxss',
+'vdpphps'
 );

+ 214 - 1
compiler/x86_64/x8664int.inc

@@ -364,6 +364,7 @@
 'wbinvd',
 'wrshr',
 'wrmsr',
+'wrmsrns',
 'xadd',
 'xbts',
 'xchg',
@@ -676,6 +677,14 @@
 'aesdeclast',
 'aesimc',
 'aeskeygenassist',
+'aesdec128kl',
+'aesdec256kl',
+'aesenc128kl',
+'aesenc256kl',
+'aesdecwide128kl',
+'aesdecwide256kl',
+'aesencwide128kl',
+'aesencwide256kl',
 'rdtscp',
 'stosq',
 'lodsq',
@@ -1749,5 +1758,209 @@
 'vsqrtsh',
 'vsubph',
 'vsubsh',
-'vucomish'
+'vucomish',
+'movdiri',
+'prefetchrst2',
+'movrs',
+'vmovrsb',
+'vmovrsd',
+'vmovrsq',
+'vmovrsw',
+'aadd',
+'aand',
+'aor',
+'axor',
+'cmpbexadd',
+'cmpbxadd',
+'cmplexadd',
+'cmplxadd',
+'cmpnbexadd',
+'cmpnbxadd',
+'cmpnlexadd',
+'cmpnlxadd',
+'cmpnoxadd',
+'cmpnpxadd',
+'cmpnsxadd',
+'cmpnzxadd',
+'cmpoxadd',
+'cmppxadd',
+'cmpsxadd',
+'cmpzxadd',
+'clui',
+'senduipi',
+'stui',
+'testui',
+'uiret',
+'serialize',
+'urdmsr',
+'uwrmsr',
+'vpdpbssd',
+'vpdpbssds',
+'vpdpbsud',
+'vpdpbsuds',
+'vpdpbuud',
+'vpdpbuuds',
+'vpdpwsud',
+'vpdpwsuds',
+'vpdpwusd',
+'vpdpwusds',
+'vpdpwuud',
+'vpdpwuuds',
+'tdpbf16ps',
+'tdpfp16ps',
+'ldtilecfg',
+'sttilecfg',
+'tileloadd',
+'tileloaddt1',
+'tilerelease',
+'tilestored',
+'tilezero',
+'tdpbssd',
+'tdpbsud',
+'tdpbusd',
+'tdpbuud',
+'t2rpntlvwz0',
+'t2rpntlvwz0t1',
+'t2rpntlvwz1',
+'t2rpntlvwz1t1',
+'t2rpntlvwz0rs',
+'t2rpntlvwz0rst1',
+'t2rpntlvwz1rs',
+'t2rpntlvwz1rst1',
+'tcmmimfp16ps',
+'tcmmrlfp16ps',
+'tconjtcmmimfp16ps',
+'tconjtfp16',
+'tdpbf8ps',
+'tdpbhf8ps',
+'tdphbf8ps',
+'tdphf8ps',
+'tileloaddrs',
+'tileloaddrst1',
+'tmmultf32ps',
+'ttcmmimfp16ps',
+'ttcmmrlfp16ps',
+'ttdpbf16ps',
+'ttdpfp16ps',
+'ttmmultf32ps',
+'ttransposed',
+'tcvtrowd2ps',
+'tcvtrowps2bf16h',
+'tcvtrowps2bf16l',
+'tcvtrowps2phh',
+'tcvtrowps2phl',
+'tilemovrow',
+'vaddbf16',
+'vcmpeqbf16',
+'vcmpltbf16',
+'vcmplebf16',
+'vcmpunordbf16',
+'vcmpneqbf16',
+'vcmpnltbf16',
+'vcmpnlebf16',
+'vcmpordbf16',
+'vcmpeq_uqbf16',
+'vcmpngebf16',
+'vcmpngtbf16',
+'vcmpfalsebf16',
+'vcmpneq_oqbf16',
+'vcmpgebf16',
+'vcmpgtbf16',
+'vcmptruebf16',
+'vcmpeq_osbf16',
+'vcmplt_oqbf16',
+'vcmple_oqbf16',
+'vcmpunord_sbf16',
+'vcmpneq_usbf16',
+'vcmpnlt_uqbf16',
+'vcmpnle_uqbf16',
+'vcmpord_sbf16',
+'vcmpeq_usbf16',
+'vcmpnge_uqbf16',
+'vcmpngt_uqbf16',
+'vcmpfalse_osbf16',
+'vcmpneq_osbf16',
+'vcmpge_oqbf16',
+'vcmpgt_oqbf16',
+'vcmptrue_usbf16',
+'vcmpbf16',
+'vcomisbf16',
+'vdivbf16',
+'vfmadd132bf16',
+'vfmadd213bf16',
+'vfmadd231bf16',
+'vfmsub132bf16',
+'vfmsub213bf16',
+'vfmsub231bf16',
+'vfnmadd132bf16',
+'vfnmadd213bf16',
+'vfnmadd231bf16',
+'vfnmsub132bf16',
+'vfnmsub213bf16',
+'vfnmsub231bf16',
+'vfpclassbf16',
+'vgetexpbf16',
+'vgetmantbf16',
+'vmaxbf16',
+'vminbf16',
+'vmulbf16',
+'vrcpbf16',
+'vreducebf16',
+'vrndscalebf16',
+'vrsqrtbf16',
+'vscalefbf16',
+'vsqrtbf16',
+'vsubbf16',
+'vcomxsd',
+'vcomxsh',
+'vcomxss',
+'vucomxsd',
+'vucomxsh',
+'vucomxss',
+'vcvt2ph2bf8',
+'vcvt2ph2bf8s',
+'vcvt2ph2hf8',
+'vcvt2ph2hf8s',
+'vcvtph2bf8',
+'vcvtph2bf8s',
+'vcvtph2hf8',
+'vcvtph2hf8s',
+'vcvt2ps2phx',
+'vcvtbiasph2bf8',
+'vcvtbiasph2bf8s',
+'vcvtbiasph2hf8',
+'vcvtbiasph2hf8s',
+'vcvthf82ph',
+'vcvtbf162ibs',
+'vcvtbf162iubs',
+'vcvttbf162ibs',
+'vcvttbf162iubs',
+'vcvttpd2dqs',
+'vcvttpd2qqs',
+'vcvttpd2udqs',
+'vcvttpd2uqqs',
+'vcvtph2ibs',
+'vcvtph2iubs',
+'vcvttph2ibs',
+'vcvttph2iubs',
+'vcvttps2dqs',
+'vcvtps2ibs',
+'vcvtps2iubs',
+'vcvttps2ibs',
+'vcvttps2iubs',
+'vcvttps2qqs',
+'vcvttps2udqs',
+'vcvttps2uqqs',
+'vcvttsd2sis',
+'vcvttsd2usis',
+'vcvttss2sis',
+'vcvttss2usis',
+'vminmaxbf16',
+'vminmaxpd',
+'vminmaxph',
+'vminmaxps',
+'vminmaxsd',
+'vminmaxsh',
+'vminmaxss',
+'vdpphps'
 );

+ 1 - 1
compiler/x86_64/x8664nop.inc

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

+ 214 - 1
compiler/x86_64/x8664op.inc

@@ -364,6 +364,7 @@ A_WAIT,
 A_WBINVD,
 A_WRSHR,
 A_WRMSR,
+A_WRMSRNS,
 A_XADD,
 A_XBTS,
 A_XCHG,
@@ -676,6 +677,14 @@ A_AESDEC,
 A_AESDECLAST,
 A_AESIMC,
 A_AESKEYGENASSIST,
+A_AESDEC128KL,
+A_AESDEC256KL,
+A_AESENC128KL,
+A_AESENC256KL,
+A_AESDECWIDE128KL,
+A_AESDECWIDE256KL,
+A_AESENCWIDE128KL,
+A_AESENCWIDE256KL,
 A_RDTSCP,
 A_STOSQ,
 A_LODSQ,
@@ -1749,5 +1758,209 @@ A_VSQRTPH,
 A_VSQRTSH,
 A_VSUBPH,
 A_VSUBSH,
-A_VUCOMISH
+A_VUCOMISH,
+A_MOVDIRI,
+A_PREFETCHRST2,
+A_MOVRS,
+A_VMOVRSB,
+A_VMOVRSD,
+A_VMOVRSQ,
+A_VMOVRSW,
+A_AADD,
+A_AAND,
+A_AOR,
+A_AXOR,
+A_CMPBEXADD,
+A_CMPBXADD,
+A_CMPLEXADD,
+A_CMPLXADD,
+A_CMPNBEXADD,
+A_CMPNBXADD,
+A_CMPNLEXADD,
+A_CMPNLXADD,
+A_CMPNOXADD,
+A_CMPNPXADD,
+A_CMPNSXADD,
+A_CMPNZXADD,
+A_CMPOXADD,
+A_CMPPXADD,
+A_CMPSXADD,
+A_CMPZXADD,
+A_CLUI,
+A_SENDUIPI,
+A_STUI,
+A_TESTUI,
+A_UIRET,
+A_SERIALIZE,
+A_URDMSR,
+A_UWRMSR,
+A_VPDPBSSD,
+A_VPDPBSSDS,
+A_VPDPBSUD,
+A_VPDPBSUDS,
+A_VPDPBUUD,
+A_VPDPBUUDS,
+A_VPDPWSUD,
+A_VPDPWSUDS,
+A_VPDPWUSD,
+A_VPDPWUSDS,
+A_VPDPWUUD,
+A_VPDPWUUDS,
+A_TDPBF16PS,
+A_TDPFP16PS,
+A_LDTILECFG,
+A_STTILECFG,
+A_TILELOADD,
+A_TILELOADDT1,
+A_TILERELEASE,
+A_TILESTORED,
+A_TILEZERO,
+A_TDPBSSD,
+A_TDPBSUD,
+A_TDPBUSD,
+A_TDPBUUD,
+A_T2RPNTLVWZ0,
+A_T2RPNTLVWZ0T1,
+A_T2RPNTLVWZ1,
+A_T2RPNTLVWZ1T1,
+A_T2RPNTLVWZ0RS,
+A_T2RPNTLVWZ0RST1,
+A_T2RPNTLVWZ1RS,
+A_T2RPNTLVWZ1RST1,
+A_TCMMIMFP16PS,
+A_TCMMRLFP16PS,
+A_TCONJTCMMIMFP16PS,
+A_TCONJTFP16,
+A_TDPBF8PS,
+A_TDPBHF8PS,
+A_TDPHBF8PS,
+A_TDPHF8PS,
+A_TILELOADDRS,
+A_TILELOADDRST1,
+A_TMMULTF32PS,
+A_TTCMMIMFP16PS,
+A_TTCMMRLFP16PS,
+A_TTDPBF16PS,
+A_TTDPFP16PS,
+A_TTMMULTF32PS,
+A_TTRANSPOSED,
+A_TCVTROWD2PS,
+A_TCVTROWPS2BF16H,
+A_TCVTROWPS2BF16L,
+A_TCVTROWPS2PHH,
+A_TCVTROWPS2PHL,
+A_TILEMOVROW,
+A_VADDBF16,
+A_VCMPEQBF16,
+A_VCMPLTBF16,
+A_VCMPLEBF16,
+A_VCMPUNORDBF16,
+A_VCMPNEQBF16,
+A_VCMPNLTBF16,
+A_VCMPNLEBF16,
+A_VCMPORDBF16,
+A_VCMPEQ_UQBF16,
+A_VCMPNGEBF16,
+A_VCMPNGTBF16,
+A_VCMPFALSEBF16,
+A_VCMPNEQ_OQBF16,
+A_VCMPGEBF16,
+A_VCMPGTBF16,
+A_VCMPTRUEBF16,
+A_VCMPEQ_OSBF16,
+A_VCMPLT_OQBF16,
+A_VCMPLE_OQBF16,
+A_VCMPUNORD_SBF16,
+A_VCMPNEQ_USBF16,
+A_VCMPNLT_UQBF16,
+A_VCMPNLE_UQBF16,
+A_VCMPORD_SBF16,
+A_VCMPEQ_USBF16,
+A_VCMPNGE_UQBF16,
+A_VCMPNGT_UQBF16,
+A_VCMPFALSE_OSBF16,
+A_VCMPNEQ_OSBF16,
+A_VCMPGE_OQBF16,
+A_VCMPGT_OQBF16,
+A_VCMPTRUE_USBF16,
+A_VCMPBF16,
+A_VCOMISBF16,
+A_VDIVBF16,
+A_VFMADD132BF16,
+A_VFMADD213BF16,
+A_VFMADD231BF16,
+A_VFMSUB132BF16,
+A_VFMSUB213BF16,
+A_VFMSUB231BF16,
+A_VFNMADD132BF16,
+A_VFNMADD213BF16,
+A_VFNMADD231BF16,
+A_VFNMSUB132BF16,
+A_VFNMSUB213BF16,
+A_VFNMSUB231BF16,
+A_VFPCLASSBF16,
+A_VGETEXPBF16,
+A_VGETMANTBF16,
+A_VMAXBF16,
+A_VMINBF16,
+A_VMULBF16,
+A_VRCPBF16,
+A_VREDUCEBF16,
+A_VRNDSCALEBF16,
+A_VRSQRTBF16,
+A_VSCALEFBF16,
+A_VSQRTBF16,
+A_VSUBBF16,
+A_VCOMXSD,
+A_VCOMXSH,
+A_VCOMXSS,
+A_VUCOMXSD,
+A_VUCOMXSH,
+A_VUCOMXSS,
+A_VCVT2PH2BF8,
+A_VCVT2PH2BF8S,
+A_VCVT2PH2HF8,
+A_VCVT2PH2HF8S,
+A_VCVTPH2BF8,
+A_VCVTPH2BF8S,
+A_VCVTPH2HF8,
+A_VCVTPH2HF8S,
+A_VCVT2PS2PHX,
+A_VCVTBIASPH2BF8,
+A_VCVTBIASPH2BF8S,
+A_VCVTBIASPH2HF8,
+A_VCVTBIASPH2HF8S,
+A_VCVTHF82PH,
+A_VCVTBF162IBS,
+A_VCVTBF162IUBS,
+A_VCVTTBF162IBS,
+A_VCVTTBF162IUBS,
+A_VCVTTPD2DQS,
+A_VCVTTPD2QQS,
+A_VCVTTPD2UDQS,
+A_VCVTTPD2UQQS,
+A_VCVTPH2IBS,
+A_VCVTPH2IUBS,
+A_VCVTTPH2IBS,
+A_VCVTTPH2IUBS,
+A_VCVTTPS2DQS,
+A_VCVTPS2IBS,
+A_VCVTPS2IUBS,
+A_VCVTTPS2IBS,
+A_VCVTTPS2IUBS,
+A_VCVTTPS2QQS,
+A_VCVTTPS2UDQS,
+A_VCVTTPS2UQQS,
+A_VCVTTSD2SIS,
+A_VCVTTSD2USIS,
+A_VCVTTSS2SIS,
+A_VCVTTSS2USIS,
+A_VMINMAXBF16,
+A_VMINMAXPD,
+A_VMINMAXPH,
+A_VMINMAXPS,
+A_VMINMAXSD,
+A_VMINMAXSH,
+A_VMINMAXSS,
+A_VDPPHPS
 );

+ 216 - 3
compiler/x86_64/x8664pro.inc

@@ -291,7 +291,7 @@
 (Ch: [Ch_Mop2, Ch_Rop1, Ch_RWCarryFlag, Ch_WOverflowFlag]),
 (Ch: [Ch_Mop2, Ch_Rop1, Ch_RWCarryFlag, Ch_WOverflowFlag]),
 (Ch: [Ch_All]),
-(Ch: [Ch_WEAX, Ch_WEDX]),
+(Ch: [Ch_WEAX, Ch_WEDX, Ch_RECX]),
 (Ch: [Ch_WEAX, Ch_WEDX]),
 (Ch: [Ch_WEAX, Ch_WEDX]),
 (Ch: [Ch_RWECX]),
@@ -363,7 +363,8 @@
 (Ch: []),
 (Ch: []),
 (Ch: [Ch_All]),
-(Ch: [Ch_All]),
+(Ch: [Ch_REAX, Ch_REDX, Ch_RECX]),
+(Ch: [Ch_WEAX, Ch_WEDX, Ch_RECX]),
 (Ch: [Ch_All, Ch_WOverflowFlag, Ch_WSignFlag, Ch_WZeroFlag, Ch_WAuxiliaryFlag, Ch_WCarryFlag, Ch_WParityFlag]),
 (Ch: [Ch_All]),
 (Ch: [Ch_RWop1, Ch_RWop2, Ch_NoReadIfEqualRegs]),
@@ -676,6 +677,14 @@
 (Ch: [Ch_Mop2, Ch_Rop1]),
 (Ch: [Ch_Wop2, Ch_Rop1]),
 (Ch: [Ch_Wop3, Ch_Rop2]),
+(Ch: [Ch_Mop2, Ch_Rop1]),
+(Ch: [Ch_Mop2, Ch_Rop1]),
+(Ch: [Ch_Mop2, Ch_Rop1]),
+(Ch: [Ch_Mop2, Ch_Rop1]),
+(Ch: [Ch_All, Ch_Rop1]),
+(Ch: [Ch_All, Ch_Rop1]),
+(Ch: [Ch_All, Ch_Rop1]),
+(Ch: [Ch_All, Ch_Rop1]),
 (Ch: [Ch_WEAX, Ch_WEDX]),
 (Ch: [Ch_RRAX, Ch_WMemEDI, Ch_RWRDI, Ch_RDirFlag]),
 (Ch: [Ch_WRAX, Ch_RWRSI, Ch_RDirFlag]),
@@ -1749,5 +1758,209 @@
 (Ch: [Ch_Wop3, Ch_Rop2, Ch_Rop1]),
 (Ch: [Ch_Wop3, Ch_Rop2, Ch_Rop1]),
 (Ch: [Ch_Wop3, Ch_Rop2, Ch_Rop1]),
-(Ch: [Ch_Wop2, Ch_Rop1])
+(Ch: [Ch_Wop2, Ch_Rop1]),
+(Ch: [Ch_Wop2, Ch_Rop1]),
+(Ch: [Ch_Rop1]),
+(Ch: [Ch_Wop2, Ch_Rop1]),
+(Ch: [Ch_Wop3, Ch_Rop2, Ch_Rop1]),
+(Ch: [Ch_Wop3, Ch_Rop2, Ch_Rop1]),
+(Ch: [Ch_Wop3, Ch_Rop2, Ch_Rop1]),
+(Ch: [Ch_Wop3, Ch_Rop2, Ch_Rop1]),
+(Ch: [Ch_RWop2, Ch_Rop1]),
+(Ch: [Ch_RWop2, Ch_Rop1]),
+(Ch: [Ch_RWop2, Ch_Rop1]),
+(Ch: [Ch_RWop2, Ch_Rop1]),
+(Ch: [Ch_Wop3, Ch_Rop2, Ch_Rop1]),
+(Ch: [Ch_Wop3, Ch_Rop2, Ch_Rop1]),
+(Ch: [Ch_Wop3, Ch_Rop2, Ch_Rop1]),
+(Ch: [Ch_Wop3, Ch_Rop2, Ch_Rop1]),
+(Ch: [Ch_Wop3, Ch_Rop2, Ch_Rop1]),
+(Ch: [Ch_Wop3, Ch_Rop2, Ch_Rop1]),
+(Ch: [Ch_Wop3, Ch_Rop2, Ch_Rop1]),
+(Ch: [Ch_Wop3, Ch_Rop2, Ch_Rop1]),
+(Ch: [Ch_Wop3, Ch_Rop2, Ch_Rop1]),
+(Ch: [Ch_Wop3, Ch_Rop2, Ch_Rop1]),
+(Ch: [Ch_Wop3, Ch_Rop2, Ch_Rop1]),
+(Ch: [Ch_Wop3, Ch_Rop2, Ch_Rop1]),
+(Ch: [Ch_Wop3, Ch_Rop2, Ch_Rop1]),
+(Ch: [Ch_Wop3, Ch_Rop2, Ch_Rop1]),
+(Ch: [Ch_Wop3, Ch_Rop2, Ch_Rop1]),
+(Ch: [Ch_Wop3, Ch_Rop2, Ch_Rop1]),
+(Ch: []),
+(Ch: [Ch_Rop1]),
+(Ch: []),
+(Ch: [Ch_WCarryFlag,Ch_W0ParityFlag,Ch_W0AuxiliaryFlag,Ch_W0ZeroFlag,Ch_W0SignFlag,Ch_W0OverflowFlag]),
+(Ch: [Ch_All]),
+(Ch: []),
+(Ch: [Ch_Wop2, Ch_Rop1]),
+(Ch: [Ch_Rop2, Ch_Rop1]),
+(Ch: [Ch_Wop3, Ch_Rop2, Ch_Rop1]),
+(Ch: [Ch_Wop3, Ch_Rop2, Ch_Rop1]),
+(Ch: [Ch_Wop3, Ch_Rop2, Ch_Rop1]),
+(Ch: [Ch_Wop3, Ch_Rop2, Ch_Rop1]),
+(Ch: [Ch_Wop3, Ch_Rop2, Ch_Rop1]),
+(Ch: [Ch_Wop3, Ch_Rop2, Ch_Rop1]),
+(Ch: [Ch_Wop3, Ch_Rop2, Ch_Rop1]),
+(Ch: [Ch_Wop3, Ch_Rop2, Ch_Rop1]),
+(Ch: [Ch_Wop3, Ch_Rop2, Ch_Rop1]),
+(Ch: [Ch_Wop3, Ch_Rop2, Ch_Rop1]),
+(Ch: [Ch_Wop3, Ch_Rop2, Ch_Rop1]),
+(Ch: [Ch_Wop3, Ch_Rop2, Ch_Rop1]),
+(Ch: [Ch_Wop3, Ch_Rop2, Ch_Rop1]),
+(Ch: [Ch_Wop3, Ch_Rop2, Ch_Rop1]),
+(Ch: [Ch_Rop1]),
+(Ch: [Ch_Wop1]),
+(Ch: [Ch_Wop2, Ch_Rop1]),
+(Ch: [Ch_Wop2, Ch_Rop1]),
+(Ch: []),
+(Ch: [Ch_Wop2, Ch_Rop1]),
+(Ch: [Ch_Wop1]),
+(Ch: [Ch_Wop3, Ch_Rop2, Ch_Rop1]),
+(Ch: [Ch_Wop3, Ch_Rop2, Ch_Rop1]),
+(Ch: [Ch_Wop3, Ch_Rop2, Ch_Rop1]),
+(Ch: [Ch_Wop3, Ch_Rop2, Ch_Rop1]),
+(Ch: [Ch_Wop2, Ch_Rop1]),
+(Ch: [Ch_Wop2, Ch_Rop1]),
+(Ch: [Ch_Wop2, Ch_Rop1]),
+(Ch: [Ch_Wop2, Ch_Rop1]),
+(Ch: [Ch_Wop2, Ch_Rop1]),
+(Ch: [Ch_Wop2, Ch_Rop1]),
+(Ch: [Ch_Wop2, Ch_Rop1]),
+(Ch: [Ch_Wop2, Ch_Rop1]),
+(Ch: [Ch_RWop3, Ch_Rop2, Ch_Rop1]),
+(Ch: [Ch_RWop3, Ch_Rop2, Ch_Rop1]),
+(Ch: [Ch_RWop3, Ch_Rop2, Ch_Rop1]),
+(Ch: [Ch_Wop2, Ch_Rop1]),
+(Ch: [Ch_RWop3, Ch_Rop2, Ch_Rop1]),
+(Ch: [Ch_RWop3, Ch_Rop2, Ch_Rop1]),
+(Ch: [Ch_RWop3, Ch_Rop2, Ch_Rop1]),
+(Ch: [Ch_RWop3, Ch_Rop2, Ch_Rop1]),
+(Ch: [Ch_Wop2, Ch_Rop1]),
+(Ch: [Ch_Wop2, Ch_Rop1]),
+(Ch: [Ch_RWop3, Ch_Rop2, Ch_Rop1]),
+(Ch: [Ch_RWop3, Ch_Rop2, Ch_Rop1]),
+(Ch: [Ch_RWop3, Ch_Rop2, Ch_Rop1]),
+(Ch: [Ch_RWop3, Ch_Rop2, Ch_Rop1]),
+(Ch: [Ch_RWop3, Ch_Rop2, Ch_Rop1]),
+(Ch: [Ch_RWop3, Ch_Rop2, Ch_Rop1]),
+(Ch: [Ch_Wop2, Ch_Rop1]),
+(Ch: [Ch_Wop3, Ch_Rop2, Ch_Rop1]),
+(Ch: [Ch_Wop3, Ch_Rop2, Ch_Rop1]),
+(Ch: [Ch_Wop3, Ch_Rop2, Ch_Rop1]),
+(Ch: [Ch_Wop3, Ch_Rop2, Ch_Rop1]),
+(Ch: [Ch_Wop3, Ch_Rop2, Ch_Rop1]),
+(Ch: [Ch_Wop3, Ch_Rop2, Ch_Rop1]),
+(Ch: [Ch_Wop3, Ch_Rop2, Ch_Rop1]),
+(Ch: [Ch_Wop3, Ch_Rop2, Ch_Rop1]),
+(Ch: [Ch_Wop3, Ch_Rop2, Ch_Rop1]),
+(Ch: [Ch_Wop3, Ch_Rop2, Ch_Rop1]),
+(Ch: [Ch_Wop3, Ch_Rop2, Ch_Rop1]),
+(Ch: [Ch_Wop3, Ch_Rop2, Ch_Rop1]),
+(Ch: [Ch_Wop3, Ch_Rop2, Ch_Rop1]),
+(Ch: [Ch_Wop3, Ch_Rop2, Ch_Rop1]),
+(Ch: [Ch_Wop3, Ch_Rop2, Ch_Rop1]),
+(Ch: [Ch_Wop3, Ch_Rop2, Ch_Rop1]),
+(Ch: [Ch_Wop3, Ch_Rop2, Ch_Rop1]),
+(Ch: [Ch_Wop3, Ch_Rop2, Ch_Rop1]),
+(Ch: [Ch_Wop3, Ch_Rop2, Ch_Rop1]),
+(Ch: [Ch_Wop3, Ch_Rop2, Ch_Rop1]),
+(Ch: [Ch_Wop3, Ch_Rop2, Ch_Rop1]),
+(Ch: [Ch_Wop3, Ch_Rop2, Ch_Rop1]),
+(Ch: [Ch_Wop3, Ch_Rop2, Ch_Rop1]),
+(Ch: [Ch_Wop3, Ch_Rop2, Ch_Rop1]),
+(Ch: [Ch_Wop3, Ch_Rop2, Ch_Rop1]),
+(Ch: [Ch_Wop3, Ch_Rop2, Ch_Rop1]),
+(Ch: [Ch_Wop3, Ch_Rop2, Ch_Rop1]),
+(Ch: [Ch_Wop3, Ch_Rop2, Ch_Rop1]),
+(Ch: [Ch_Wop3, Ch_Rop2, Ch_Rop1]),
+(Ch: [Ch_Wop3, Ch_Rop2, Ch_Rop1]),
+(Ch: [Ch_Wop3, Ch_Rop2, Ch_Rop1]),
+(Ch: [Ch_Wop3, Ch_Rop2, Ch_Rop1]),
+(Ch: [Ch_Wop3, Ch_Rop2, Ch_Rop1]),
+(Ch: [Ch_Wop3, Ch_Rop2, Ch_Rop1]),
+(Ch: [Ch_Wop3, Ch_Rop2, Ch_Rop1]),
+(Ch: [Ch_Wop3, Ch_Rop2, Ch_Rop1]),
+(Ch: [Ch_Wop3, Ch_Rop2, Ch_Rop1]),
+(Ch: [Ch_Wop3, Ch_Rop2, Ch_Rop1]),
+(Ch: [Ch_Wop3, Ch_Rop2, Ch_Rop1]),
+(Ch: [Ch_Wop4, Ch_Rop3, Ch_Rop2]),
+(Ch: [Ch_Wop3, Ch_Rop2, Ch_Rop1]),
+(Ch: [Ch_Wop3, Ch_Rop2, Ch_Rop1]),
+(Ch: [Ch_Wop3, Ch_Rop2, Ch_Rop1]),
+(Ch: [Ch_Wop3, Ch_Rop2, Ch_Rop1]),
+(Ch: [Ch_Wop3, Ch_Rop2, Ch_Rop1]),
+(Ch: [Ch_Wop3, Ch_Rop2, Ch_Rop1]),
+(Ch: [Ch_Wop3, Ch_Rop2, Ch_Rop1]),
+(Ch: [Ch_Wop3, Ch_Rop2, Ch_Rop1]),
+(Ch: [Ch_Wop3, Ch_Rop2, Ch_Rop1]),
+(Ch: [Ch_Wop3, Ch_Rop2, Ch_Rop1]),
+(Ch: [Ch_Wop3, Ch_Rop2, Ch_Rop1]),
+(Ch: [Ch_Wop3, Ch_Rop2, Ch_Rop1]),
+(Ch: [Ch_Wop3, Ch_Rop2, Ch_Rop1]),
+(Ch: [Ch_Wop3, Ch_Rop2, Ch_Rop1]),
+(Ch: [Ch_Wop3, Ch_Rop2, Ch_Rop1]),
+(Ch: [Ch_Wop2, Ch_Rop1]),
+(Ch: [Ch_Wop3, Ch_Rop2, Ch_Rop1]),
+(Ch: [Ch_Wop3, Ch_Rop2, Ch_Rop1]),
+(Ch: [Ch_Wop3, Ch_Rop2, Ch_Rop1]),
+(Ch: [Ch_Wop3, Ch_Rop2, Ch_Rop1]),
+(Ch: [Ch_Wop2, Ch_Rop1]),
+(Ch: [Ch_Wop3, Ch_Rop2, Ch_Rop1]),
+(Ch: [Ch_Wop3, Ch_Rop2, Ch_Rop1]),
+(Ch: [Ch_Wop2, Ch_Rop1]),
+(Ch: [Ch_Wop3, Ch_Rop2, Ch_Rop1]),
+(Ch: [Ch_Wop2, Ch_Rop1]),
+(Ch: [Ch_Wop3, Ch_Rop2, Ch_Rop1]),
+(Ch: [Ch_Rop2, Ch_Rop1, Ch_WOverflowFlag, Ch_WSignFlag, Ch_WZeroFlag, Ch_W0AuxiliaryFlag, Ch_WCarryFlag, Ch_WParityFlag]),
+(Ch: [Ch_Rop2, Ch_Rop1, Ch_WOverflowFlag, Ch_WSignFlag, Ch_WZeroFlag, Ch_W0AuxiliaryFlag, Ch_WCarryFlag, Ch_WParityFlag]),
+(Ch: [Ch_Rop2, Ch_Rop1, Ch_WOverflowFlag, Ch_WSignFlag, Ch_WZeroFlag, Ch_W0AuxiliaryFlag, Ch_WCarryFlag, Ch_WParityFlag]),
+(Ch: [Ch_Rop2, Ch_Rop1, Ch_WOverflowFlag, Ch_WSignFlag, Ch_WZeroFlag, Ch_W0AuxiliaryFlag, Ch_WCarryFlag, Ch_WParityFlag]),
+(Ch: [Ch_Rop2, Ch_Rop1, Ch_WOverflowFlag, Ch_WSignFlag, Ch_WZeroFlag, Ch_W0AuxiliaryFlag, Ch_WCarryFlag, Ch_WParityFlag]),
+(Ch: [Ch_Rop2, Ch_Rop1, Ch_WOverflowFlag, Ch_WSignFlag, Ch_WZeroFlag, Ch_W0AuxiliaryFlag, Ch_WCarryFlag, Ch_WParityFlag]),
+(Ch: [Ch_Wop3, Ch_Rop2, Ch_Rop1]),
+(Ch: [Ch_Wop3, Ch_Rop2, Ch_Rop1]),
+(Ch: [Ch_Wop3, Ch_Rop2, Ch_Rop1]),
+(Ch: [Ch_Wop3, Ch_Rop2, Ch_Rop1]),
+(Ch: [Ch_Wop2, Ch_Rop1]),
+(Ch: [Ch_Wop2, Ch_Rop1]),
+(Ch: [Ch_Wop2, Ch_Rop1]),
+(Ch: [Ch_Wop2, Ch_Rop1]),
+(Ch: [Ch_Wop3, Ch_Rop2, Ch_Rop1]),
+(Ch: [Ch_Wop3, Ch_Rop2, Ch_Rop1]),
+(Ch: [Ch_Wop3, Ch_Rop2, Ch_Rop1]),
+(Ch: [Ch_Wop3, Ch_Rop2, Ch_Rop1]),
+(Ch: [Ch_Wop3, Ch_Rop2, Ch_Rop1]),
+(Ch: [Ch_Wop2, Ch_Rop1]),
+(Ch: [Ch_Wop2, Ch_Rop1]),
+(Ch: [Ch_Wop2, Ch_Rop1]),
+(Ch: [Ch_Wop2, Ch_Rop1]),
+(Ch: [Ch_Wop2, Ch_Rop1]),
+(Ch: [Ch_Wop2, Ch_Rop1]),
+(Ch: [Ch_Wop2, Ch_Rop1]),
+(Ch: [Ch_Wop2, Ch_Rop1]),
+(Ch: [Ch_Wop2, Ch_Rop1]),
+(Ch: [Ch_Wop2, Ch_Rop1]),
+(Ch: [Ch_Wop2, Ch_Rop1]),
+(Ch: [Ch_Wop2, Ch_Rop1]),
+(Ch: [Ch_Wop2, Ch_Rop1]),
+(Ch: [Ch_Wop2, Ch_Rop1]),
+(Ch: [Ch_Wop2, Ch_Rop1]),
+(Ch: [Ch_Wop2, Ch_Rop1]),
+(Ch: [Ch_Wop2, Ch_Rop1]),
+(Ch: [Ch_Wop2, Ch_Rop1]),
+(Ch: [Ch_Wop2, Ch_Rop1]),
+(Ch: [Ch_Wop2, Ch_Rop1]),
+(Ch: [Ch_Wop2, Ch_Rop1]),
+(Ch: [Ch_Wop2, Ch_Rop1]),
+(Ch: [Ch_Wop2, Ch_Rop1]),
+(Ch: [Ch_Wop2, Ch_Rop1]),
+(Ch: [Ch_Wop2, Ch_Rop1]),
+(Ch: [Ch_Wop4, Ch_Rop3, Ch_Rop2]),
+(Ch: [Ch_Wop4, Ch_Rop3, Ch_Rop2]),
+(Ch: [Ch_Wop4, Ch_Rop3, Ch_Rop2]),
+(Ch: [Ch_Wop4, Ch_Rop3, Ch_Rop2]),
+(Ch: [Ch_Wop4, Ch_Rop3, Ch_Rop2]),
+(Ch: [Ch_Wop4, Ch_Rop3, Ch_Rop2]),
+(Ch: [Ch_Wop4, Ch_Rop3, Ch_Rop2]),
+(Ch: [Ch_Wop3, Ch_Rop2, Ch_Rop1])
 );

File diff suppressed because it is too large
+ 430 - 80
compiler/x86_64/x8664tab.inc


Some files were not shown because too many files changed in this diff