VirtualBox

Changeset 107230 in vbox


Ignore:
Timestamp:
Dec 5, 2024 5:43:30 AM (6 weeks ago)
Author:
vboxsync
Message:

ValidationKit/bootsectors: Implement SIMD FP testcases for cmppd; bugref:10658; jiraref:VBP-1209

Location:
trunk/src/VBox/ValidationKit/bootsectors
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/ValidationKit/bootsectors/bs3-cpu-instr-4-template.mac

    r107222 r107230  
    13301330
    13311331;
     1332;; cmppd
     1333;
     1334EMIT_INSTR_PLUS_ICEBP     cmppd,  XMM1, XMM2,  000h
     1335EMIT_INSTR_PLUS_ICEBP     cmppd,  XMM1, XMM2,  001h
     1336EMIT_INSTR_PLUS_ICEBP     cmppd,  XMM1, XMM2,  002h
     1337EMIT_INSTR_PLUS_ICEBP     cmppd,  XMM1, XMM2,  003h
     1338EMIT_INSTR_PLUS_ICEBP     cmppd,  XMM1, XMM2,  004h
     1339EMIT_INSTR_PLUS_ICEBP     cmppd,  XMM1, XMM2,  005h
     1340EMIT_INSTR_PLUS_ICEBP     cmppd,  XMM1, XMM2,  006h
     1341EMIT_INSTR_PLUS_ICEBP     cmppd,  XMM1, XMM2,  007h
     1342EMIT_INSTR_PLUS_ICEBP     cmppd,  XMM1, XMM2,  008h ;; reserved
     1343EMIT_INSTR_PLUS_ICEBP     cmppd,  XMM1, XMM2,  011h ;; reserved
     1344EMIT_INSTR_PLUS_ICEBP     cmppd,  XMM1, XMM2,  022h ;; reserved
     1345EMIT_INSTR_PLUS_ICEBP     cmppd,  XMM1, XMM2,  043h ;; reserved
     1346EMIT_INSTR_PLUS_ICEBP     cmppd,  XMM1, XMM2,  084h ;; reserved
     1347EMIT_INSTR_PLUS_ICEBP     cmppd,  XMM1, XMM1,  000h ;; same-register
     1348EMIT_INSTR_PLUS_ICEBP     cmppd,  XMM1, XMM1,  006h ;; same-register
     1349EMIT_INSTR_PLUS_ICEBP     cmppd,  XMM1, FSxBX, 001h
     1350EMIT_INSTR_PLUS_ICEBP     cmppd,  XMM1, FSxBX, 004h
     1351EMIT_INSTR_PLUS_ICEBP     cmppd,  XMM1, FSxBX, 007h
     1352EMIT_INSTR_PLUS_ICEBP_C64 cmppd,  XMM8, XMM9,  002h
     1353EMIT_INSTR_PLUS_ICEBP_C64 cmppd,  XMM8, XMM8,  005h ;; same-register
     1354EMIT_INSTR_PLUS_ICEBP_C64 cmppd,  XMM8, FSxBX, 003h
     1355
     1356EMIT_INSTR_PLUS_ICEBP     vcmppd, XMM1, XMM2, XMM3,  000h
     1357EMIT_INSTR_PLUS_ICEBP     vcmppd, XMM1, XMM2, XMM3,  001h
     1358EMIT_INSTR_PLUS_ICEBP     vcmppd, XMM1, XMM2, XMM3,  002h
     1359EMIT_INSTR_PLUS_ICEBP     vcmppd, XMM1, XMM2, XMM3,  003h
     1360EMIT_INSTR_PLUS_ICEBP     vcmppd, XMM1, XMM2, XMM3,  004h
     1361EMIT_INSTR_PLUS_ICEBP     vcmppd, XMM1, XMM2, XMM3,  005h
     1362EMIT_INSTR_PLUS_ICEBP     vcmppd, XMM1, XMM2, XMM3,  006h
     1363EMIT_INSTR_PLUS_ICEBP     vcmppd, XMM1, XMM2, XMM3,  007h
     1364EMIT_INSTR_PLUS_ICEBP     vcmppd, XMM1, XMM2, XMM3,  008h
     1365EMIT_INSTR_PLUS_ICEBP     vcmppd, XMM1, XMM2, XMM3,  009h
     1366EMIT_INSTR_PLUS_ICEBP     vcmppd, XMM1, XMM2, XMM3,  00ah
     1367EMIT_INSTR_PLUS_ICEBP     vcmppd, XMM1, XMM2, XMM3,  00bh
     1368EMIT_INSTR_PLUS_ICEBP     vcmppd, XMM1, XMM2, XMM3,  00ch
     1369EMIT_INSTR_PLUS_ICEBP     vcmppd, XMM1, XMM2, XMM3,  00dh
     1370EMIT_INSTR_PLUS_ICEBP     vcmppd, XMM1, XMM2, XMM3,  00eh
     1371EMIT_INSTR_PLUS_ICEBP     vcmppd, XMM1, XMM2, XMM3,  00fh
     1372EMIT_INSTR_PLUS_ICEBP     vcmppd, XMM1, XMM2, XMM3,  010h
     1373EMIT_INSTR_PLUS_ICEBP     vcmppd, XMM1, XMM2, XMM3,  011h
     1374EMIT_INSTR_PLUS_ICEBP     vcmppd, XMM1, XMM2, XMM3,  012h
     1375EMIT_INSTR_PLUS_ICEBP     vcmppd, XMM1, XMM2, XMM3,  013h
     1376EMIT_INSTR_PLUS_ICEBP     vcmppd, XMM1, XMM2, XMM3,  014h
     1377EMIT_INSTR_PLUS_ICEBP     vcmppd, XMM1, XMM2, XMM3,  015h
     1378EMIT_INSTR_PLUS_ICEBP     vcmppd, XMM1, XMM2, XMM3,  016h
     1379EMIT_INSTR_PLUS_ICEBP     vcmppd, XMM1, XMM2, XMM3,  017h
     1380EMIT_INSTR_PLUS_ICEBP     vcmppd, XMM1, XMM2, XMM3,  018h
     1381EMIT_INSTR_PLUS_ICEBP     vcmppd, XMM1, XMM2, XMM3,  019h
     1382EMIT_INSTR_PLUS_ICEBP     vcmppd, XMM1, XMM2, XMM3,  01ah
     1383EMIT_INSTR_PLUS_ICEBP     vcmppd, XMM1, XMM2, XMM3,  01bh
     1384EMIT_INSTR_PLUS_ICEBP     vcmppd, XMM1, XMM2, XMM3,  01ch
     1385EMIT_INSTR_PLUS_ICEBP     vcmppd, XMM1, XMM2, XMM3,  01dh
     1386EMIT_INSTR_PLUS_ICEBP     vcmppd, XMM1, XMM2, XMM3,  01eh
     1387EMIT_INSTR_PLUS_ICEBP     vcmppd, XMM1, XMM2, XMM3,  01fh
     1388EMIT_INSTR_PLUS_ICEBP     vcmppd, XMM1, XMM2, XMM3,  022h ;; reserved
     1389EMIT_INSTR_PLUS_ICEBP     vcmppd, XMM1, XMM2, XMM3,  044h ;; reserved
     1390EMIT_INSTR_PLUS_ICEBP     vcmppd, XMM1, XMM1, XMM1,  005h ;; same-register
     1391EMIT_INSTR_PLUS_ICEBP     vcmppd, XMM1, XMM1, XMM2,  00ah ;; same-register
     1392EMIT_INSTR_PLUS_ICEBP     vcmppd, XMM1, XMM1, FSxBX, 00bh ;; same-register
     1393EMIT_INSTR_PLUS_ICEBP     vcmppd, XMM1, XMM2, XMM1,  00ch ;; same-register
     1394EMIT_INSTR_PLUS_ICEBP     vcmppd, XMM1, XMM2, XMM2,  00eh ;; same-register
     1395EMIT_INSTR_PLUS_ICEBP     vcmppd, XMM1, XMM2, FSxBX, 010h
     1396EMIT_INSTR_PLUS_ICEBP     vcmppd, XMM1, XMM2, FSxBX, 011h
     1397EMIT_INSTR_PLUS_ICEBP     vcmppd, XMM1, XMM2, FSxBX, 013h
     1398EMIT_INSTR_PLUS_ICEBP_C64 vcmppd, XMM8, XMM9, XMM10, 016h
     1399EMIT_INSTR_PLUS_ICEBP_C64 vcmppd, XMM8, XMM9, XMM10, 017h
     1400EMIT_INSTR_PLUS_ICEBP_C64 vcmppd, XMM8, XMM9, XMM10, 019h
     1401EMIT_INSTR_PLUS_ICEBP_C64 vcmppd, XMM8, XMM9, XMM9,  01ah ;; same-register
     1402EMIT_INSTR_PLUS_ICEBP_C64 vcmppd, XMM8, XMM9, XMM10, 0ddh ;; reserved
     1403EMIT_INSTR_PLUS_ICEBP_C64 vcmppd, XMM8, XMM9, FSxBX, 01dh
     1404EMIT_INSTR_PLUS_ICEBP_C64 vcmppd, XMM8, XMM8, FSxBX, 01fh ;; same-register
     1405
     1406EMIT_INSTR_PLUS_ICEBP     vcmppd, YMM1, YMM2, YMM3,  000h
     1407EMIT_INSTR_PLUS_ICEBP     vcmppd, YMM1, YMM2, YMM3,  001h
     1408EMIT_INSTR_PLUS_ICEBP     vcmppd, YMM1, YMM2, YMM3,  002h
     1409EMIT_INSTR_PLUS_ICEBP     vcmppd, YMM1, YMM2, YMM3,  003h
     1410EMIT_INSTR_PLUS_ICEBP     vcmppd, YMM1, YMM2, YMM3,  004h
     1411EMIT_INSTR_PLUS_ICEBP     vcmppd, YMM1, YMM2, YMM3,  005h
     1412EMIT_INSTR_PLUS_ICEBP     vcmppd, YMM1, YMM2, YMM3,  006h
     1413EMIT_INSTR_PLUS_ICEBP     vcmppd, YMM1, YMM2, YMM3,  007h
     1414EMIT_INSTR_PLUS_ICEBP     vcmppd, YMM1, YMM2, YMM3,  008h
     1415EMIT_INSTR_PLUS_ICEBP     vcmppd, YMM1, YMM2, YMM3,  009h
     1416EMIT_INSTR_PLUS_ICEBP     vcmppd, YMM1, YMM2, YMM3,  00ah
     1417EMIT_INSTR_PLUS_ICEBP     vcmppd, YMM1, YMM2, YMM3,  00bh
     1418EMIT_INSTR_PLUS_ICEBP     vcmppd, YMM1, YMM2, YMM3,  00ch
     1419EMIT_INSTR_PLUS_ICEBP     vcmppd, YMM1, YMM2, YMM3,  00dh
     1420EMIT_INSTR_PLUS_ICEBP     vcmppd, YMM1, YMM2, YMM3,  00eh
     1421EMIT_INSTR_PLUS_ICEBP     vcmppd, YMM1, YMM2, YMM3,  00fh
     1422EMIT_INSTR_PLUS_ICEBP     vcmppd, YMM1, YMM2, YMM3,  010h
     1423EMIT_INSTR_PLUS_ICEBP     vcmppd, YMM1, YMM2, YMM3,  011h
     1424EMIT_INSTR_PLUS_ICEBP     vcmppd, YMM1, YMM2, YMM3,  012h
     1425EMIT_INSTR_PLUS_ICEBP     vcmppd, YMM1, YMM2, YMM3,  013h
     1426EMIT_INSTR_PLUS_ICEBP     vcmppd, YMM1, YMM2, YMM3,  014h
     1427EMIT_INSTR_PLUS_ICEBP     vcmppd, YMM1, YMM2, YMM3,  015h
     1428EMIT_INSTR_PLUS_ICEBP     vcmppd, YMM1, YMM2, YMM3,  016h
     1429EMIT_INSTR_PLUS_ICEBP     vcmppd, YMM1, YMM2, YMM3,  017h
     1430EMIT_INSTR_PLUS_ICEBP     vcmppd, YMM1, YMM2, YMM3,  018h
     1431EMIT_INSTR_PLUS_ICEBP     vcmppd, YMM1, YMM2, YMM3,  019h
     1432EMIT_INSTR_PLUS_ICEBP     vcmppd, YMM1, YMM2, YMM3,  01ah
     1433EMIT_INSTR_PLUS_ICEBP     vcmppd, YMM1, YMM2, YMM3,  01bh
     1434EMIT_INSTR_PLUS_ICEBP     vcmppd, YMM1, YMM2, YMM3,  01ch
     1435EMIT_INSTR_PLUS_ICEBP     vcmppd, YMM1, YMM2, YMM3,  01dh
     1436EMIT_INSTR_PLUS_ICEBP     vcmppd, YMM1, YMM2, YMM3,  01eh
     1437EMIT_INSTR_PLUS_ICEBP     vcmppd, YMM1, YMM2, YMM3,  01fh
     1438EMIT_INSTR_PLUS_ICEBP     vcmppd, YMM1, YMM2, YMM3,  022h ;; reserved
     1439EMIT_INSTR_PLUS_ICEBP     vcmppd, YMM1, YMM2, YMM3,  044h ;; reserved
     1440EMIT_INSTR_PLUS_ICEBP     vcmppd, YMM1, YMM1, YMM1,  005h ;; same-register
     1441EMIT_INSTR_PLUS_ICEBP     vcmppd, YMM1, YMM1, YMM2,  00ah ;; same-register
     1442EMIT_INSTR_PLUS_ICEBP     vcmppd, YMM1, YMM1, FSxBX, 00bh ;; same-register
     1443EMIT_INSTR_PLUS_ICEBP     vcmppd, YMM1, YMM2, YMM1,  00ch ;; same-register
     1444EMIT_INSTR_PLUS_ICEBP     vcmppd, YMM1, YMM2, YMM2,  00eh ;; same-register
     1445EMIT_INSTR_PLUS_ICEBP     vcmppd, YMM1, YMM2, FSxBX, 010h
     1446EMIT_INSTR_PLUS_ICEBP     vcmppd, YMM1, YMM2, FSxBX, 011h
     1447EMIT_INSTR_PLUS_ICEBP     vcmppd, YMM1, YMM2, FSxBX, 013h
     1448EMIT_INSTR_PLUS_ICEBP_C64 vcmppd, YMM8, YMM9, YMM10, 016h
     1449EMIT_INSTR_PLUS_ICEBP_C64 vcmppd, YMM8, YMM9, YMM10, 017h
     1450EMIT_INSTR_PLUS_ICEBP_C64 vcmppd, YMM8, YMM9, YMM10, 019h
     1451EMIT_INSTR_PLUS_ICEBP_C64 vcmppd, YMM8, YMM9, YMM9,  01ah ;; same-register
     1452EMIT_INSTR_PLUS_ICEBP_C64 vcmppd, YMM8, YMM9, YMM10, 0ddh ;; reserved
     1453EMIT_INSTR_PLUS_ICEBP_C64 vcmppd, YMM8, YMM9, FSxBX, 01dh
     1454EMIT_INSTR_PLUS_ICEBP_C64 vcmppd, YMM8, YMM8, FSxBX, 01fh ;; same-register
     1455
     1456;
    13321457;; cvtpi2ps
    13331458;
  • trunk/src/VBox/ValidationKit/bootsectors/bs3-cpu-instr-4.c32

    r107222 r107230  
    1606616066              /*256:out  */ -1 },
    1606716067          { { /*src1     */ { FP64_NORM_MAX(0), FP64_NORM_MAX(1) } },
    16068             { /*src2     */ { FP64_2(0),        FP64_2(0),       } },
     16068            { /*src2     */ { FP64_2(0),        FP64_2(0)        } },
    1606916069            { /* =>      */ { FP64_ROW_UNUSED } },
    1607016070              /*mxcsr:in */ 0,                               /* big * 2 = inf (unmasked OE hits before PE) */
     
    1607216072              /*256:out  */ -1 },
    1607316073          { { /*src1     */ { FP64_NORM_MAX(0), FP64_NORM_MAX(1) } },
    16074             { /*src2     */ { FP64_2(0),        FP64_2(0),       } },
     16074            { /*src2     */ { FP64_2(0),        FP64_2(0)        } },
    1607516075            { /* =>      */ { FP64_0(0),        FP64_INF(1)      } },
    1607616076              /*mxcsr:in */ X86_MXCSR_OM,                    /* big * 2 = inf (OE | PE) */
     
    1629616296              /*256:out  */ -1 },
    1629716297          { { /*src1     */ { FP64_NORM_MAX(0), FP64_NORM_MAX(1) } },
    16298             { /*src2     */ { FP64_2(0),        FP64_2(0),       } },
     16298            { /*src2     */ { FP64_2(0),        FP64_2(0)        } },
    1629916299            { /* =>      */ { FP64_ROW_UNUSED } },
    1630016300              /*mxcsr:in */ 0,
     
    1630216302              /*256:out  */ -1 },
    1630316303          { { /*src1     */ { FP64_NORM_MAX(0), FP64_NORM_MAX(0) } },
    16304             { /*src2     */ { FP64_1(0),        FP64_1(0),       } },
     16304            { /*src2     */ { FP64_1(0),        FP64_1(0)        } },
    1630516305            { /* =>      */ { FP64_ROW_UNUSED } },
    1630616306              /*mxcsr:in */ 0,                               /* big * 1 = big; big * 1 = big; big + big = oo (unmasked OE hits before PE) */
     
    1630816308              /*256:out  */ -1 },
    1630916309          { { /*src1     */ { FP64_NORM_MAX(0), FP64_NORM_MAX(0) } },
    16310             { /*src2     */ { FP64_2(0),        FP64_2(0),       } },
     16310            { /*src2     */ { FP64_2(0),        FP64_2(0)        } },
    1631116311            { /* =>      */ { FP64_INF(0),      FP64_INF(0)      } },
    1631216312              /*mxcsr:in */ X86_MXCSR_OM,                     /* big * 2 = oo (OE | PE); big * 2 = oo (OE | PE) */
     
    1794817948          {    FP32_12_67_5(1), FP32_12_68_0(1), X86_MXCSR_RC_NEAREST, X86_MXCSR_RC_NEAREST }, /* MXCSR overridden by instruction */
    1794917949          {    FP32_12_67_9(0), FP32_12_67_0(0), X86_MXCSR_RC_NEAREST, X86_MXCSR_RC_NEAREST }, /* MXCSR overridden by instruction */
    17950           {    FP32_12_67_9(1), FP32_12_68_0(1), X86_MXCSR_RC_UP,      X86_MXCSR_RC_UP,     }, /* MXCSR overridden by instruction */
     17950          {    FP32_12_67_9(1), FP32_12_68_0(1), X86_MXCSR_RC_UP,      X86_MXCSR_RC_UP      }, /* MXCSR overridden by instruction */
    1795117951          {    FP32_2(0),       FP32_2(0),       X86_MXCSR_RC_NEAREST, X86_MXCSR_RC_NEAREST }, /* MXCSR overridden by instruction */
    1795217952          {    FP32_2(1),       FP32_2(1),       X86_MXCSR_RC_ZERO,    X86_MXCSR_RC_ZERO    }, /* MXCSR overridden by instruction */
     
    1832318323          {    FP64_12_89_5(1), FP64_12_90_0(1), X86_MXCSR_RC_NEAREST, X86_MXCSR_RC_NEAREST }, /* MXCSR overridden by instruction */
    1832418324          {    FP64_12_89_9(0), FP64_12_89_0(0), X86_MXCSR_RC_NEAREST, X86_MXCSR_RC_NEAREST }, /* MXCSR overridden by instruction */
    18325           {    FP64_12_89_9(1), FP64_12_90_0(1), X86_MXCSR_RC_UP,      X86_MXCSR_RC_UP,     }, /* MXCSR overridden by instruction */
     18325          {    FP64_12_89_9(1), FP64_12_90_0(1), X86_MXCSR_RC_UP,      X86_MXCSR_RC_UP      }, /* MXCSR overridden by instruction */
    1832618326          {    FP64_2(0),       FP64_2(0),       X86_MXCSR_RC_NEAREST, X86_MXCSR_RC_NEAREST }, /* MXCSR overridden by instruction */
    1832718327          {    FP64_2(1),       FP64_2(1),       X86_MXCSR_RC_ZERO,    X86_MXCSR_RC_ZERO    }, /* MXCSR overridden by instruction */
     
    1901919019#define FP64_CMP_F FP64_INT_C(-1)
    1902019020
    19021 static DECLCALLBACK(PBS3CPUINSTR4_TEST1_VALUES_T) bs3CpuInstr4_WorkerTestType1_Provider_cmps(void *paValues, const unsigned cValues, const unsigned iVal, uint8_t uExtra)
     19021static DECLCALLBACK(PBS3CPUINSTR4_TEST1_VALUES_T) bs3CpuInstr4_WorkerTestType1_Provider_cmpps(void *paValues, const unsigned cValues, const unsigned iVal, uint8_t uExtra)
    1902219022{
    1902319023    static BS3CPUINSTR4_TEST1_VALUES_PS_T sValues;
     
    1906419064     */
    1906519065    /* 0*/{ { /* src1    */ { FP32_0(0),   FP32_0(0),   FP32_0(1),   FP32_0(1),   FP32_0(0),   FP32_0(0),   FP32_0(1),   FP32_0(1)   } },
    19066             { /* src2    */ { FP32_0(0),   FP32_0(1),   FP32_0(1),   FP32_0(0),   FP32_0(0),   FP32_0(0),   FP32_0(1),   FP32_0(1)   } },
    19067             { /* =>      */ { FP32_CMP_EQ, FP32_CMP_EQ, FP32_CMP_EQ, FP32_CMP_EQ, FP32_CMP_EQ, FP32_CMP_EQ, FP32_CMP_EQ, FP32_CMP_EQ } },
     19066            { /* src2    */ { FP32_0(0),   FP32_0(1),   FP32_0(1),   FP32_0(0),   FP32_1(0),   FP32_0(0),   FP32_0(1),   FP32_2(1)   } },
     19067            { /* =>      */ { FP32_CMP_EQ, FP32_CMP_EQ, FP32_CMP_EQ, FP32_CMP_EQ, FP32_CMP_LT, FP32_CMP_EQ, FP32_CMP_EQ, FP32_CMP_GT } },
    1906819068              /*mxcsr:in */ 0,
    1906919069              /*128:out  */ 0,
     
    1918319183     * Infinity.
    1918419184     */
    19185     /* 1*/{ { /* src1    */ { FP32_INF(0), FP32_INF(0), FP32_INF(1), FP32_INF(1), FP32_INF(0), FP32_INF(1), FP32_INF(1), FP32_INF(0),} },
     19185    /* 1*/{ { /* src1    */ { FP32_INF(0), FP32_INF(0), FP32_INF(1), FP32_INF(1), FP32_INF(0), FP32_INF(1), FP32_INF(1), FP32_INF(0) } },
    1918619186            { /* src2    */ { FP32_INF(0), FP32_INF(0), FP32_INF(1), FP32_INF(1), FP32_INF(0), FP32_INF(1), FP32_INF(1), FP32_INF(0) } },
    1918719187            { /* =>      */ { FP32_CMP_EQ, FP32_CMP_EQ, FP32_CMP_EQ, FP32_CMP_EQ, FP32_CMP_EQ, FP32_CMP_EQ, FP32_CMP_EQ, FP32_CMP_EQ } },
     
    1925719257        { BS3_INSTR4_ALL(vcmpps_XMM1_XMM2_FSxBX_011h), 255, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, 0x11, PASS_TEST_ARRAY(s_aValues)   },
    1925819258        { BS3_INSTR4_ALL(vcmpps_XMM1_XMM2_FSxBX_013h), 255, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, 0x13, PASS_TEST_ARRAY(s_aValues)   },
    19259         { BS3_INSTR4_ALL(vcmpps_XMM1_XMM2_XMM1_00ch),  255, RM_REG, T_AVX_128, XMM1, XMM1, XMM2,  0x0c, PASS_TEST_ARRAY(s_aValues)   },
     19259        { BS3_INSTR4_ALL(vcmpps_XMM1_XMM2_XMM1_00ch),  255, RM_REG, T_AVX_128, XMM1, XMM2, XMM1,  0x0c, PASS_TEST_ARRAY(s_aValues)   },
    1926019260        { BS3_INSTR4_ALL(vcmpps_XMM1_XMM2_XMM2_00eh),  255, RM_REG, T_AVX_128, XMM1, XMM2, XMM2,  0x0e, PASS_TEST_ARRAY(s_aValuesSR) },
    1926119261        { BS3_INSTR4_ALL(vcmpps_XMM1_XMM2_XMM3_000h),  255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3,  0x00, PASS_TEST_ARRAY(s_aValues)   },
     
    1935219352    };
    1935319353
    19354     return bs3CpuInstr4_WorkerTestType1_P(bMode, PASS_ARRAY(s_aTests), PASS_ARRAY(g_aXcptConfig2), bs3CpuInstr4_WorkerTestType1_Provider_cmps);
     19354    return bs3CpuInstr4_WorkerTestType1_P(bMode, PASS_ARRAY(s_aTests), PASS_ARRAY(g_aXcptConfig2), bs3CpuInstr4_WorkerTestType1_Provider_cmpps);
    1935519355}
     19356
     19357
     19358static DECLCALLBACK(PBS3CPUINSTR4_TEST1_VALUES_T) bs3CpuInstr4_WorkerTestType1_Provider_cmppd(void *paValues, const unsigned cValues, const unsigned iVal, uint8_t uExtra)
     19359{
     19360    static BS3CPUINSTR4_TEST1_VALUES_PD_T sValues;
     19361    BS3CPUINSTR4_TEST1_VALUES_PD_T *psValuesIn = &((BS3CPUINSTR4_TEST1_VALUES_PD_T *)paValues)[iVal];
     19362    unsigned iCnt;
     19363    uint8_t uPredicate;
     19364    bool fSignaling;
     19365
     19366    BS3_ASSERT(uExtra < 32);
     19367    uPredicate = g_aCmpPredicate[uExtra] & CMP_ORDERING_MASK;
     19368    fSignaling = (g_aCmpPredicate[uExtra] & CMP_IE_T) == CMP_IE_T;
     19369
     19370    sValues.uSrc1 = psValuesIn->uSrc1;
     19371    sValues.uSrc2 = psValuesIn->uSrc2;
     19372    sValues.u128ExpectedMxCsr = psValuesIn->u128ExpectedMxCsr;
     19373    sValues.u256ExpectedMxCsr = psValuesIn->u256ExpectedMxCsr;
     19374    for (iCnt = 0; iCnt < RT_ELEMENTS(sValues.uSrc1.ymm.au64); iCnt++)
     19375    {
     19376        uint8_t uCmpResult = psValuesIn->uDstOut.ymm.au64[iCnt] & 0xFF;
     19377
     19378        if (uCmpResult == CMP_IE_T || (uCmpResult == CMP_UN_T && fSignaling))
     19379        {
     19380            sValues.u256ExpectedMxCsr |= X86_MXCSR_IE;
     19381            if (iCnt < RT_ELEMENTS(sValues.uSrc1.ymm.au64) / 2)
     19382                sValues.u128ExpectedMxCsr |= X86_MXCSR_IE;
     19383        }
     19384        if (uCmpResult == CMP_IE_T) uCmpResult = CMP_UN_T;
     19385        sValues.uDstOut.ymm.au64[iCnt] = (uCmpResult & uPredicate) ? 0xFFFFFFFFFFFFFFFFull : 0;
     19386    }
     19387    sValues.uMxCsr = psValuesIn->uMxCsr;
     19388    sValues.afEflOut = 0;
     19389    return (PBS3CPUINSTR4_TEST1_VALUES_T)&sValues;
     19390}
     19391
     19392/*
     19393 * [V]CMPPD.
     19394 */
     19395BS3_DECL_FAR(uint8_t) bs3CpuInstr4_v_cmppd(uint8_t bMode)
     19396{
     19397    static BS3CPUINSTR4_TEST1_VALUES_PD_T const s_aValues[] =
     19398    {
     19399    /*
     19400     * Zero.
     19401     */
     19402    /* 0*/{ { /* src1    */ { FP64_0(0),   FP64_0(0),   FP64_0(1),   FP64_0(1)   } },
     19403            { /* src2    */ { FP64_0(0),   FP64_0(1),   FP64_0(1),   FP64_0(0)   } },
     19404            { /* =>      */ { FP64_CMP_EQ, FP64_CMP_EQ, FP64_CMP_EQ, FP64_CMP_EQ } },
     19405              /*mxcsr:in */ 0,
     19406              /*128:out  */ 0,
     19407              /*256:out  */ 0 },
     19408    /*
     19409     * Infinity.
     19410     */
     19411    /* 1*/{ { /* src1    */ { FP64_INF(0), FP64_INF(0), FP64_INF(0), FP64_INF(1) } },
     19412            { /* src2    */ { FP64_INF(0), FP64_INF(1), FP64_0(0),   FP64_0(1)   } },
     19413            { /* =>      */ { FP64_CMP_EQ, FP64_CMP_GT, FP64_CMP_GT, FP64_CMP_LT } },
     19414              /*mxcsr:in */ 0,
     19415              /*128:out  */ 0,
     19416              /*256:out  */ 0 },
     19417    /*
     19418     * Normals.
     19419     */
     19420    /* 2*/{ { /* src1    */ { FP64_2(0),   FP64_2(0),   FP64_2(1),   FP64_0(0)   } },
     19421            { /* src2    */ { FP64_2(0),   FP64_2(1),   FP64_0(1),   FP64_2(0)   } },
     19422            { /* =>      */ { FP64_CMP_EQ, FP64_CMP_GT, FP64_CMP_LT, FP64_CMP_LT } },
     19423              /*mxcsr:in */ X86_MXCSR_FZ,
     19424              /*128:out  */ X86_MXCSR_FZ,
     19425              /*256:out  */ X86_MXCSR_FZ },
     19426          { { /* src1    */ { FP64_NORM_V0(0), FP64_NORM_V1(0), FP64_NORM_V2(0), FP64_NORM_V3(0) } },
     19427            { /* src2    */ { FP64_NORM_V0(0), FP64_NORM_V2(0), FP64_NORM_V1(0), FP64_NORM_V3(0) } },
     19428            { /* =>      */ { FP64_CMP_EQ,     FP64_CMP_LT,     FP64_CMP_GT,     FP64_CMP_EQ     } },
     19429              /*mxcsr:in */ X86_MXCSR_RC_UP,
     19430              /*128:out  */ X86_MXCSR_RC_UP,
     19431              /*256:out  */ X86_MXCSR_RC_UP },
     19432          { { /* src1    */ { FP64_NORM_V0(1), FP64_NORM_V1(1), FP64_NORM_V2(1), FP64_NORM_V3(1) } },
     19433            { /* src2    */ { FP64_NORM_V0(1), FP64_NORM_V2(1), FP64_NORM_V1(1), FP64_NORM_V3(1) } },
     19434            { /* =>      */ { FP64_CMP_EQ,     FP64_CMP_GT,     FP64_CMP_LT,     FP64_CMP_EQ     } },
     19435              /*mxcsr:in */ X86_MXCSR_RC_UP,
     19436              /*128:out  */ X86_MXCSR_RC_UP,
     19437              /*256:out  */ X86_MXCSR_RC_UP },
     19438          { { /* src1    */ { FP64_RAND_V0(0), FP64_RAND_V1(0), FP64_RAND_V2(0), FP64_RAND_V3(0) } },
     19439            { /* src2    */ { FP64_RAND_V0(0), FP64_RAND_V2(0), FP64_RAND_V1(0), FP64_RAND_V3(0) } },
     19440            { /* =>      */ { FP64_CMP_EQ,     FP64_CMP_GT,     FP64_CMP_LT,     FP64_CMP_EQ     } },
     19441              /*mxcsr:in */ X86_MXCSR_RC_ZERO,
     19442              /*128:out  */ X86_MXCSR_RC_ZERO,
     19443              /*256:out  */ X86_MXCSR_RC_ZERO },
     19444          { { /* src1    */ { FP64_RAND_V0(1), FP64_RAND_V1(1), FP64_RAND_V2(1), FP64_RAND_V3(1) } },
     19445            { /* src2    */ { FP64_RAND_V0(1), FP64_RAND_V2(1), FP64_RAND_V1(1), FP64_RAND_V3(1) } },
     19446            { /* =>      */ { FP64_CMP_EQ,     FP64_CMP_LT,     FP64_CMP_GT,     FP64_CMP_EQ     } },
     19447              /*mxcsr:in */ X86_MXCSR_RC_ZERO,
     19448              /*128:out  */ X86_MXCSR_RC_ZERO,
     19449              /*256:out  */ X86_MXCSR_RC_ZERO },
     19450          { { /* src1    */ { FP64_0_5(0), FP64_0_5(0),    FP64_0_5(0),    FP64_0_5(0) } },
     19451            { /* src2    */ { FP64_0_5(0), FP64_0_5_DN(0), FP64_0_5_UP(0), FP64_0_5(1) } },
     19452            { /* =>      */ { FP64_CMP_EQ, FP64_CMP_GT,    FP64_CMP_LT,    FP64_CMP_GT } },
     19453              /*mxcsr:in */ X86_MXCSR_RC_DOWN,
     19454              /*128:out  */ X86_MXCSR_RC_DOWN,
     19455              /*256:out  */ X86_MXCSR_RC_DOWN },
     19456          { { /* src1    */ { FP64_0_5(1), FP64_0_5(1),    FP64_0_5(1),    FP64_0_5(1) } },
     19457            { /* src2    */ { FP64_0_5(1), FP64_0_5_DN(1), FP64_0_5_UP(1), FP64_0_5(0) } },
     19458            { /* =>      */ { FP64_CMP_EQ, FP64_CMP_LT,    FP64_CMP_GT,    FP64_CMP_LT } },
     19459              /*mxcsr:in */ X86_MXCSR_RC_DOWN,
     19460              /*128:out  */ X86_MXCSR_RC_DOWN,
     19461              /*256:out  */ X86_MXCSR_RC_DOWN },
     19462    /*
     19463     * Denormals.
     19464     */
     19465    /* 9*/{ { /* src1    */ { FP64_DENORM_MAX(0), FP64_DENORM_MIN(1), FP64_DENORM_MAX(0), FP64_DENORM_MIN(1) } },
     19466            { /* src2    */ { FP64_DENORM_MAX(0), FP64_DENORM_MIN(0), FP64_DENORM_MAX(1), FP64_DENORM_MIN(1) } },
     19467            { /* =>      */ { FP64_CMP_EQ,        FP64_CMP_LT,        FP64_CMP_GT,        FP64_CMP_EQ        } },
     19468              /*mxcsr:in */ 0,
     19469              /*128:out  */ X86_MXCSR_DE,
     19470              /*256:out  */ X86_MXCSR_DE },
     19471          { { /* src1    */ { FP64_DENORM_MIN(0), FP64_0(1),          FP64_DENORM_MAX(1), FP64_0(0)          } },
     19472            { /* src2    */ { FP64_0(0),          FP64_DENORM_MAX(0), FP64_0(0),          FP64_DENORM_MIN(1) } },
     19473            { /* =>      */ { FP64_CMP_GT,        FP64_CMP_LT,        FP64_CMP_LT,        FP64_CMP_GT        } },
     19474              /*mxcsr:in */ 0,
     19475              /*128:out  */ X86_MXCSR_DE,
     19476              /*256:out  */ X86_MXCSR_DE },
     19477          { { /* src1    */ { FP64_DENORM_MAX(0), FP64_DENORM_MIN(1), FP64_DENORM_MAX(0), FP64_DENORM_MIN(1) } },
     19478            { /* src2    */ { FP64_DENORM_MAX(0), FP64_DENORM_MIN(0), FP64_DENORM_MAX(1), FP64_DENORM_MIN(1) } },
     19479            { /* =>      */ { FP64_CMP_EQ,        FP64_CMP_EQ,        FP64_CMP_EQ,        FP64_CMP_EQ        } },
     19480              /*mxcsr:in */ X86_MXCSR_DAZ,
     19481              /*128:out  */ X86_MXCSR_DAZ,
     19482              /*256:out  */ X86_MXCSR_DAZ },
     19483          { { /* src1    */ { FP64_DENORM_MIN(0), FP64_0(1),          FP64_DENORM_MAX(1), FP64_0(0)          } },
     19484            { /* src2    */ { FP64_0(0),          FP64_DENORM_MAX(0), FP64_0(0),          FP64_DENORM_MIN(1) } },
     19485            { /* =>      */ { FP64_CMP_EQ,        FP64_CMP_EQ,        FP64_CMP_EQ,        FP64_CMP_EQ        } },
     19486              /*mxcsr:in */ X86_MXCSR_DAZ,
     19487              /*128:out  */ X86_MXCSR_DAZ,
     19488              /*256:out  */ X86_MXCSR_DAZ },
     19489    /*
     19490     * Invalids.
     19491     */
     19492    /*13*/{ { /* src1    */ { FP64_0(0),   FP64_QNAN(0), FP64_0(1),    FP64_0(1)   } },
     19493            { /* src2    */ { FP64_0(0),   FP64_0(1),    FP64_QNAN(1), FP64_0(0)   } },
     19494            { /* =>      */ { FP64_CMP_EQ, FP64_CMP_QN,  FP64_CMP_QN,  FP64_CMP_EQ } },
     19495              /*mxcsr:in */ 0,
     19496              /*128:out  */ 0,
     19497              /*256:out  */ 0 },
     19498          { { /* src1    */ { FP64_INF(0), FP64_INF(0), FP64_QNAN(0), FP64_INF(1)  } },
     19499            { /* src2    */ { FP64_INF(0), FP64_INF(1), FP64_0(0),    FP64_QNAN(1) } },
     19500            { /* =>      */ { FP64_CMP_EQ, FP64_CMP_GT, FP64_CMP_QN,  FP64_CMP_QN  } },
     19501              /*mxcsr:in */ 0,
     19502              /*128:out  */ 0,
     19503              /*256:out  */ 0 },
     19504          { { /* src1    */ { FP64_NORM_V0(0), FP64_SNAN_V1(0), FP64_NORM_V0(1), FP64_NORM_V1(1) } },
     19505            { /* src2    */ { FP64_NORM_V0(0), FP64_NORM_V2(0), FP64_NORM_V0(1), FP64_NORM_V2(1) } },
     19506            { /* =>      */ { FP64_CMP_EQ,     FP64_CMP_SN,     FP64_CMP_EQ,     FP64_CMP_GT     } },
     19507              /*mxcsr:in */ X86_MXCSR_RC_UP,
     19508              /*128:out  */ X86_MXCSR_RC_UP,
     19509              /*256:out  */ X86_MXCSR_RC_UP },
     19510          { { /* src1    */ { FP64_RAND_V0(0), FP64_RAND_V1(0), FP64_RAND_V2(0), FP64_SNAN_V0(1) } },
     19511            { /* src2    */ { FP64_RAND_V0(0), FP64_RAND_V2(0), FP64_RAND_V1(0), FP64_RAND_V0(1) } },
     19512            { /* =>      */ { FP64_CMP_EQ,     FP64_CMP_GT,     FP64_CMP_LT,     FP64_CMP_SN     } },
     19513              /*mxcsr:in */ X86_MXCSR_RC_ZERO,
     19514              /*128:out  */ X86_MXCSR_RC_ZERO,
     19515              /*256:out  */ X86_MXCSR_RC_ZERO },
     19516          { { /* src1    */ { FP64_DENORM_MAX(0), FP64_0(0),          FP64_0(0),          FP64_QNAN_V3(0) } },
     19517            { /* src2    */ { FP64_QNAN_V1(1),    FP64_DENORM_MAX(0), FP64_DENORM_MAX(1), FP64_SNAN(1)    } },
     19518            { /* =>      */ { FP64_CMP_QN,        FP64_CMP_LT,        FP64_CMP_GT,        FP64_CMP_SN     } },
     19519              /*mxcsr:in */ 0,
     19520              /*128:out  */ X86_MXCSR_DE,
     19521              /*256:out  */ X86_MXCSR_DE },
     19522    /*
     19523     * Precision, Overflow, Underflow not possible.
     19524     */
     19525    };
     19526    static BS3CPUINSTR4_TEST1_VALUES_PD_T const s_aValuesSR[] =
     19527    {
     19528    /*
     19529     * Zero.
     19530     */
     19531    /* 0*/{ { /* src1    */ { FP64_0(0),   FP64_0(1),   FP64_0(1),   FP64_0(0)   } },
     19532            { /* src2    */ { FP64_0(0),   FP64_0(1),   FP64_0(1),   FP64_0(0)   } },
     19533            { /* =>      */ { FP64_CMP_EQ, FP64_CMP_EQ, FP64_CMP_EQ, FP64_CMP_EQ } },
     19534              /*mxcsr:in */ 0,
     19535              /*128:out  */ 0,
     19536              /*256:out  */ 0 },
     19537    /*
     19538     * Infinity.
     19539     */
     19540    /* 1*/{ { /* src1    */ { FP64_INF(0), FP64_INF(1), FP64_INF(0), FP64_INF(1) } },
     19541            { /* src2    */ { FP64_INF(0), FP64_INF(1), FP64_INF(0), FP64_INF(1) } },
     19542            { /* =>      */ { FP64_CMP_EQ, FP64_CMP_EQ, FP64_CMP_EQ, FP64_CMP_EQ } },
     19543              /*mxcsr:in */ 0,
     19544              /*128:out  */ 0,
     19545              /*256:out  */ 0 },
     19546    /*
     19547     * Normals.
     19548     */
     19549    /* 2*/{ { /* src1    */ { FP64_2(0),   FP64_2(1),   FP64_2(1),   FP64_2(0)   } },
     19550            { /* src2    */ { FP64_2(0),   FP64_2(1),   FP64_2(1),   FP64_2(0)   } },
     19551            { /* =>      */ { FP64_CMP_EQ, FP64_CMP_EQ, FP64_CMP_EQ, FP64_CMP_EQ } },
     19552              /*mxcsr:in */ 0,
     19553              /*128:out  */ 0,
     19554              /*256:out  */ 0 },
     19555          { { /* src1    */ { FP64_NORM_V0(0), FP64_NORM_V1(0), FP64_NORM_V2(0), FP64_NORM_V3(0) } },
     19556            { /* src2    */ { FP64_NORM_V0(0), FP64_NORM_V1(0), FP64_NORM_V2(0), FP64_NORM_V3(0) } },
     19557            { /* =>      */ { FP64_CMP_EQ,     FP64_CMP_EQ,     FP64_CMP_EQ,     FP64_CMP_EQ     } },
     19558              /*mxcsr:in */ 0,
     19559              /*128:out  */ 0,
     19560              /*256:out  */ 0 },
     19561    /*
     19562     * Denormals.
     19563     */
     19564    /* 4*/{ { /* src1    */ { FP64_DENORM_MAX(0), FP64_DENORM_MAX(1), FP64_DENORM_MIN(0), FP64_DENORM_MIN(1) } },
     19565            { /* src2    */ { FP64_DENORM_MAX(0), FP64_DENORM_MAX(1), FP64_DENORM_MIN(0), FP64_DENORM_MIN(1) } },
     19566            { /* =>      */ { FP64_CMP_EQ,        FP64_CMP_EQ,        FP64_CMP_EQ,        FP64_CMP_EQ        } },
     19567              /*mxcsr:in */ 0,
     19568              /*128:out  */ X86_MXCSR_DE,
     19569              /*256:out  */ X86_MXCSR_DE },
     19570    /*
     19571     * Invalids.
     19572     */
     19573    /* 5*/{ { /* src1    */ { FP64_INF(0), FP64_SNAN(1), FP64_INF(1), FP64_INF(1) } },
     19574            { /* src2    */ { FP64_INF(0), FP64_SNAN(1), FP64_INF(1), FP64_INF(1) } },
     19575            { /* =>      */ { FP64_CMP_EQ, FP64_CMP_SN,  FP64_CMP_EQ, FP64_CMP_EQ } },
     19576              /*mxcsr:in */ 0,
     19577              /*128:out  */ 0,
     19578              /*256:out  */ 0 },
     19579          { { /* src1    */ { FP64_QNAN(0), FP64_INF(1),  FP64_0(0),   FP64_2(1)   } },
     19580            { /* src2    */ { FP64_QNAN(0), FP64_INF(1),  FP64_0(0),   FP64_2(1)   } },
     19581            { /* =>      */ { FP64_CMP_QN,  FP64_CMP_EQ,  FP64_CMP_EQ, FP64_CMP_EQ } },
     19582              /*mxcsr:in */ 0,
     19583              /*128:out  */ 0,
     19584              /*256:out  */ 0 },
     19585    /*
     19586     * Precision, Overflow, Underflow not possible.
     19587     */
     19588    };
     19589
     19590    static BS3CPUINSTR4_TEST1_T const s_aTests[] =
     19591    {
     19592        { BS3_INSTR4_ALL(cmppd_XMM1_XMM1_000h),        255, RM_REG, T_SSE2,    XMM1, XMM1, XMM1,  0x00, PASS_TEST_ARRAY(s_aValuesSR) },
     19593        { BS3_INSTR4_ALL(cmppd_XMM1_XMM1_006h),        255, RM_REG, T_SSE2,    XMM1, XMM1, XMM1,  0x06, PASS_TEST_ARRAY(s_aValuesSR) },
     19594        { BS3_INSTR4_ALL(cmppd_XMM1_XMM2_000h),        255, RM_REG, T_SSE2,    XMM1, XMM1, XMM2,  0x00, PASS_TEST_ARRAY(s_aValues)   },
     19595        { BS3_INSTR4_ALL(cmppd_XMM1_XMM2_001h),        255, RM_REG, T_SSE2,    XMM1, XMM1, XMM2,  0x01, PASS_TEST_ARRAY(s_aValues)   },
     19596        { BS3_INSTR4_ALL(cmppd_XMM1_XMM2_002h),        255, RM_REG, T_SSE2,    XMM1, XMM1, XMM2,  0x02, PASS_TEST_ARRAY(s_aValues)   },
     19597        { BS3_INSTR4_ALL(cmppd_XMM1_XMM2_003h),        255, RM_REG, T_SSE2,    XMM1, XMM1, XMM2,  0x03, PASS_TEST_ARRAY(s_aValues)   },
     19598        { BS3_INSTR4_ALL(cmppd_XMM1_XMM2_004h),        255, RM_REG, T_SSE2,    XMM1, XMM1, XMM2,  0x04, PASS_TEST_ARRAY(s_aValues)   },
     19599        { BS3_INSTR4_ALL(cmppd_XMM1_XMM2_005h),        255, RM_REG, T_SSE2,    XMM1, XMM1, XMM2,  0x05, PASS_TEST_ARRAY(s_aValues)   },
     19600        { BS3_INSTR4_ALL(cmppd_XMM1_XMM2_006h),        255, RM_REG, T_SSE2,    XMM1, XMM1, XMM2,  0x06, PASS_TEST_ARRAY(s_aValues)   },
     19601        { BS3_INSTR4_ALL(cmppd_XMM1_XMM2_007h),        255, RM_REG, T_SSE2,    XMM1, XMM1, XMM2,  0x07, PASS_TEST_ARRAY(s_aValues)   },
     19602        { BS3_INSTR4_ALL(cmppd_XMM1_XMM2_008h),        255, RM_REG, T_SSE2,    XMM1, XMM1, XMM2,  0x00, PASS_TEST_ARRAY(s_aValues)   }, /* reserved */
     19603        { BS3_INSTR4_ALL(cmppd_XMM1_XMM2_011h),        255, RM_REG, T_SSE2,    XMM1, XMM1, XMM2,  0x01, PASS_TEST_ARRAY(s_aValues)   }, /* reserved */
     19604        { BS3_INSTR4_ALL(cmppd_XMM1_XMM2_022h),        255, RM_REG, T_SSE2,    XMM1, XMM1, XMM2,  0x02, PASS_TEST_ARRAY(s_aValues)   }, /* reserved */
     19605        { BS3_INSTR4_ALL(cmppd_XMM1_XMM2_043h),        255, RM_REG, T_SSE2,    XMM1, XMM1, XMM2,  0x03, PASS_TEST_ARRAY(s_aValues)   }, /* reserved */
     19606        { BS3_INSTR4_ALL(cmppd_XMM1_XMM2_084h),        255, RM_REG, T_SSE2,    XMM1, XMM1, XMM2,  0x04, PASS_TEST_ARRAY(s_aValues)   }, /* reserved */
     19607        { BS3_INSTR4_ALL(cmppd_XMM1_FSxBX_001h),       255, RM_MEM, T_SSE2,    XMM1, XMM1, FSxBX, 0x01, PASS_TEST_ARRAY(s_aValues)   },
     19608        { BS3_INSTR4_ALL(cmppd_XMM1_FSxBX_004h),       255, RM_MEM, T_SSE2,    XMM1, XMM1, FSxBX, 0x04, PASS_TEST_ARRAY(s_aValues)   },
     19609        { BS3_INSTR4_ALL(cmppd_XMM1_FSxBX_007h),       255, RM_MEM, T_SSE2,    XMM1, XMM1, FSxBX, 0x07, PASS_TEST_ARRAY(s_aValues)   },
     19610        { BS3_INSTR4_C64(cmppd_XMM8_XMM8_005h),        255, RM_REG, T_SSE2,    XMM8, XMM8, XMM8,  0x05, PASS_TEST_ARRAY(s_aValuesSR) },
     19611        { BS3_INSTR4_C64(cmppd_XMM8_XMM9_002h),        255, RM_REG, T_SSE2,    XMM8, XMM8, XMM9,  0x02, PASS_TEST_ARRAY(s_aValues)   },
     19612        { BS3_INSTR4_C64(cmppd_XMM8_FSxBX_003h),       255, RM_MEM, T_SSE2,    XMM8, XMM8, FSxBX, 0x03, PASS_TEST_ARRAY(s_aValues)   },
     19613
     19614        { BS3_INSTR4_ALL(vcmppd_XMM1_XMM1_FSxBX_00bh), 255, RM_MEM, T_AVX_128, XMM1, XMM1, FSxBX, 0x0b, PASS_TEST_ARRAY(s_aValues)   },
     19615        { BS3_INSTR4_ALL(vcmppd_XMM1_XMM1_XMM1_005h),  255, RM_REG, T_AVX_128, XMM1, XMM1, XMM1,  0x05, PASS_TEST_ARRAY(s_aValuesSR) },
     19616        { BS3_INSTR4_ALL(vcmppd_XMM1_XMM1_XMM2_00ah),  255, RM_REG, T_AVX_128, XMM1, XMM1, XMM2,  0x0a, PASS_TEST_ARRAY(s_aValues)   },
     19617        { BS3_INSTR4_ALL(vcmppd_XMM1_XMM2_FSxBX_010h), 255, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, 0x10, PASS_TEST_ARRAY(s_aValues)   },
     19618        { BS3_INSTR4_ALL(vcmppd_XMM1_XMM2_FSxBX_011h), 255, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, 0x11, PASS_TEST_ARRAY(s_aValues)   },
     19619        { BS3_INSTR4_ALL(vcmppd_XMM1_XMM2_FSxBX_013h), 255, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, 0x13, PASS_TEST_ARRAY(s_aValues)   },
     19620        { BS3_INSTR4_ALL(vcmppd_XMM1_XMM2_XMM1_00ch),  255, RM_REG, T_AVX_128, XMM1, XMM2, XMM1,  0x0c, PASS_TEST_ARRAY(s_aValues)   },
     19621        { BS3_INSTR4_ALL(vcmppd_XMM1_XMM2_XMM2_00eh),  255, RM_REG, T_AVX_128, XMM1, XMM2, XMM2,  0x0e, PASS_TEST_ARRAY(s_aValuesSR) },
     19622        { BS3_INSTR4_ALL(vcmppd_XMM1_XMM2_XMM3_000h),  255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3,  0x00, PASS_TEST_ARRAY(s_aValues)   },
     19623        { BS3_INSTR4_ALL(vcmppd_XMM1_XMM2_XMM3_001h),  255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3,  0x01, PASS_TEST_ARRAY(s_aValues)   },
     19624        { BS3_INSTR4_ALL(vcmppd_XMM1_XMM2_XMM3_002h),  255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3,  0x02, PASS_TEST_ARRAY(s_aValues)   },
     19625        { BS3_INSTR4_ALL(vcmppd_XMM1_XMM2_XMM3_003h),  255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3,  0x03, PASS_TEST_ARRAY(s_aValues)   },
     19626        { BS3_INSTR4_ALL(vcmppd_XMM1_XMM2_XMM3_004h),  255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3,  0x04, PASS_TEST_ARRAY(s_aValues)   },
     19627        { BS3_INSTR4_ALL(vcmppd_XMM1_XMM2_XMM3_005h),  255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3,  0x05, PASS_TEST_ARRAY(s_aValues)   },
     19628        { BS3_INSTR4_ALL(vcmppd_XMM1_XMM2_XMM3_006h),  255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3,  0x06, PASS_TEST_ARRAY(s_aValues)   },
     19629        { BS3_INSTR4_ALL(vcmppd_XMM1_XMM2_XMM3_007h),  255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3,  0x07, PASS_TEST_ARRAY(s_aValues)   },
     19630        { BS3_INSTR4_ALL(vcmppd_XMM1_XMM2_XMM3_008h),  255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3,  0x08, PASS_TEST_ARRAY(s_aValues)   },
     19631        { BS3_INSTR4_ALL(vcmppd_XMM1_XMM2_XMM3_009h),  255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3,  0x09, PASS_TEST_ARRAY(s_aValues)   },
     19632        { BS3_INSTR4_ALL(vcmppd_XMM1_XMM2_XMM3_00ah),  255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3,  0x0a, PASS_TEST_ARRAY(s_aValues)   },
     19633        { BS3_INSTR4_ALL(vcmppd_XMM1_XMM2_XMM3_00bh),  255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3,  0x0b, PASS_TEST_ARRAY(s_aValues)   },
     19634        { BS3_INSTR4_ALL(vcmppd_XMM1_XMM2_XMM3_00ch),  255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3,  0x0c, PASS_TEST_ARRAY(s_aValues)   },
     19635        { BS3_INSTR4_ALL(vcmppd_XMM1_XMM2_XMM3_00dh),  255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3,  0x0d, PASS_TEST_ARRAY(s_aValues)   },
     19636        { BS3_INSTR4_ALL(vcmppd_XMM1_XMM2_XMM3_00eh),  255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3,  0x0e, PASS_TEST_ARRAY(s_aValues)   },
     19637        { BS3_INSTR4_ALL(vcmppd_XMM1_XMM2_XMM3_00fh),  255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3,  0x0f, PASS_TEST_ARRAY(s_aValues)   },
     19638        { BS3_INSTR4_ALL(vcmppd_XMM1_XMM2_XMM3_010h),  255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3,  0x10, PASS_TEST_ARRAY(s_aValues)   },
     19639        { BS3_INSTR4_ALL(vcmppd_XMM1_XMM2_XMM3_011h),  255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3,  0x11, PASS_TEST_ARRAY(s_aValues)   },
     19640        { BS3_INSTR4_ALL(vcmppd_XMM1_XMM2_XMM3_012h),  255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3,  0x12, PASS_TEST_ARRAY(s_aValues)   },
     19641        { BS3_INSTR4_ALL(vcmppd_XMM1_XMM2_XMM3_013h),  255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3,  0x13, PASS_TEST_ARRAY(s_aValues)   },
     19642        { BS3_INSTR4_ALL(vcmppd_XMM1_XMM2_XMM3_014h),  255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3,  0x14, PASS_TEST_ARRAY(s_aValues)   },
     19643        { BS3_INSTR4_ALL(vcmppd_XMM1_XMM2_XMM3_015h),  255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3,  0x15, PASS_TEST_ARRAY(s_aValues)   },
     19644        { BS3_INSTR4_ALL(vcmppd_XMM1_XMM2_XMM3_016h),  255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3,  0x16, PASS_TEST_ARRAY(s_aValues)   },
     19645        { BS3_INSTR4_ALL(vcmppd_XMM1_XMM2_XMM3_017h),  255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3,  0x17, PASS_TEST_ARRAY(s_aValues)   },
     19646        { BS3_INSTR4_ALL(vcmppd_XMM1_XMM2_XMM3_018h),  255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3,  0x18, PASS_TEST_ARRAY(s_aValues)   },
     19647        { BS3_INSTR4_ALL(vcmppd_XMM1_XMM2_XMM3_019h),  255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3,  0x19, PASS_TEST_ARRAY(s_aValues)   },
     19648        { BS3_INSTR4_ALL(vcmppd_XMM1_XMM2_XMM3_01ah),  255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3,  0x1a, PASS_TEST_ARRAY(s_aValues)   },
     19649        { BS3_INSTR4_ALL(vcmppd_XMM1_XMM2_XMM3_01bh),  255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3,  0x1b, PASS_TEST_ARRAY(s_aValues)   },
     19650        { BS3_INSTR4_ALL(vcmppd_XMM1_XMM2_XMM3_01ch),  255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3,  0x1c, PASS_TEST_ARRAY(s_aValues)   },
     19651        { BS3_INSTR4_ALL(vcmppd_XMM1_XMM2_XMM3_01dh),  255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3,  0x1d, PASS_TEST_ARRAY(s_aValues)   },
     19652        { BS3_INSTR4_ALL(vcmppd_XMM1_XMM2_XMM3_01eh),  255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3,  0x1e, PASS_TEST_ARRAY(s_aValues)   },
     19653        { BS3_INSTR4_ALL(vcmppd_XMM1_XMM2_XMM3_01fh),  255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3,  0x1f, PASS_TEST_ARRAY(s_aValues)   },
     19654        { BS3_INSTR4_ALL(vcmppd_XMM1_XMM2_XMM3_022h),  255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3,  0x02, PASS_TEST_ARRAY(s_aValues)   }, /* reserved */
     19655        { BS3_INSTR4_ALL(vcmppd_XMM1_XMM2_XMM3_044h),  255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3,  0x04, PASS_TEST_ARRAY(s_aValues)   }, /* reserved */
     19656        { BS3_INSTR4_C64(vcmppd_XMM8_XMM8_FSxBX_01fh), 255, RM_MEM, T_AVX_128, XMM8, XMM8, FSxBX, 0x1f, PASS_TEST_ARRAY(s_aValues)   },
     19657        { BS3_INSTR4_C64(vcmppd_XMM8_XMM9_FSxBX_01dh), 255, RM_MEM, T_AVX_128, XMM8, XMM9, FSxBX, 0x1d, PASS_TEST_ARRAY(s_aValues)   },
     19658        { BS3_INSTR4_C64(vcmppd_XMM8_XMM9_XMM9_01ah),  255, RM_REG, T_AVX_128, XMM8, XMM9, XMM9,  0x1a, PASS_TEST_ARRAY(s_aValuesSR) },
     19659        { BS3_INSTR4_C64(vcmppd_XMM8_XMM9_XMM10_016h), 255, RM_REG, T_AVX_128, XMM8, XMM9, XMM10, 0x16, PASS_TEST_ARRAY(s_aValues)   },
     19660        { BS3_INSTR4_C64(vcmppd_XMM8_XMM9_XMM10_017h), 255, RM_REG, T_AVX_128, XMM8, XMM9, XMM10, 0x17, PASS_TEST_ARRAY(s_aValues)   },
     19661        { BS3_INSTR4_C64(vcmppd_XMM8_XMM9_XMM10_019h), 255, RM_REG, T_AVX_128, XMM8, XMM9, XMM10, 0x19, PASS_TEST_ARRAY(s_aValues)   },
     19662        { BS3_INSTR4_C64(vcmppd_XMM8_XMM9_XMM10_0ddh), 255, RM_REG, T_AVX_128, XMM8, XMM9, XMM10, 0x1d, PASS_TEST_ARRAY(s_aValues)   }, /* reserved */
     19663
     19664        { BS3_INSTR4_ALL(vcmppd_YMM1_YMM1_FSxBX_00bh), 255, RM_MEM, T_AVX_256, YMM1, YMM1, FSxBX, 0x0b, PASS_TEST_ARRAY(s_aValues)   },
     19665        { BS3_INSTR4_ALL(vcmppd_YMM1_YMM1_YMM1_005h),  255, RM_REG, T_AVX_256, YMM1, YMM1, YMM1,  0x05, PASS_TEST_ARRAY(s_aValuesSR) },
     19666        { BS3_INSTR4_ALL(vcmppd_YMM1_YMM1_YMM2_00ah),  255, RM_REG, T_AVX_256, YMM1, YMM1, YMM2,  0x0a, PASS_TEST_ARRAY(s_aValues)   },
     19667        { BS3_INSTR4_ALL(vcmppd_YMM1_YMM2_FSxBX_010h), 255, RM_MEM, T_AVX_256, YMM1, YMM2, FSxBX, 0x10, PASS_TEST_ARRAY(s_aValues)   },
     19668        { BS3_INSTR4_ALL(vcmppd_YMM1_YMM2_FSxBX_011h), 255, RM_MEM, T_AVX_256, YMM1, YMM2, FSxBX, 0x11, PASS_TEST_ARRAY(s_aValues)   },
     19669        { BS3_INSTR4_ALL(vcmppd_YMM1_YMM2_FSxBX_013h), 255, RM_MEM, T_AVX_256, YMM1, YMM2, FSxBX, 0x13, PASS_TEST_ARRAY(s_aValues)   },
     19670        { BS3_INSTR4_ALL(vcmppd_YMM1_YMM2_YMM1_00ch),  255, RM_REG, T_AVX_256, YMM1, YMM1, YMM2,  0x0c, PASS_TEST_ARRAY(s_aValues)   },
     19671        { BS3_INSTR4_ALL(vcmppd_YMM1_YMM2_YMM2_00eh),  255, RM_REG, T_AVX_256, YMM1, YMM2, YMM2,  0x0e, PASS_TEST_ARRAY(s_aValuesSR) },
     19672        { BS3_INSTR4_ALL(vcmppd_YMM1_YMM2_YMM3_000h),  255, RM_REG, T_AVX_256, YMM1, YMM2, YMM3,  0x00, PASS_TEST_ARRAY(s_aValues)   },
     19673        { BS3_INSTR4_ALL(vcmppd_YMM1_YMM2_YMM3_001h),  255, RM_REG, T_AVX_256, YMM1, YMM2, YMM3,  0x01, PASS_TEST_ARRAY(s_aValues)   },
     19674        { BS3_INSTR4_ALL(vcmppd_YMM1_YMM2_YMM3_002h),  255, RM_REG, T_AVX_256, YMM1, YMM2, YMM3,  0x02, PASS_TEST_ARRAY(s_aValues)   },
     19675        { BS3_INSTR4_ALL(vcmppd_YMM1_YMM2_YMM3_003h),  255, RM_REG, T_AVX_256, YMM1, YMM2, YMM3,  0x03, PASS_TEST_ARRAY(s_aValues)   },
     19676        { BS3_INSTR4_ALL(vcmppd_YMM1_YMM2_YMM3_004h),  255, RM_REG, T_AVX_256, YMM1, YMM2, YMM3,  0x04, PASS_TEST_ARRAY(s_aValues)   },
     19677        { BS3_INSTR4_ALL(vcmppd_YMM1_YMM2_YMM3_005h),  255, RM_REG, T_AVX_256, YMM1, YMM2, YMM3,  0x05, PASS_TEST_ARRAY(s_aValues)   },
     19678        { BS3_INSTR4_ALL(vcmppd_YMM1_YMM2_YMM3_006h),  255, RM_REG, T_AVX_256, YMM1, YMM2, YMM3,  0x06, PASS_TEST_ARRAY(s_aValues)   },
     19679        { BS3_INSTR4_ALL(vcmppd_YMM1_YMM2_YMM3_007h),  255, RM_REG, T_AVX_256, YMM1, YMM2, YMM3,  0x07, PASS_TEST_ARRAY(s_aValues)   },
     19680        { BS3_INSTR4_ALL(vcmppd_YMM1_YMM2_YMM3_008h),  255, RM_REG, T_AVX_256, YMM1, YMM2, YMM3,  0x08, PASS_TEST_ARRAY(s_aValues)   },
     19681        { BS3_INSTR4_ALL(vcmppd_YMM1_YMM2_YMM3_009h),  255, RM_REG, T_AVX_256, YMM1, YMM2, YMM3,  0x09, PASS_TEST_ARRAY(s_aValues)   },
     19682        { BS3_INSTR4_ALL(vcmppd_YMM1_YMM2_YMM3_00ah),  255, RM_REG, T_AVX_256, YMM1, YMM2, YMM3,  0x0a, PASS_TEST_ARRAY(s_aValues)   },
     19683        { BS3_INSTR4_ALL(vcmppd_YMM1_YMM2_YMM3_00bh),  255, RM_REG, T_AVX_256, YMM1, YMM2, YMM3,  0x0b, PASS_TEST_ARRAY(s_aValues)   },
     19684        { BS3_INSTR4_ALL(vcmppd_YMM1_YMM2_YMM3_00ch),  255, RM_REG, T_AVX_256, YMM1, YMM2, YMM3,  0x0c, PASS_TEST_ARRAY(s_aValues)   },
     19685        { BS3_INSTR4_ALL(vcmppd_YMM1_YMM2_YMM3_00dh),  255, RM_REG, T_AVX_256, YMM1, YMM2, YMM3,  0x0d, PASS_TEST_ARRAY(s_aValues)   },
     19686        { BS3_INSTR4_ALL(vcmppd_YMM1_YMM2_YMM3_00eh),  255, RM_REG, T_AVX_256, YMM1, YMM2, YMM3,  0x0e, PASS_TEST_ARRAY(s_aValues)   },
     19687        { BS3_INSTR4_ALL(vcmppd_YMM1_YMM2_YMM3_00fh),  255, RM_REG, T_AVX_256, YMM1, YMM2, YMM3,  0x0f, PASS_TEST_ARRAY(s_aValues)   },
     19688        { BS3_INSTR4_ALL(vcmppd_YMM1_YMM2_YMM3_010h),  255, RM_REG, T_AVX_256, YMM1, YMM2, YMM3,  0x10, PASS_TEST_ARRAY(s_aValues)   },
     19689        { BS3_INSTR4_ALL(vcmppd_YMM1_YMM2_YMM3_011h),  255, RM_REG, T_AVX_256, YMM1, YMM2, YMM3,  0x11, PASS_TEST_ARRAY(s_aValues)   },
     19690        { BS3_INSTR4_ALL(vcmppd_YMM1_YMM2_YMM3_012h),  255, RM_REG, T_AVX_256, YMM1, YMM2, YMM3,  0x12, PASS_TEST_ARRAY(s_aValues)   },
     19691        { BS3_INSTR4_ALL(vcmppd_YMM1_YMM2_YMM3_013h),  255, RM_REG, T_AVX_256, YMM1, YMM2, YMM3,  0x13, PASS_TEST_ARRAY(s_aValues)   },
     19692        { BS3_INSTR4_ALL(vcmppd_YMM1_YMM2_YMM3_014h),  255, RM_REG, T_AVX_256, YMM1, YMM2, YMM3,  0x14, PASS_TEST_ARRAY(s_aValues)   },
     19693        { BS3_INSTR4_ALL(vcmppd_YMM1_YMM2_YMM3_015h),  255, RM_REG, T_AVX_256, YMM1, YMM2, YMM3,  0x15, PASS_TEST_ARRAY(s_aValues)   },
     19694        { BS3_INSTR4_ALL(vcmppd_YMM1_YMM2_YMM3_016h),  255, RM_REG, T_AVX_256, YMM1, YMM2, YMM3,  0x16, PASS_TEST_ARRAY(s_aValues)   },
     19695        { BS3_INSTR4_ALL(vcmppd_YMM1_YMM2_YMM3_017h),  255, RM_REG, T_AVX_256, YMM1, YMM2, YMM3,  0x17, PASS_TEST_ARRAY(s_aValues)   },
     19696        { BS3_INSTR4_ALL(vcmppd_YMM1_YMM2_YMM3_018h),  255, RM_REG, T_AVX_256, YMM1, YMM2, YMM3,  0x18, PASS_TEST_ARRAY(s_aValues)   },
     19697        { BS3_INSTR4_ALL(vcmppd_YMM1_YMM2_YMM3_019h),  255, RM_REG, T_AVX_256, YMM1, YMM2, YMM3,  0x19, PASS_TEST_ARRAY(s_aValues)   },
     19698        { BS3_INSTR4_ALL(vcmppd_YMM1_YMM2_YMM3_01ah),  255, RM_REG, T_AVX_256, YMM1, YMM2, YMM3,  0x1a, PASS_TEST_ARRAY(s_aValues)   },
     19699        { BS3_INSTR4_ALL(vcmppd_YMM1_YMM2_YMM3_01bh),  255, RM_REG, T_AVX_256, YMM1, YMM2, YMM3,  0x1b, PASS_TEST_ARRAY(s_aValues)   },
     19700        { BS3_INSTR4_ALL(vcmppd_YMM1_YMM2_YMM3_01ch),  255, RM_REG, T_AVX_256, YMM1, YMM2, YMM3,  0x1c, PASS_TEST_ARRAY(s_aValues)   },
     19701        { BS3_INSTR4_ALL(vcmppd_YMM1_YMM2_YMM3_01dh),  255, RM_REG, T_AVX_256, YMM1, YMM2, YMM3,  0x1d, PASS_TEST_ARRAY(s_aValues)   },
     19702        { BS3_INSTR4_ALL(vcmppd_YMM1_YMM2_YMM3_01eh),  255, RM_REG, T_AVX_256, YMM1, YMM2, YMM3,  0x1e, PASS_TEST_ARRAY(s_aValues)   },
     19703        { BS3_INSTR4_ALL(vcmppd_YMM1_YMM2_YMM3_01fh),  255, RM_REG, T_AVX_256, YMM1, YMM2, YMM3,  0x1f, PASS_TEST_ARRAY(s_aValues)   },
     19704        { BS3_INSTR4_ALL(vcmppd_YMM1_YMM2_YMM3_022h),  255, RM_REG, T_AVX_256, YMM1, YMM2, YMM3,  0x02, PASS_TEST_ARRAY(s_aValues)   }, /* reserved */
     19705        { BS3_INSTR4_ALL(vcmppd_YMM1_YMM2_YMM3_044h),  255, RM_REG, T_AVX_256, YMM1, YMM2, YMM3,  0x04, PASS_TEST_ARRAY(s_aValues)   }, /* reserved */
     19706        { BS3_INSTR4_C64(vcmppd_YMM8_YMM8_FSxBX_01fh), 255, RM_MEM, T_AVX_256, YMM8, YMM8, FSxBX, 0x1f, PASS_TEST_ARRAY(s_aValues)   },
     19707        { BS3_INSTR4_C64(vcmppd_YMM8_YMM9_FSxBX_01dh), 255, RM_MEM, T_AVX_256, YMM8, YMM9, FSxBX, 0x1d, PASS_TEST_ARRAY(s_aValues)   },
     19708        { BS3_INSTR4_C64(vcmppd_YMM8_YMM9_YMM9_01ah),  255, RM_REG, T_AVX_256, YMM8, YMM9, YMM9,  0x1a, PASS_TEST_ARRAY(s_aValuesSR) },
     19709        { BS3_INSTR4_C64(vcmppd_YMM8_YMM9_YMM10_016h), 255, RM_REG, T_AVX_256, YMM8, YMM9, YMM10, 0x16, PASS_TEST_ARRAY(s_aValues)   },
     19710        { BS3_INSTR4_C64(vcmppd_YMM8_YMM9_YMM10_017h), 255, RM_REG, T_AVX_256, YMM8, YMM9, YMM10, 0x17, PASS_TEST_ARRAY(s_aValues)   },
     19711        { BS3_INSTR4_C64(vcmppd_YMM8_YMM9_YMM10_019h), 255, RM_REG, T_AVX_256, YMM8, YMM9, YMM10, 0x19, PASS_TEST_ARRAY(s_aValues)   },
     19712        { BS3_INSTR4_C64(vcmppd_YMM8_YMM9_YMM10_0ddh), 255, RM_REG, T_AVX_256, YMM8, YMM9, YMM10, 0x1d, PASS_TEST_ARRAY(s_aValues)   }, /* reserved */
     19713    };
     19714
     19715    return bs3CpuInstr4_WorkerTestType1_P(bMode, PASS_ARRAY(s_aTests), PASS_ARRAY(g_aXcptConfig2), bs3CpuInstr4_WorkerTestType1_Provider_cmppd);
     19716}
     19717
    1935619718
    1935719719/*
     
    2412724489        { "[v]roundsd",     bs3CpuInstr4_v_roundsd,   0 },
    2412824490        { "[v]cmpps",       bs3CpuInstr4_v_cmpps,     0 },
     24491        { "[v]cmppd",       bs3CpuInstr4_v_cmppd,     0 },
    2412924492        { "[v]comiss",      bs3CpuInstr4_v_comiss,    0 },
    2413024493        { "[v]ucomiss",     bs3CpuInstr4_v_ucomiss,   0 },
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette