diff --git a/compiler/i386/i386att.inc b/compiler/i386/i386att.inc index a7e15fb935..68ec910597 100644 --- a/compiler/i386/i386att.inc +++ b/compiler/i386/i386att.inc @@ -739,6 +739,38 @@ 'vcmpge_oqps', 'vcmpgt_oqps', 'vcmptrue_usps', +'vcmpeqpd', +'vcmpltpd', +'vcmplepd', +'vcmpunordpd', +'vcmpneqpd', +'vcmpnltpd', +'vcmpnlepd', +'vcmpordpd', +'vcmpeq_uqpd', +'vcmpngepd', +'vcmpngtpd', +'vcmpfalsepd', +'vcmpneq_oqpd', +'vcmpgepd', +'vcmpgtpd', +'vcmptruepd', +'vcmpeq_ospd', +'vcmplt_oqpd', +'vcmple_oqpd', +'vcmpunord_spd', +'vcmpneq_uspd', +'vcmpnlt_uqpd', +'vcmpnle_uqpd', +'vcmpord_spd', +'vcmpeq_uspd', +'vcmpnge_uqpd', +'vcmpngt_uqpd', +'vcmpfalse_ospd', +'vcmpneq_ospd', +'vcmpge_oqpd', +'vcmpgt_oqpd', +'vcmptrue_uspd', 'vcmppd', 'vcmpps', 'vcmpsd', diff --git a/compiler/i386/i386atts.inc b/compiler/i386/i386atts.inc index 393a807328..3d9024c499 100644 --- a/compiler/i386/i386atts.inc +++ b/compiler/i386/i386atts.inc @@ -747,6 +747,38 @@ 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, attsufMM, attsufMM, attsufNONE, diff --git a/compiler/i386/i386int.inc b/compiler/i386/i386int.inc index 60c899513d..99061e8412 100644 --- a/compiler/i386/i386int.inc +++ b/compiler/i386/i386int.inc @@ -739,6 +739,38 @@ 'vcmpge_oqps', 'vcmpgt_oqps', 'vcmptrue_usps', +'vcmpeqpd', +'vcmpltpd', +'vcmplepd', +'vcmpunordpd', +'vcmpneqpd', +'vcmpnltpd', +'vcmpnlepd', +'vcmpordpd', +'vcmpeq_uqpd', +'vcmpngepd', +'vcmpngtpd', +'vcmpfalsepd', +'vcmpneq_oqpd', +'vcmpgepd', +'vcmpgtpd', +'vcmptruepd', +'vcmpeq_ospd', +'vcmplt_oqpd', +'vcmple_oqpd', +'vcmpunord_spd', +'vcmpneq_uspd', +'vcmpnlt_uqpd', +'vcmpnle_uqpd', +'vcmpord_spd', +'vcmpeq_uspd', +'vcmpnge_uqpd', +'vcmpngt_uqpd', +'vcmpfalse_ospd', +'vcmpneq_ospd', +'vcmpge_oqpd', +'vcmpgt_oqpd', +'vcmptrue_uspd', 'vcmppd', 'vcmpps', 'vcmpsd', diff --git a/compiler/i386/i386nop.inc b/compiler/i386/i386nop.inc index 6a99407a1f..9e0fad8df4 100644 --- a/compiler/i386/i386nop.inc +++ b/compiler/i386/i386nop.inc @@ -1,2 +1,2 @@ { don't edit, this file is generated from x86ins.dat } -2053; +2117; diff --git a/compiler/i386/i386op.inc b/compiler/i386/i386op.inc index c1da64e080..ebbdd236c8 100644 --- a/compiler/i386/i386op.inc +++ b/compiler/i386/i386op.inc @@ -739,6 +739,38 @@ A_VCMPNEQ_OSPS, A_VCMPGE_OQPS, A_VCMPGT_OQPS, A_VCMPTRUE_USPS, +A_VCMPEQPD, +A_VCMPLTPD, +A_VCMPLEPD, +A_VCMPUNORDPD, +A_VCMPNEQPD, +A_VCMPNLTPD, +A_VCMPNLEPD, +A_VCMPORDPD, +A_VCMPEQ_UQPD, +A_VCMPNGEPD, +A_VCMPNGTPD, +A_VCMPFALSEPD, +A_VCMPNEQ_OQPD, +A_VCMPGEPD, +A_VCMPGTPD, +A_VCMPTRUEPD, +A_VCMPEQ_OSPD, +A_VCMPLT_OQPD, +A_VCMPLE_OQPD, +A_VCMPUNORD_SPD, +A_VCMPNEQ_USPD, +A_VCMPNLT_UQPD, +A_VCMPNLE_UQPD, +A_VCMPORD_SPD, +A_VCMPEQ_USPD, +A_VCMPNGE_UQPD, +A_VCMPNGT_UQPD, +A_VCMPFALSE_OSPD, +A_VCMPNEQ_OSPD, +A_VCMPGE_OQPD, +A_VCMPGT_OQPD, +A_VCMPTRUE_USPD, A_VCMPPD, A_VCMPPS, A_VCMPSD, diff --git a/compiler/i386/i386prop.inc b/compiler/i386/i386prop.inc index 34fd48a092..1b19212a46 100644 --- a/compiler/i386/i386prop.inc +++ b/compiler/i386/i386prop.inc @@ -743,6 +743,38 @@ (Ch: [Ch_All]), (Ch: [Ch_All]), (Ch: [Ch_All]), +(Ch: [Ch_All]), +(Ch: [Ch_All]), +(Ch: [Ch_All]), +(Ch: [Ch_All]), +(Ch: [Ch_All]), +(Ch: [Ch_All]), +(Ch: [Ch_All]), +(Ch: [Ch_All]), +(Ch: [Ch_All]), +(Ch: [Ch_All]), +(Ch: [Ch_All]), +(Ch: [Ch_All]), +(Ch: [Ch_All]), +(Ch: [Ch_All]), +(Ch: [Ch_All]), +(Ch: [Ch_All]), +(Ch: [Ch_All]), +(Ch: [Ch_All]), +(Ch: [Ch_All]), +(Ch: [Ch_All]), +(Ch: [Ch_All]), +(Ch: [Ch_All]), +(Ch: [Ch_All]), +(Ch: [Ch_All]), +(Ch: [Ch_All]), +(Ch: [Ch_All]), +(Ch: [Ch_All]), +(Ch: [Ch_All]), +(Ch: [Ch_All]), +(Ch: [Ch_All]), +(Ch: [Ch_All]), +(Ch: [Ch_All]), (Ch: [Ch_Rop1, Ch_Rop2, Ch_WFlags]), (Ch: [Ch_Rop1, Ch_Rop2, Ch_WFlags]), (Ch: [Ch_Wop2, Ch_Rop1]), diff --git a/compiler/i386/i386tab.inc b/compiler/i386/i386tab.inc index 694977513a..7f5cd96ab9 100644 --- a/compiler/i386/i386tab.inc +++ b/compiler/i386/i386tab.inc @@ -9443,6 +9443,454 @@ code : #242#244#248#1#194#61#80#1#31; flags : [if_avx,if_sandybridge] ), + ( + opcode : A_VCMPEQPD; + ops : 3; + optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none); + code : #241#242#248#1#194#61#80#1#0; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPEQPD; + ops : 3; + optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none); + code : #241#242#244#248#1#194#61#80#1#0; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPLTPD; + ops : 3; + optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none); + code : #241#242#248#1#194#61#80#1#1; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPLTPD; + ops : 3; + optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none); + code : #241#242#244#248#1#194#61#80#1#1; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPLEPD; + ops : 3; + optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none); + code : #241#242#248#1#194#61#80#1#2; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPLEPD; + ops : 3; + optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none); + code : #241#242#244#248#1#194#61#80#1#2; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPUNORDPD; + ops : 3; + optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none); + code : #241#242#248#1#194#61#80#1#3; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPUNORDPD; + ops : 3; + optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none); + code : #241#242#244#248#1#194#61#80#1#3; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPNEQPD; + ops : 3; + optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none); + code : #241#242#248#1#194#61#80#1#4; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPNEQPD; + ops : 3; + optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none); + code : #241#242#244#248#1#194#61#80#1#4; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPNLTPD; + ops : 3; + optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none); + code : #241#242#248#1#194#61#80#1#5; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPNLTPD; + ops : 3; + optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none); + code : #241#242#244#248#1#194#61#80#1#5; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPNLEPD; + ops : 3; + optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none); + code : #241#242#248#1#194#61#80#1#6; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPNLEPD; + ops : 3; + optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none); + code : #241#242#244#248#1#194#61#80#1#6; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPORDPD; + ops : 3; + optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none); + code : #241#242#248#1#194#61#80#1#7; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPORDPD; + ops : 3; + optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none); + code : #241#242#244#248#1#194#61#80#1#7; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPEQ_UQPD; + ops : 3; + optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none); + code : #241#242#248#1#194#61#80#1#8; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPEQ_UQPD; + ops : 3; + optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none); + code : #241#242#244#248#1#194#61#80#1#8; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPNGEPD; + ops : 3; + optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none); + code : #241#242#248#1#194#61#80#1#9; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPNGEPD; + ops : 3; + optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none); + code : #241#242#244#248#1#194#61#80#1#9; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPNGTPD; + ops : 3; + optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none); + code : #241#242#248#1#194#61#80#1#10; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPNGTPD; + ops : 3; + optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none); + code : #241#242#244#248#1#194#61#80#1#10; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPFALSEPD; + ops : 3; + optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none); + code : #241#242#248#1#194#61#80#1#11; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPFALSEPD; + ops : 3; + optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none); + code : #241#242#244#248#1#194#61#80#1#11; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPNEQ_OQPD; + ops : 3; + optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none); + code : #241#242#248#1#194#61#80#1#12; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPNEQ_OQPD; + ops : 3; + optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none); + code : #241#242#244#248#1#194#61#80#1#12; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPGEPD; + ops : 3; + optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none); + code : #241#242#248#1#194#61#80#1#13; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPGEPD; + ops : 3; + optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none); + code : #241#242#244#248#1#194#61#80#1#13; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPGTPD; + ops : 3; + optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none); + code : #241#242#248#1#194#61#80#1#14; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPGTPD; + ops : 3; + optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none); + code : #241#242#244#248#1#194#61#80#1#14; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPTRUEPD; + ops : 3; + optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none); + code : #241#242#248#1#194#61#80#1#15; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPTRUEPD; + ops : 3; + optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none); + code : #241#242#244#248#1#194#61#80#1#15; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPEQ_OSPD; + ops : 3; + optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none); + code : #241#242#248#1#194#61#80#1#16; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPEQ_OSPD; + ops : 3; + optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none); + code : #241#242#244#248#1#194#61#80#1#16; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPLT_OQPD; + ops : 3; + optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none); + code : #241#242#248#1#194#61#80#1#17; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPLT_OQPD; + ops : 3; + optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none); + code : #241#242#244#248#1#194#61#80#1#17; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPLE_OQPD; + ops : 3; + optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none); + code : #241#242#248#1#194#61#80#1#18; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPLE_OQPD; + ops : 3; + optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none); + code : #241#242#244#248#1#194#61#80#1#18; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPUNORD_SPD; + ops : 3; + optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none); + code : #241#242#248#1#194#61#80#1#19; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPUNORD_SPD; + ops : 3; + optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none); + code : #241#242#244#248#1#194#61#80#1#19; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPNEQ_USPD; + ops : 3; + optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none); + code : #241#242#248#1#194#61#80#1#20; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPNEQ_USPD; + ops : 3; + optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none); + code : #241#242#244#248#1#194#61#80#1#20; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPNLT_UQPD; + ops : 3; + optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none); + code : #241#242#248#1#194#61#80#1#21; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPNLT_UQPD; + ops : 3; + optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none); + code : #241#242#244#248#1#194#61#80#1#21; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPNLE_UQPD; + ops : 3; + optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none); + code : #241#242#248#1#194#61#80#1#22; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPNLE_UQPD; + ops : 3; + optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none); + code : #241#242#244#248#1#194#61#80#1#22; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPORD_SPD; + ops : 3; + optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none); + code : #241#242#248#1#194#61#80#1#23; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPORD_SPD; + ops : 3; + optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none); + code : #241#242#244#248#1#194#61#80#1#23; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPEQ_USPD; + ops : 3; + optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none); + code : #241#242#248#1#194#61#80#1#24; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPEQ_USPD; + ops : 3; + optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none); + code : #241#242#244#248#1#194#61#80#1#24; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPNGE_UQPD; + ops : 3; + optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none); + code : #241#242#248#1#194#61#80#1#25; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPNGE_UQPD; + ops : 3; + optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none); + code : #241#242#244#248#1#194#61#80#1#25; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPNGT_UQPD; + ops : 3; + optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none); + code : #241#242#248#1#194#61#80#1#26; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPNGT_UQPD; + ops : 3; + optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none); + code : #241#242#244#248#1#194#61#80#1#26; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPFALSE_OSPD; + ops : 3; + optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none); + code : #241#242#248#1#194#61#80#1#27; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPFALSE_OSPD; + ops : 3; + optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none); + code : #241#242#244#248#1#194#61#80#1#27; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPNEQ_OSPD; + ops : 3; + optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none); + code : #241#242#248#1#194#61#80#1#28; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPNEQ_OSPD; + ops : 3; + optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none); + code : #241#242#244#248#1#194#61#80#1#28; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPGE_OQPD; + ops : 3; + optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none); + code : #241#242#248#1#194#61#80#1#29; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPGE_OQPD; + ops : 3; + optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none); + code : #241#242#244#248#1#194#61#80#1#29; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPGT_OQPD; + ops : 3; + optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none); + code : #241#242#248#1#194#61#80#1#30; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPGT_OQPD; + ops : 3; + optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none); + code : #241#242#244#248#1#194#61#80#1#30; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPTRUE_USPD; + ops : 3; + optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none); + code : #241#242#248#1#194#61#80#1#31; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPTRUE_USPD; + ops : 3; + optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none); + code : #241#242#244#248#1#194#61#80#1#31; + flags : [if_avx,if_sandybridge] + ), ( opcode : A_VCMPPD; ops : 4; diff --git a/compiler/i8086/i8086att.inc b/compiler/i8086/i8086att.inc index e5ad938140..48122eada8 100644 --- a/compiler/i8086/i8086att.inc +++ b/compiler/i8086/i8086att.inc @@ -739,6 +739,38 @@ 'vcmpge_oqps', 'vcmpgt_oqps', 'vcmptrue_usps', +'vcmpeqpd', +'vcmpltpd', +'vcmplepd', +'vcmpunordpd', +'vcmpneqpd', +'vcmpnltpd', +'vcmpnlepd', +'vcmpordpd', +'vcmpeq_uqpd', +'vcmpngepd', +'vcmpngtpd', +'vcmpfalsepd', +'vcmpneq_oqpd', +'vcmpgepd', +'vcmpgtpd', +'vcmptruepd', +'vcmpeq_ospd', +'vcmplt_oqpd', +'vcmple_oqpd', +'vcmpunord_spd', +'vcmpneq_uspd', +'vcmpnlt_uqpd', +'vcmpnle_uqpd', +'vcmpord_spd', +'vcmpeq_uspd', +'vcmpnge_uqpd', +'vcmpngt_uqpd', +'vcmpfalse_ospd', +'vcmpneq_ospd', +'vcmpge_oqpd', +'vcmpgt_oqpd', +'vcmptrue_uspd', 'vcmppd', 'vcmpps', 'vcmpsd', diff --git a/compiler/i8086/i8086atts.inc b/compiler/i8086/i8086atts.inc index 0c4ef5a3a1..a920ca7ef1 100644 --- a/compiler/i8086/i8086atts.inc +++ b/compiler/i8086/i8086atts.inc @@ -747,6 +747,38 @@ 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, attsufMM, attsufMM, attsufNONE, diff --git a/compiler/i8086/i8086int.inc b/compiler/i8086/i8086int.inc index 6181a21090..6aaa02b6c3 100644 --- a/compiler/i8086/i8086int.inc +++ b/compiler/i8086/i8086int.inc @@ -739,6 +739,38 @@ 'vcmpge_oqps', 'vcmpgt_oqps', 'vcmptrue_usps', +'vcmpeqpd', +'vcmpltpd', +'vcmplepd', +'vcmpunordpd', +'vcmpneqpd', +'vcmpnltpd', +'vcmpnlepd', +'vcmpordpd', +'vcmpeq_uqpd', +'vcmpngepd', +'vcmpngtpd', +'vcmpfalsepd', +'vcmpneq_oqpd', +'vcmpgepd', +'vcmpgtpd', +'vcmptruepd', +'vcmpeq_ospd', +'vcmplt_oqpd', +'vcmple_oqpd', +'vcmpunord_spd', +'vcmpneq_uspd', +'vcmpnlt_uqpd', +'vcmpnle_uqpd', +'vcmpord_spd', +'vcmpeq_uspd', +'vcmpnge_uqpd', +'vcmpngt_uqpd', +'vcmpfalse_ospd', +'vcmpneq_ospd', +'vcmpge_oqpd', +'vcmpgt_oqpd', +'vcmptrue_uspd', 'vcmppd', 'vcmpps', 'vcmpsd', diff --git a/compiler/i8086/i8086nop.inc b/compiler/i8086/i8086nop.inc index 08c6963b9a..3edc5df1f5 100644 --- a/compiler/i8086/i8086nop.inc +++ b/compiler/i8086/i8086nop.inc @@ -1,2 +1,2 @@ { don't edit, this file is generated from x86ins.dat } -2085; +2149; diff --git a/compiler/i8086/i8086op.inc b/compiler/i8086/i8086op.inc index 3315c37fec..e72640742e 100644 --- a/compiler/i8086/i8086op.inc +++ b/compiler/i8086/i8086op.inc @@ -739,6 +739,38 @@ A_VCMPNEQ_OSPS, A_VCMPGE_OQPS, A_VCMPGT_OQPS, A_VCMPTRUE_USPS, +A_VCMPEQPD, +A_VCMPLTPD, +A_VCMPLEPD, +A_VCMPUNORDPD, +A_VCMPNEQPD, +A_VCMPNLTPD, +A_VCMPNLEPD, +A_VCMPORDPD, +A_VCMPEQ_UQPD, +A_VCMPNGEPD, +A_VCMPNGTPD, +A_VCMPFALSEPD, +A_VCMPNEQ_OQPD, +A_VCMPGEPD, +A_VCMPGTPD, +A_VCMPTRUEPD, +A_VCMPEQ_OSPD, +A_VCMPLT_OQPD, +A_VCMPLE_OQPD, +A_VCMPUNORD_SPD, +A_VCMPNEQ_USPD, +A_VCMPNLT_UQPD, +A_VCMPNLE_UQPD, +A_VCMPORD_SPD, +A_VCMPEQ_USPD, +A_VCMPNGE_UQPD, +A_VCMPNGT_UQPD, +A_VCMPFALSE_OSPD, +A_VCMPNEQ_OSPD, +A_VCMPGE_OQPD, +A_VCMPGT_OQPD, +A_VCMPTRUE_USPD, A_VCMPPD, A_VCMPPS, A_VCMPSD, diff --git a/compiler/i8086/i8086prop.inc b/compiler/i8086/i8086prop.inc index 03cb00551a..8da688f713 100644 --- a/compiler/i8086/i8086prop.inc +++ b/compiler/i8086/i8086prop.inc @@ -743,6 +743,38 @@ (Ch: [Ch_All]), (Ch: [Ch_All]), (Ch: [Ch_All]), +(Ch: [Ch_All]), +(Ch: [Ch_All]), +(Ch: [Ch_All]), +(Ch: [Ch_All]), +(Ch: [Ch_All]), +(Ch: [Ch_All]), +(Ch: [Ch_All]), +(Ch: [Ch_All]), +(Ch: [Ch_All]), +(Ch: [Ch_All]), +(Ch: [Ch_All]), +(Ch: [Ch_All]), +(Ch: [Ch_All]), +(Ch: [Ch_All]), +(Ch: [Ch_All]), +(Ch: [Ch_All]), +(Ch: [Ch_All]), +(Ch: [Ch_All]), +(Ch: [Ch_All]), +(Ch: [Ch_All]), +(Ch: [Ch_All]), +(Ch: [Ch_All]), +(Ch: [Ch_All]), +(Ch: [Ch_All]), +(Ch: [Ch_All]), +(Ch: [Ch_All]), +(Ch: [Ch_All]), +(Ch: [Ch_All]), +(Ch: [Ch_All]), +(Ch: [Ch_All]), +(Ch: [Ch_All]), +(Ch: [Ch_All]), (Ch: [Ch_Rop1, Ch_Rop2, Ch_WFlags]), (Ch: [Ch_Rop1, Ch_Rop2, Ch_WFlags]), (Ch: [Ch_Wop2, Ch_Rop1]), diff --git a/compiler/i8086/i8086tab.inc b/compiler/i8086/i8086tab.inc index 1a7face29b..0e86e7469d 100644 --- a/compiler/i8086/i8086tab.inc +++ b/compiler/i8086/i8086tab.inc @@ -9471,6 +9471,454 @@ code : #242#244#248#1#194#61#80#1#31; flags : [if_avx,if_sandybridge] ), + ( + opcode : A_VCMPEQPD; + ops : 3; + optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none); + code : #241#242#248#1#194#61#80#1#0; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPEQPD; + ops : 3; + optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none); + code : #241#242#244#248#1#194#61#80#1#0; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPLTPD; + ops : 3; + optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none); + code : #241#242#248#1#194#61#80#1#1; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPLTPD; + ops : 3; + optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none); + code : #241#242#244#248#1#194#61#80#1#1; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPLEPD; + ops : 3; + optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none); + code : #241#242#248#1#194#61#80#1#2; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPLEPD; + ops : 3; + optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none); + code : #241#242#244#248#1#194#61#80#1#2; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPUNORDPD; + ops : 3; + optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none); + code : #241#242#248#1#194#61#80#1#3; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPUNORDPD; + ops : 3; + optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none); + code : #241#242#244#248#1#194#61#80#1#3; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPNEQPD; + ops : 3; + optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none); + code : #241#242#248#1#194#61#80#1#4; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPNEQPD; + ops : 3; + optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none); + code : #241#242#244#248#1#194#61#80#1#4; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPNLTPD; + ops : 3; + optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none); + code : #241#242#248#1#194#61#80#1#5; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPNLTPD; + ops : 3; + optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none); + code : #241#242#244#248#1#194#61#80#1#5; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPNLEPD; + ops : 3; + optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none); + code : #241#242#248#1#194#61#80#1#6; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPNLEPD; + ops : 3; + optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none); + code : #241#242#244#248#1#194#61#80#1#6; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPORDPD; + ops : 3; + optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none); + code : #241#242#248#1#194#61#80#1#7; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPORDPD; + ops : 3; + optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none); + code : #241#242#244#248#1#194#61#80#1#7; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPEQ_UQPD; + ops : 3; + optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none); + code : #241#242#248#1#194#61#80#1#8; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPEQ_UQPD; + ops : 3; + optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none); + code : #241#242#244#248#1#194#61#80#1#8; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPNGEPD; + ops : 3; + optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none); + code : #241#242#248#1#194#61#80#1#9; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPNGEPD; + ops : 3; + optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none); + code : #241#242#244#248#1#194#61#80#1#9; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPNGTPD; + ops : 3; + optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none); + code : #241#242#248#1#194#61#80#1#10; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPNGTPD; + ops : 3; + optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none); + code : #241#242#244#248#1#194#61#80#1#10; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPFALSEPD; + ops : 3; + optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none); + code : #241#242#248#1#194#61#80#1#11; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPFALSEPD; + ops : 3; + optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none); + code : #241#242#244#248#1#194#61#80#1#11; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPNEQ_OQPD; + ops : 3; + optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none); + code : #241#242#248#1#194#61#80#1#12; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPNEQ_OQPD; + ops : 3; + optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none); + code : #241#242#244#248#1#194#61#80#1#12; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPGEPD; + ops : 3; + optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none); + code : #241#242#248#1#194#61#80#1#13; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPGEPD; + ops : 3; + optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none); + code : #241#242#244#248#1#194#61#80#1#13; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPGTPD; + ops : 3; + optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none); + code : #241#242#248#1#194#61#80#1#14; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPGTPD; + ops : 3; + optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none); + code : #241#242#244#248#1#194#61#80#1#14; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPTRUEPD; + ops : 3; + optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none); + code : #241#242#248#1#194#61#80#1#15; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPTRUEPD; + ops : 3; + optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none); + code : #241#242#244#248#1#194#61#80#1#15; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPEQ_OSPD; + ops : 3; + optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none); + code : #241#242#248#1#194#61#80#1#16; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPEQ_OSPD; + ops : 3; + optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none); + code : #241#242#244#248#1#194#61#80#1#16; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPLT_OQPD; + ops : 3; + optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none); + code : #241#242#248#1#194#61#80#1#17; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPLT_OQPD; + ops : 3; + optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none); + code : #241#242#244#248#1#194#61#80#1#17; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPLE_OQPD; + ops : 3; + optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none); + code : #241#242#248#1#194#61#80#1#18; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPLE_OQPD; + ops : 3; + optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none); + code : #241#242#244#248#1#194#61#80#1#18; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPUNORD_SPD; + ops : 3; + optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none); + code : #241#242#248#1#194#61#80#1#19; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPUNORD_SPD; + ops : 3; + optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none); + code : #241#242#244#248#1#194#61#80#1#19; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPNEQ_USPD; + ops : 3; + optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none); + code : #241#242#248#1#194#61#80#1#20; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPNEQ_USPD; + ops : 3; + optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none); + code : #241#242#244#248#1#194#61#80#1#20; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPNLT_UQPD; + ops : 3; + optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none); + code : #241#242#248#1#194#61#80#1#21; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPNLT_UQPD; + ops : 3; + optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none); + code : #241#242#244#248#1#194#61#80#1#21; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPNLE_UQPD; + ops : 3; + optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none); + code : #241#242#248#1#194#61#80#1#22; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPNLE_UQPD; + ops : 3; + optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none); + code : #241#242#244#248#1#194#61#80#1#22; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPORD_SPD; + ops : 3; + optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none); + code : #241#242#248#1#194#61#80#1#23; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPORD_SPD; + ops : 3; + optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none); + code : #241#242#244#248#1#194#61#80#1#23; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPEQ_USPD; + ops : 3; + optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none); + code : #241#242#248#1#194#61#80#1#24; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPEQ_USPD; + ops : 3; + optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none); + code : #241#242#244#248#1#194#61#80#1#24; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPNGE_UQPD; + ops : 3; + optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none); + code : #241#242#248#1#194#61#80#1#25; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPNGE_UQPD; + ops : 3; + optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none); + code : #241#242#244#248#1#194#61#80#1#25; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPNGT_UQPD; + ops : 3; + optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none); + code : #241#242#248#1#194#61#80#1#26; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPNGT_UQPD; + ops : 3; + optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none); + code : #241#242#244#248#1#194#61#80#1#26; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPFALSE_OSPD; + ops : 3; + optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none); + code : #241#242#248#1#194#61#80#1#27; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPFALSE_OSPD; + ops : 3; + optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none); + code : #241#242#244#248#1#194#61#80#1#27; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPNEQ_OSPD; + ops : 3; + optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none); + code : #241#242#248#1#194#61#80#1#28; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPNEQ_OSPD; + ops : 3; + optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none); + code : #241#242#244#248#1#194#61#80#1#28; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPGE_OQPD; + ops : 3; + optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none); + code : #241#242#248#1#194#61#80#1#29; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPGE_OQPD; + ops : 3; + optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none); + code : #241#242#244#248#1#194#61#80#1#29; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPGT_OQPD; + ops : 3; + optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none); + code : #241#242#248#1#194#61#80#1#30; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPGT_OQPD; + ops : 3; + optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none); + code : #241#242#244#248#1#194#61#80#1#30; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPTRUE_USPD; + ops : 3; + optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none); + code : #241#242#248#1#194#61#80#1#31; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPTRUE_USPD; + ops : 3; + optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none); + code : #241#242#244#248#1#194#61#80#1#31; + flags : [if_avx,if_sandybridge] + ), ( opcode : A_VCMPPD; ops : 4; diff --git a/compiler/x86/aasmcpu.pas b/compiler/x86/aasmcpu.pas index bcf3f0b777..ed81af1818 100644 --- a/compiler/x86/aasmcpu.pas +++ b/compiler/x86/aasmcpu.pas @@ -1,4 +1,4 @@ -{ +{ Copyright (c) 1998-2002 by Florian Klaempfl and Peter Vreman Contains the abstract assembler implementation for the i386 @@ -199,7 +199,7 @@ interface {$elseif defined(i8086)} instabentries = {$i i8086nop.inc} {$endif} - maxinfolen = 8; + maxinfolen = 9; type { What an instruction can change. Needed for optimizer and spilling code. diff --git a/compiler/x86/x86ins.dat b/compiler/x86/x86ins.dat index ea2c55012c..c5dc33b3ad 100644 --- a/compiler/x86/x86ins.dat +++ b/compiler/x86/x86ins.dat @@ -3857,6 +3857,167 @@ ymmreg,ymmreg,ymmrm \362\364\370\1\xC2\75\120\1\x1E AVX,SANDYBRI xmmreg,xmmreg,xmmrm \362\370\1\xC2\75\120\1\x1F AVX,SANDYBRIDGE ymmreg,ymmreg,ymmrm \362\364\370\1\xC2\75\120\1\x1F AVX,SANDYBRIDGE +[VCMPEQPD] +(Ch_All) +xmmreg,xmmreg,xmmrm \361\362\370\1\xC2\75\120\1\x0 AVX,SANDYBRIDGE +ymmreg,ymmreg,ymmrm \361\362\364\370\1\xC2\75\120\1\x0 AVX,SANDYBRIDGE + +[VCMPLTPD] +(Ch_All) +xmmreg,xmmreg,xmmrm \361\362\370\1\xC2\75\120\1\x1 AVX,SANDYBRIDGE +ymmreg,ymmreg,ymmrm \361\362\364\370\1\xC2\75\120\1\x1 AVX,SANDYBRIDGE + +[VCMPLEPD] +(Ch_All) +xmmreg,xmmreg,xmmrm \361\362\370\1\xC2\75\120\1\x2 AVX,SANDYBRIDGE +ymmreg,ymmreg,ymmrm \361\362\364\370\1\xC2\75\120\1\x2 AVX,SANDYBRIDGE + +[VCMPUNORDPD] +(Ch_All) +xmmreg,xmmreg,xmmrm \361\362\370\1\xC2\75\120\1\x3 AVX,SANDYBRIDGE +ymmreg,ymmreg,ymmrm \361\362\364\370\1\xC2\75\120\1\x3 AVX,SANDYBRIDGE + +[VCMPNEQPD] +(Ch_All) +xmmreg,xmmreg,xmmrm \361\362\370\1\xC2\75\120\1\x4 AVX,SANDYBRIDGE +ymmreg,ymmreg,ymmrm \361\362\364\370\1\xC2\75\120\1\x4 AVX,SANDYBRIDGE + +[VCMPNLTPD] +(Ch_All) +xmmreg,xmmreg,xmmrm \361\362\370\1\xC2\75\120\1\x5 AVX,SANDYBRIDGE +ymmreg,ymmreg,ymmrm \361\362\364\370\1\xC2\75\120\1\x5 AVX,SANDYBRIDGE + +[VCMPNLEPD] +(Ch_All) +xmmreg,xmmreg,xmmrm \361\362\370\1\xC2\75\120\1\x6 AVX,SANDYBRIDGE +ymmreg,ymmreg,ymmrm \361\362\364\370\1\xC2\75\120\1\x6 AVX,SANDYBRIDGE + +[VCMPORDPD] +(Ch_All) +xmmreg,xmmreg,xmmrm \361\362\370\1\xC2\75\120\1\x7 AVX,SANDYBRIDGE +ymmreg,ymmreg,ymmrm \361\362\364\370\1\xC2\75\120\1\x7 AVX,SANDYBRIDGE + +[VCMPEQ_UQPD] +(Ch_All) +xmmreg,xmmreg,xmmrm \361\362\370\1\xC2\75\120\1\x8 AVX,SANDYBRIDGE +ymmreg,ymmreg,ymmrm \361\362\364\370\1\xC2\75\120\1\x8 AVX,SANDYBRIDGE + +[VCMPNGEPD] +(Ch_All) +xmmreg,xmmreg,xmmrm \361\362\370\1\xC2\75\120\1\x9 AVX,SANDYBRIDGE +ymmreg,ymmreg,ymmrm \361\362\364\370\1\xC2\75\120\1\x9 AVX,SANDYBRIDGE + +[VCMPNGTPD] +(Ch_All) +xmmreg,xmmreg,xmmrm \361\362\370\1\xC2\75\120\1\x0A AVX,SANDYBRIDGE +ymmreg,ymmreg,ymmrm \361\362\364\370\1\xC2\75\120\1\x0A AVX,SANDYBRIDGE + +[VCMPFALSEPD] +(Ch_All) +xmmreg,xmmreg,xmmrm \361\362\370\1\xC2\75\120\1\x0B AVX,SANDYBRIDGE +ymmreg,ymmreg,ymmrm \361\362\364\370\1\xC2\75\120\1\x0B AVX,SANDYBRIDGE + +[VCMPNEQ_OQPD] +(Ch_All) +xmmreg,xmmreg,xmmrm \361\362\370\1\xC2\75\120\1\x0C AVX,SANDYBRIDGE +ymmreg,ymmreg,ymmrm \361\362\364\370\1\xC2\75\120\1\x0C AVX,SANDYBRIDGE + +[VCMPGEPD] +(Ch_All) +xmmreg,xmmreg,xmmrm \361\362\370\1\xC2\75\120\1\x0D AVX,SANDYBRIDGE +ymmreg,ymmreg,ymmrm \361\362\364\370\1\xC2\75\120\1\x0D AVX,SANDYBRIDGE + +[VCMPGTPD] +(Ch_All) +xmmreg,xmmreg,xmmrm \361\362\370\1\xC2\75\120\1\x0E AVX,SANDYBRIDGE +ymmreg,ymmreg,ymmrm \361\362\364\370\1\xC2\75\120\1\x0E AVX,SANDYBRIDGE + +[VCMPTRUEPD] +(Ch_All) +xmmreg,xmmreg,xmmrm \361\362\370\1\xC2\75\120\1\x0F AVX,SANDYBRIDGE +ymmreg,ymmreg,ymmrm \361\362\364\370\1\xC2\75\120\1\x0F AVX,SANDYBRIDGE + +[VCMPEQ_OSPD] +(Ch_All) +xmmreg,xmmreg,xmmrm \361\362\370\1\xC2\75\120\1\x10 AVX,SANDYBRIDGE +ymmreg,ymmreg,ymmrm \361\362\364\370\1\xC2\75\120\1\x10 AVX,SANDYBRIDGE + +[VCMPLT_OQPD] +(Ch_All) +xmmreg,xmmreg,xmmrm \361\362\370\1\xC2\75\120\1\x11 AVX,SANDYBRIDGE +ymmreg,ymmreg,ymmrm \361\362\364\370\1\xC2\75\120\1\x11 AVX,SANDYBRIDGE + +[VCMPLE_OQPD] +(Ch_All) +xmmreg,xmmreg,xmmrm \361\362\370\1\xC2\75\120\1\x12 AVX,SANDYBRIDGE +ymmreg,ymmreg,ymmrm \361\362\364\370\1\xC2\75\120\1\x12 AVX,SANDYBRIDGE + +[VCMPUNORD_SPD] +(Ch_All) +xmmreg,xmmreg,xmmrm \361\362\370\1\xC2\75\120\1\x13 AVX,SANDYBRIDGE +ymmreg,ymmreg,ymmrm \361\362\364\370\1\xC2\75\120\1\x13 AVX,SANDYBRIDGE + +[VCMPNEQ_USPD] +(Ch_All) +xmmreg,xmmreg,xmmrm \361\362\370\1\xC2\75\120\1\x14 AVX,SANDYBRIDGE +ymmreg,ymmreg,ymmrm \361\362\364\370\1\xC2\75\120\1\x14 AVX,SANDYBRIDGE + +[VCMPNLT_UQPD] +(Ch_All) +xmmreg,xmmreg,xmmrm \361\362\370\1\xC2\75\120\1\x15 AVX,SANDYBRIDGE +ymmreg,ymmreg,ymmrm \361\362\364\370\1\xC2\75\120\1\x15 AVX,SANDYBRIDGE + +[VCMPNLE_UQPD] +(Ch_All) +xmmreg,xmmreg,xmmrm \361\362\370\1\xC2\75\120\1\x16 AVX,SANDYBRIDGE +ymmreg,ymmreg,ymmrm \361\362\364\370\1\xC2\75\120\1\x16 AVX,SANDYBRIDGE + +[VCMPORD_SPD] +(Ch_All) +xmmreg,xmmreg,xmmrm \361\362\370\1\xC2\75\120\1\x17 AVX,SANDYBRIDGE +ymmreg,ymmreg,ymmrm \361\362\364\370\1\xC2\75\120\1\x17 AVX,SANDYBRIDGE + +[VCMPEQ_USPD] +(Ch_All) +xmmreg,xmmreg,xmmrm \361\362\370\1\xC2\75\120\1\x18 AVX,SANDYBRIDGE +ymmreg,ymmreg,ymmrm \361\362\364\370\1\xC2\75\120\1\x18 AVX,SANDYBRIDGE + +[VCMPNGE_UQPD] +(Ch_All) +xmmreg,xmmreg,xmmrm \361\362\370\1\xC2\75\120\1\x19 AVX,SANDYBRIDGE +ymmreg,ymmreg,ymmrm \361\362\364\370\1\xC2\75\120\1\x19 AVX,SANDYBRIDGE + +[VCMPNGT_UQPD] +(Ch_All) +xmmreg,xmmreg,xmmrm \361\362\370\1\xC2\75\120\1\x1A AVX,SANDYBRIDGE +ymmreg,ymmreg,ymmrm \361\362\364\370\1\xC2\75\120\1\x1A AVX,SANDYBRIDGE + +[VCMPFALSE_OSPD] +(Ch_All) +xmmreg,xmmreg,xmmrm \361\362\370\1\xC2\75\120\1\x1B AVX,SANDYBRIDGE +ymmreg,ymmreg,ymmrm \361\362\364\370\1\xC2\75\120\1\x1B AVX,SANDYBRIDGE + +[VCMPNEQ_OSPD] +(Ch_All) +xmmreg,xmmreg,xmmrm \361\362\370\1\xC2\75\120\1\x1C AVX,SANDYBRIDGE +ymmreg,ymmreg,ymmrm \361\362\364\370\1\xC2\75\120\1\x1C AVX,SANDYBRIDGE + +[VCMPGE_OQPD] +(Ch_All) +xmmreg,xmmreg,xmmrm \361\362\370\1\xC2\75\120\1\x1D AVX,SANDYBRIDGE +ymmreg,ymmreg,ymmrm \361\362\364\370\1\xC2\75\120\1\x1D AVX,SANDYBRIDGE + +[VCMPGT_OQPD] +(Ch_All) +xmmreg,xmmreg,xmmrm \361\362\370\1\xC2\75\120\1\x1E AVX,SANDYBRIDGE +ymmreg,ymmreg,ymmrm \361\362\364\370\1\xC2\75\120\1\x1E AVX,SANDYBRIDGE + +[VCMPTRUE_USPD] +(Ch_All) +xmmreg,xmmreg,xmmrm \361\362\370\1\xC2\75\120\1\x1F AVX,SANDYBRIDGE +ymmreg,ymmreg,ymmrm \361\362\364\370\1\xC2\75\120\1\x1F AVX,SANDYBRIDGE + + ; ; VCMPPS/VCMPSS must come after the specific ops; that way the disassembler will find the ; specific ops first and only disassemble illegal ones as cmpps. diff --git a/compiler/x86_64/x8664ats.inc b/compiler/x86_64/x8664ats.inc index 22ec8cb43a..56551ab634 100644 --- a/compiler/x86_64/x8664ats.inc +++ b/compiler/x86_64/x8664ats.inc @@ -743,6 +743,38 @@ 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, attsufMM, attsufMM, attsufNONE, diff --git a/compiler/x86_64/x8664att.inc b/compiler/x86_64/x8664att.inc index 0f1504f5d9..5ab54627da 100644 --- a/compiler/x86_64/x8664att.inc +++ b/compiler/x86_64/x8664att.inc @@ -735,6 +735,38 @@ 'vcmpge_oqps', 'vcmpgt_oqps', 'vcmptrue_usps', +'vcmpeqpd', +'vcmpltpd', +'vcmplepd', +'vcmpunordpd', +'vcmpneqpd', +'vcmpnltpd', +'vcmpnlepd', +'vcmpordpd', +'vcmpeq_uqpd', +'vcmpngepd', +'vcmpngtpd', +'vcmpfalsepd', +'vcmpneq_oqpd', +'vcmpgepd', +'vcmpgtpd', +'vcmptruepd', +'vcmpeq_ospd', +'vcmplt_oqpd', +'vcmple_oqpd', +'vcmpunord_spd', +'vcmpneq_uspd', +'vcmpnlt_uqpd', +'vcmpnle_uqpd', +'vcmpord_spd', +'vcmpeq_uspd', +'vcmpnge_uqpd', +'vcmpngt_uqpd', +'vcmpfalse_ospd', +'vcmpneq_ospd', +'vcmpge_oqpd', +'vcmpgt_oqpd', +'vcmptrue_uspd', 'vcmppd', 'vcmpps', 'vcmpsd', diff --git a/compiler/x86_64/x8664int.inc b/compiler/x86_64/x8664int.inc index 65c3324cf5..a11631c734 100644 --- a/compiler/x86_64/x8664int.inc +++ b/compiler/x86_64/x8664int.inc @@ -735,6 +735,38 @@ 'vcmpge_oqps', 'vcmpgt_oqps', 'vcmptrue_usps', +'vcmpeqpd', +'vcmpltpd', +'vcmplepd', +'vcmpunordpd', +'vcmpneqpd', +'vcmpnltpd', +'vcmpnlepd', +'vcmpordpd', +'vcmpeq_uqpd', +'vcmpngepd', +'vcmpngtpd', +'vcmpfalsepd', +'vcmpneq_oqpd', +'vcmpgepd', +'vcmpgtpd', +'vcmptruepd', +'vcmpeq_ospd', +'vcmplt_oqpd', +'vcmple_oqpd', +'vcmpunord_spd', +'vcmpneq_uspd', +'vcmpnlt_uqpd', +'vcmpnle_uqpd', +'vcmpord_spd', +'vcmpeq_uspd', +'vcmpnge_uqpd', +'vcmpngt_uqpd', +'vcmpfalse_ospd', +'vcmpneq_ospd', +'vcmpge_oqpd', +'vcmpgt_oqpd', +'vcmptrue_uspd', 'vcmppd', 'vcmpps', 'vcmpsd', diff --git a/compiler/x86_64/x8664nop.inc b/compiler/x86_64/x8664nop.inc index aafe67cf0e..7cd4db7b89 100644 --- a/compiler/x86_64/x8664nop.inc +++ b/compiler/x86_64/x8664nop.inc @@ -1,2 +1,2 @@ { don't edit, this file is generated from x86ins.dat } -2106; +2170; diff --git a/compiler/x86_64/x8664op.inc b/compiler/x86_64/x8664op.inc index 1a5ee338cd..367524ba49 100644 --- a/compiler/x86_64/x8664op.inc +++ b/compiler/x86_64/x8664op.inc @@ -735,6 +735,38 @@ A_VCMPNEQ_OSPS, A_VCMPGE_OQPS, A_VCMPGT_OQPS, A_VCMPTRUE_USPS, +A_VCMPEQPD, +A_VCMPLTPD, +A_VCMPLEPD, +A_VCMPUNORDPD, +A_VCMPNEQPD, +A_VCMPNLTPD, +A_VCMPNLEPD, +A_VCMPORDPD, +A_VCMPEQ_UQPD, +A_VCMPNGEPD, +A_VCMPNGTPD, +A_VCMPFALSEPD, +A_VCMPNEQ_OQPD, +A_VCMPGEPD, +A_VCMPGTPD, +A_VCMPTRUEPD, +A_VCMPEQ_OSPD, +A_VCMPLT_OQPD, +A_VCMPLE_OQPD, +A_VCMPUNORD_SPD, +A_VCMPNEQ_USPD, +A_VCMPNLT_UQPD, +A_VCMPNLE_UQPD, +A_VCMPORD_SPD, +A_VCMPEQ_USPD, +A_VCMPNGE_UQPD, +A_VCMPNGT_UQPD, +A_VCMPFALSE_OSPD, +A_VCMPNEQ_OSPD, +A_VCMPGE_OQPD, +A_VCMPGT_OQPD, +A_VCMPTRUE_USPD, A_VCMPPD, A_VCMPPS, A_VCMPSD, diff --git a/compiler/x86_64/x8664pro.inc b/compiler/x86_64/x8664pro.inc index 8d5030d324..de9d3ab58b 100644 --- a/compiler/x86_64/x8664pro.inc +++ b/compiler/x86_64/x8664pro.inc @@ -739,6 +739,38 @@ (Ch: [Ch_All]), (Ch: [Ch_All]), (Ch: [Ch_All]), +(Ch: [Ch_All]), +(Ch: [Ch_All]), +(Ch: [Ch_All]), +(Ch: [Ch_All]), +(Ch: [Ch_All]), +(Ch: [Ch_All]), +(Ch: [Ch_All]), +(Ch: [Ch_All]), +(Ch: [Ch_All]), +(Ch: [Ch_All]), +(Ch: [Ch_All]), +(Ch: [Ch_All]), +(Ch: [Ch_All]), +(Ch: [Ch_All]), +(Ch: [Ch_All]), +(Ch: [Ch_All]), +(Ch: [Ch_All]), +(Ch: [Ch_All]), +(Ch: [Ch_All]), +(Ch: [Ch_All]), +(Ch: [Ch_All]), +(Ch: [Ch_All]), +(Ch: [Ch_All]), +(Ch: [Ch_All]), +(Ch: [Ch_All]), +(Ch: [Ch_All]), +(Ch: [Ch_All]), +(Ch: [Ch_All]), +(Ch: [Ch_All]), +(Ch: [Ch_All]), +(Ch: [Ch_All]), +(Ch: [Ch_All]), (Ch: [Ch_Rop1, Ch_Rop2, Ch_WFlags]), (Ch: [Ch_Rop1, Ch_Rop2, Ch_WFlags]), (Ch: [Ch_Wop2, Ch_Rop1]), diff --git a/compiler/x86_64/x8664tab.inc b/compiler/x86_64/x8664tab.inc index e7c032b1ab..ceeaa126de 100644 --- a/compiler/x86_64/x8664tab.inc +++ b/compiler/x86_64/x8664tab.inc @@ -9744,6 +9744,454 @@ code : #242#244#248#1#194#61#80#1#31; flags : [if_avx,if_sandybridge] ), + ( + opcode : A_VCMPEQPD; + ops : 3; + optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none); + code : #241#242#248#1#194#61#80#1#0; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPEQPD; + ops : 3; + optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none); + code : #241#242#244#248#1#194#61#80#1#0; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPLTPD; + ops : 3; + optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none); + code : #241#242#248#1#194#61#80#1#1; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPLTPD; + ops : 3; + optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none); + code : #241#242#244#248#1#194#61#80#1#1; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPLEPD; + ops : 3; + optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none); + code : #241#242#248#1#194#61#80#1#2; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPLEPD; + ops : 3; + optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none); + code : #241#242#244#248#1#194#61#80#1#2; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPUNORDPD; + ops : 3; + optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none); + code : #241#242#248#1#194#61#80#1#3; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPUNORDPD; + ops : 3; + optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none); + code : #241#242#244#248#1#194#61#80#1#3; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPNEQPD; + ops : 3; + optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none); + code : #241#242#248#1#194#61#80#1#4; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPNEQPD; + ops : 3; + optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none); + code : #241#242#244#248#1#194#61#80#1#4; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPNLTPD; + ops : 3; + optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none); + code : #241#242#248#1#194#61#80#1#5; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPNLTPD; + ops : 3; + optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none); + code : #241#242#244#248#1#194#61#80#1#5; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPNLEPD; + ops : 3; + optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none); + code : #241#242#248#1#194#61#80#1#6; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPNLEPD; + ops : 3; + optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none); + code : #241#242#244#248#1#194#61#80#1#6; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPORDPD; + ops : 3; + optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none); + code : #241#242#248#1#194#61#80#1#7; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPORDPD; + ops : 3; + optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none); + code : #241#242#244#248#1#194#61#80#1#7; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPEQ_UQPD; + ops : 3; + optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none); + code : #241#242#248#1#194#61#80#1#8; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPEQ_UQPD; + ops : 3; + optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none); + code : #241#242#244#248#1#194#61#80#1#8; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPNGEPD; + ops : 3; + optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none); + code : #241#242#248#1#194#61#80#1#9; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPNGEPD; + ops : 3; + optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none); + code : #241#242#244#248#1#194#61#80#1#9; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPNGTPD; + ops : 3; + optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none); + code : #241#242#248#1#194#61#80#1#10; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPNGTPD; + ops : 3; + optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none); + code : #241#242#244#248#1#194#61#80#1#10; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPFALSEPD; + ops : 3; + optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none); + code : #241#242#248#1#194#61#80#1#11; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPFALSEPD; + ops : 3; + optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none); + code : #241#242#244#248#1#194#61#80#1#11; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPNEQ_OQPD; + ops : 3; + optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none); + code : #241#242#248#1#194#61#80#1#12; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPNEQ_OQPD; + ops : 3; + optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none); + code : #241#242#244#248#1#194#61#80#1#12; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPGEPD; + ops : 3; + optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none); + code : #241#242#248#1#194#61#80#1#13; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPGEPD; + ops : 3; + optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none); + code : #241#242#244#248#1#194#61#80#1#13; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPGTPD; + ops : 3; + optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none); + code : #241#242#248#1#194#61#80#1#14; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPGTPD; + ops : 3; + optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none); + code : #241#242#244#248#1#194#61#80#1#14; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPTRUEPD; + ops : 3; + optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none); + code : #241#242#248#1#194#61#80#1#15; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPTRUEPD; + ops : 3; + optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none); + code : #241#242#244#248#1#194#61#80#1#15; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPEQ_OSPD; + ops : 3; + optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none); + code : #241#242#248#1#194#61#80#1#16; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPEQ_OSPD; + ops : 3; + optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none); + code : #241#242#244#248#1#194#61#80#1#16; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPLT_OQPD; + ops : 3; + optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none); + code : #241#242#248#1#194#61#80#1#17; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPLT_OQPD; + ops : 3; + optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none); + code : #241#242#244#248#1#194#61#80#1#17; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPLE_OQPD; + ops : 3; + optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none); + code : #241#242#248#1#194#61#80#1#18; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPLE_OQPD; + ops : 3; + optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none); + code : #241#242#244#248#1#194#61#80#1#18; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPUNORD_SPD; + ops : 3; + optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none); + code : #241#242#248#1#194#61#80#1#19; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPUNORD_SPD; + ops : 3; + optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none); + code : #241#242#244#248#1#194#61#80#1#19; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPNEQ_USPD; + ops : 3; + optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none); + code : #241#242#248#1#194#61#80#1#20; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPNEQ_USPD; + ops : 3; + optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none); + code : #241#242#244#248#1#194#61#80#1#20; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPNLT_UQPD; + ops : 3; + optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none); + code : #241#242#248#1#194#61#80#1#21; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPNLT_UQPD; + ops : 3; + optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none); + code : #241#242#244#248#1#194#61#80#1#21; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPNLE_UQPD; + ops : 3; + optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none); + code : #241#242#248#1#194#61#80#1#22; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPNLE_UQPD; + ops : 3; + optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none); + code : #241#242#244#248#1#194#61#80#1#22; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPORD_SPD; + ops : 3; + optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none); + code : #241#242#248#1#194#61#80#1#23; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPORD_SPD; + ops : 3; + optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none); + code : #241#242#244#248#1#194#61#80#1#23; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPEQ_USPD; + ops : 3; + optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none); + code : #241#242#248#1#194#61#80#1#24; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPEQ_USPD; + ops : 3; + optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none); + code : #241#242#244#248#1#194#61#80#1#24; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPNGE_UQPD; + ops : 3; + optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none); + code : #241#242#248#1#194#61#80#1#25; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPNGE_UQPD; + ops : 3; + optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none); + code : #241#242#244#248#1#194#61#80#1#25; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPNGT_UQPD; + ops : 3; + optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none); + code : #241#242#248#1#194#61#80#1#26; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPNGT_UQPD; + ops : 3; + optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none); + code : #241#242#244#248#1#194#61#80#1#26; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPFALSE_OSPD; + ops : 3; + optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none); + code : #241#242#248#1#194#61#80#1#27; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPFALSE_OSPD; + ops : 3; + optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none); + code : #241#242#244#248#1#194#61#80#1#27; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPNEQ_OSPD; + ops : 3; + optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none); + code : #241#242#248#1#194#61#80#1#28; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPNEQ_OSPD; + ops : 3; + optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none); + code : #241#242#244#248#1#194#61#80#1#28; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPGE_OQPD; + ops : 3; + optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none); + code : #241#242#248#1#194#61#80#1#29; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPGE_OQPD; + ops : 3; + optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none); + code : #241#242#244#248#1#194#61#80#1#29; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPGT_OQPD; + ops : 3; + optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none); + code : #241#242#248#1#194#61#80#1#30; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPGT_OQPD; + ops : 3; + optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none); + code : #241#242#244#248#1#194#61#80#1#30; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPTRUE_USPD; + ops : 3; + optypes : (ot_xmmreg,ot_xmmreg,ot_xmmrm,ot_none); + code : #241#242#248#1#194#61#80#1#31; + flags : [if_avx,if_sandybridge] + ), + ( + opcode : A_VCMPTRUE_USPD; + ops : 3; + optypes : (ot_ymmreg,ot_ymmreg,ot_ymmrm,ot_none); + code : #241#242#244#248#1#194#61#80#1#31; + flags : [if_avx,if_sandybridge] + ), ( opcode : A_VCMPPD; ops : 4;