Lines Matching refs:CPUFeatures

80     auditor_->last_instruction_ = CPUFeatures::None();
86 void Record(const CPUFeatures& features) {
90 void Record(CPUFeatures::Feature feature0,
91 CPUFeatures::Feature feature1 = CPUFeatures::kNone,
92 CPUFeatures::Feature feature2 = CPUFeatures::kNone,
93 CPUFeatures::Feature feature3 = CPUFeatures::kNone) {
100 void RecordOneOrBothOf(CPUFeatures::Feature a, CPUFeatures::Feature b) {
123 scope.Record(CPUFeatures::kNEON);
131 scope.RecordOneOrBothOf(CPUFeatures::kFP, CPUFeatures::kNEON);
144 scope.Record(CPUFeatures::kNEON);
150 scope.RecordOneOrBothOf(CPUFeatures::kFP, CPUFeatures::kNEON);
183 scope.Record(CPUFeatures::kFlagM);
193 scope.Record(CPUFeatures::kFlagM);
205 scope.Record(CPUFeatures::kRCpc);
209 scope.Record(CPUFeatures::kAtomics);
282 scope.Record(CPUFeatures::kPAuth);
301 scope.Record(CPUFeatures::kCRC32);
304 scope.Record(CPUFeatures::kPAuth, CPUFeatures::kPAuthGeneric);
332 scope.Record(CPUFeatures::kRCpc, CPUFeatures::kRCpcImm);
340 scope.Record(CPUFeatures::kPAuth);
361 scope.Record(CPUFeatures::kFP);
367 scope.Record(CPUFeatures::kFPHalf);
378 scope.Record(CPUFeatures::kFP);
382 scope.Record(CPUFeatures::kFPHalf);
393 scope.Record(CPUFeatures::kFP);
395 scope.Record(CPUFeatures::kFPHalf);
403 scope.Record(CPUFeatures::kFP);
416 scope.Record(CPUFeatures::kFPHalf);
426 scope.Record(CPUFeatures::kFrintToFixedSizedInt);
440 scope.Record(CPUFeatures::kFP);
451 scope.Record(CPUFeatures::kFPHalf);
463 scope.Record(CPUFeatures::kFP);
469 scope.Record(CPUFeatures::kFPHalf);
480 scope.Record(CPUFeatures::kFP);
490 scope.Record(CPUFeatures::kFPHalf);
501 scope.Record(CPUFeatures::kFP);
503 scope.Record(CPUFeatures::kFPHalf);
538 scope.Record(CPUFeatures::kFP);
539 scope.Record(CPUFeatures::kFPHalf);
542 scope.RecordOneOrBothOf(CPUFeatures::kFP, CPUFeatures::kNEON);
546 scope.Record(CPUFeatures::kFP);
547 scope.Record(CPUFeatures::kNEON);
550 scope.Record(CPUFeatures::kFP);
551 scope.Record(CPUFeatures::kJSCVT);
554 scope.Record(CPUFeatures::kFP);
564 scope.RecordOneOrBothOf(CPUFeatures::kFP, CPUFeatures::kNEON);
567 scope.Record(CPUFeatures::kNEON);
602 scope.Record(CPUFeatures::kAtomics);
612 scope.Record(CPUFeatures::kLORegions);
678 scope.Record(CPUFeatures::kNEON);
712 scope.Record(CPUFeatures::kFP);
718 scope.Record(CPUFeatures::kFP, CPUFeatures::kFrintToFixedSizedInt);
729 scope.Record(CPUFeatures::kFP, CPUFeatures::kNEON, CPUFeatures::kNEONHalf);
736 scope.Record(CPUFeatures::kNEON);
743 scope.Record(CPUFeatures::kNEON);
745 scope.Record(CPUFeatures::kFP);
752 scope.Record(CPUFeatures::kFP, CPUFeatures::kNEONHalf, CPUFeatures::kFHM);
763 scope.Record(CPUFeatures::kNEON);
766 scope.Record(CPUFeatures::kFP, CPUFeatures::kFcma);
767 if (instr->GetNEONSize() == 1) scope.Record(CPUFeatures::kNEONHalf);
772 scope.Record(CPUFeatures::kDotProduct);
776 scope.Record(CPUFeatures::kRDM);
788 scope.Record(CPUFeatures::kFP, CPUFeatures::kNEON, CPUFeatures::kNEONHalf);
795 scope.Record(CPUFeatures::kNEON);
798 scope.Record(CPUFeatures::kFP, CPUFeatures::kNEONHalf);
801 scope.Record(CPUFeatures::kFP);
808 scope.Record(CPUFeatures::kNEON);
812 scope.Record(CPUFeatures::kDotProduct);
816 scope.Record(CPUFeatures::kRDM);
827 scope.Record(CPUFeatures::kFP, CPUFeatures::kNEONHalf, CPUFeatures::kFHM);
838 scope.Record(CPUFeatures::kNEONHalf);
844 scope.Record(CPUFeatures::kFP);
849 scope.Record(CPUFeatures::kFP, CPUFeatures::kFcma);
850 if (instr->GetNEONSize() == 1) scope.Record(CPUFeatures::kNEONHalf);
861 scope.Record(CPUFeatures::kNEON);
868 scope.Record(CPUFeatures::kNEON);
876 scope.Record(CPUFeatures::kNEON);
884 scope.Record(CPUFeatures::kNEON);
892 scope.Record(CPUFeatures::kNEON);
900 scope.Record(CPUFeatures::kNEON);
907 scope.Record(CPUFeatures::kNEON);
910 scope.Record(CPUFeatures::kFP);
911 if (instr->ExtractBit(11)) scope.Record(CPUFeatures::kNEONHalf);
918 scope.Record(CPUFeatures::kNEON);
925 scope.Record(CPUFeatures::kNEON);
948 scope.Record(CPUFeatures::kFP);
959 scope.Record(CPUFeatures::kFP, CPUFeatures::kNEON, CPUFeatures::kNEONHalf);
966 scope.Record(CPUFeatures::kNEON);
973 scope.Record(CPUFeatures::kNEON);
975 scope.Record(CPUFeatures::kFP);
982 scope.Record(CPUFeatures::kNEON, CPUFeatures::kRDM);
989 scope.Record(CPUFeatures::kFP, CPUFeatures::kNEON, CPUFeatures::kNEONHalf);
997 scope.Record(CPUFeatures::kNEON);
1001 scope.Record(CPUFeatures::kRDM);
1009 scope.Record(CPUFeatures::kNEONHalf);
1015 scope.Record(CPUFeatures::kFP);
1026 scope.Record(CPUFeatures::kNEON);
1033 scope.Record(CPUFeatures::kNEON);
1040 scope.Record(CPUFeatures::kNEONHalf);
1047 scope.Record(CPUFeatures::kFP);
1059 scope.Record(CPUFeatures::kNEON);
1065 scope.Record(CPUFeatures::kFP);
1068 scope.Record(CPUFeatures::kNEONHalf);
1080 scope.Record(CPUFeatures::kNEON);
1086 scope.Record(CPUFeatures::kFP);
1089 scope.Record(CPUFeatures::kNEONHalf);
1101 scope.Record(CPUFeatures::kNEON);
1262 scope.Record(CPUFeatures::kSVE); \
1272 CPUFeatures required;
1287 required.Combine(CPUFeatures::kPAuth);
1292 required.Combine(CPUFeatures::kRAS);
1298 required.Combine(CPUFeatures::kBTI);
1321 scope.Record(CPUFeatures::kMTE);
1324 scope.Record(CPUFeatures::kDCPoP);
1327 scope.Record(CPUFeatures::kDCCVADP);
1340 scope.Record(CPUFeatures::kFlagM);
1344 scope.Record(CPUFeatures::kAXFlag);
1352 scope.Record(CPUFeatures::kRNG);
1388 scope.Record(CPUFeatures::kPAuth);
1414 std::map<uint32_t, const CPUFeatures> features = {
1415 {"adclb_z_zzz"_h, CPUFeatures::kSVE2},
1416 {"adclt_z_zzz"_h, CPUFeatures::kSVE2},
1417 {"addhnb_z_zz"_h, CPUFeatures::kSVE2},
1418 {"addhnt_z_zz"_h, CPUFeatures::kSVE2},
1419 {"addp_z_p_zz"_h, CPUFeatures::kSVE2},
1420 {"bcax_z_zzz"_h, CPUFeatures::kSVE2},
1422 CPUFeatures(CPUFeatures::kSVE2, CPUFeatures::kSVEBitPerm)},
1424 CPUFeatures(CPUFeatures::kSVE2, CPUFeatures::kSVEBitPerm)},
1426 CPUFeatures(CPUFeatures::kSVE2, CPUFeatures::kSVEBitPerm)},
1427 {"bsl1n_z_zzz"_h, CPUFeatures::kSVE2},
1428 {"bsl2n_z_zzz"_h, CPUFeatures::kSVE2},
1429 {"bsl_z_zzz"_h, CPUFeatures::kSVE2},
1430 {"cadd_z_zz"_h, CPUFeatures::kSVE2},
1431 {"cdot_z_zzz"_h, CPUFeatures::kSVE2},
1432 {"cdot_z_zzzi_d"_h, CPUFeatures::kSVE2},
1433 {"cdot_z_zzzi_s"_h, CPUFeatures::kSVE2},
1434 {"cmla_z_zzz"_h, CPUFeatures::kSVE2},
1435 {"cmla_z_zzzi_h"_h, CPUFeatures::kSVE2},
1436 {"cmla_z_zzzi_s"_h, CPUFeatures::kSVE2},
1437 {"eor3_z_zzz"_h, CPUFeatures::kSVE2},
1438 {"eorbt_z_zz"_h, CPUFeatures::kSVE2},
1439 {"eortb_z_zz"_h, CPUFeatures::kSVE2},
1440 {"ext_z_zi_con"_h, CPUFeatures::kSVE2},
1441 {"faddp_z_p_zz"_h, CPUFeatures::kSVE2},
1442 {"fcvtlt_z_p_z_h2s"_h, CPUFeatures::kSVE2},
1443 {"fcvtlt_z_p_z_s2d"_h, CPUFeatures::kSVE2},
1444 {"fcvtnt_z_p_z_d2s"_h, CPUFeatures::kSVE2},
1445 {"fcvtnt_z_p_z_s2h"_h, CPUFeatures::kSVE2},
1446 {"fcvtx_z_p_z_d2s"_h, CPUFeatures::kSVE2},
1447 {"fcvtxnt_z_p_z_d2s"_h, CPUFeatures::kSVE2},
1448 {"flogb_z_p_z"_h, CPUFeatures::kSVE2},
1449 {"fmaxnmp_z_p_zz"_h, CPUFeatures::kSVE2},
1450 {"fmaxp_z_p_zz"_h, CPUFeatures::kSVE2},
1451 {"fminnmp_z_p_zz"_h, CPUFeatures::kSVE2},
1452 {"fminp_z_p_zz"_h, CPUFeatures::kSVE2},
1453 {"fmlalb_z_zzz"_h, CPUFeatures::kSVE2},
1454 {"fmlalb_z_zzzi_s"_h, CPUFeatures::kSVE2},
1455 {"fmlalt_z_zzz"_h, CPUFeatures::kSVE2},
1456 {"fmlalt_z_zzzi_s"_h, CPUFeatures::kSVE2},
1457 {"fmlslb_z_zzz"_h, CPUFeatures::kSVE2},
1458 {"fmlslb_z_zzzi_s"_h, CPUFeatures::kSVE2},
1459 {"fmlslt_z_zzz"_h, CPUFeatures::kSVE2},
1460 {"fmlslt_z_zzzi_s"_h, CPUFeatures::kSVE2},
1461 {"histcnt_z_p_zz"_h, CPUFeatures::kSVE2},
1462 {"histseg_z_zz"_h, CPUFeatures::kSVE2},
1463 {"ldnt1b_z_p_ar_d_64_unscaled"_h, CPUFeatures::kSVE2},
1464 {"ldnt1b_z_p_ar_s_x32_unscaled"_h, CPUFeatures::kSVE2},
1465 {"ldnt1d_z_p_ar_d_64_unscaled"_h, CPUFeatures::kSVE2},
1466 {"ldnt1h_z_p_ar_d_64_unscaled"_h, CPUFeatures::kSVE2},
1467 {"ldnt1h_z_p_ar_s_x32_unscaled"_h, CPUFeatures::kSVE2},
1468 {"ldnt1sb_z_p_ar_d_64_unscaled"_h, CPUFeatures::kSVE2},
1469 {"ldnt1sb_z_p_ar_s_x32_unscaled"_h, CPUFeatures::kSVE2},
1470 {"ldnt1sh_z_p_ar_d_64_unscaled"_h, CPUFeatures::kSVE2},
1471 {"ldnt1sh_z_p_ar_s_x32_unscaled"_h, CPUFeatures::kSVE2},
1472 {"ldnt1sw_z_p_ar_d_64_unscaled"_h, CPUFeatures::kSVE2},
1473 {"ldnt1w_z_p_ar_d_64_unscaled"_h, CPUFeatures::kSVE2},
1474 {"ldnt1w_z_p_ar_s_x32_unscaled"_h, CPUFeatures::kSVE2},
1475 {"match_p_p_zz"_h, CPUFeatures::kSVE2},
1476 {"mla_z_zzzi_d"_h, CPUFeatures::kSVE2},
1477 {"mla_z_zzzi_h"_h, CPUFeatures::kSVE2},
1478 {"mla_z_zzzi_s"_h, CPUFeatures::kSVE2},
1479 {"mls_z_zzzi_d"_h, CPUFeatures::kSVE2},
1480 {"mls_z_zzzi_h"_h, CPUFeatures::kSVE2},
1481 {"mls_z_zzzi_s"_h, CPUFeatures::kSVE2},
1482 {"mul_z_zz"_h, CPUFeatures::kSVE2},
1483 {"mul_z_zzi_d"_h, CPUFeatures::kSVE2},
1484 {"mul_z_zzi_h"_h, CPUFeatures::kSVE2},
1485 {"mul_z_zzi_s"_h, CPUFeatures::kSVE2},
1486 {"nbsl_z_zzz"_h, CPUFeatures::kSVE2},
1487 {"nmatch_p_p_zz"_h, CPUFeatures::kSVE2},
1488 {"pmul_z_zz"_h, CPUFeatures::kSVE2},
1489 {"pmullb_z_zz"_h, CPUFeatures::kSVE2},
1490 {"pmullt_z_zz"_h, CPUFeatures::kSVE2},
1491 {"raddhnb_z_zz"_h, CPUFeatures::kSVE2},
1492 {"raddhnt_z_zz"_h, CPUFeatures::kSVE2},
1493 {"rshrnb_z_zi"_h, CPUFeatures::kSVE2},
1494 {"rshrnt_z_zi"_h, CPUFeatures::kSVE2},
1495 {"rsubhnb_z_zz"_h, CPUFeatures::kSVE2},
1496 {"rsubhnt_z_zz"_h, CPUFeatures::kSVE2},
1497 {"saba_z_zzz"_h, CPUFeatures::kSVE2},
1498 {"sabalb_z_zzz"_h, CPUFeatures::kSVE2},
1499 {"sabalt_z_zzz"_h, CPUFeatures::kSVE2},
1500 {"sabdlb_z_zz"_h, CPUFeatures::kSVE2},
1501 {"sabdlt_z_zz"_h, CPUFeatures::kSVE2},
1502 {"sadalp_z_p_z"_h, CPUFeatures::kSVE2},
1503 {"saddlb_z_zz"_h, CPUFeatures::kSVE2},
1504 {"saddlbt_z_zz"_h, CPUFeatures::kSVE2},
1505 {"saddlt_z_zz"_h, CPUFeatures::kSVE2},
1506 {"saddwb_z_zz"_h, CPUFeatures::kSVE2},
1507 {"saddwt_z_zz"_h, CPUFeatures::kSVE2},
1508 {"sbclb_z_zzz"_h, CPUFeatures::kSVE2},
1509 {"sbclt_z_zzz"_h, CPUFeatures::kSVE2},
1510 {"shadd_z_p_zz"_h, CPUFeatures::kSVE2},
1511 {"shrnb_z_zi"_h, CPUFeatures::kSVE2},
1512 {"shrnt_z_zi"_h, CPUFeatures::kSVE2},
1513 {"shsub_z_p_zz"_h, CPUFeatures::kSVE2},
1514 {"shsubr_z_p_zz"_h, CPUFeatures::kSVE2},
1515 {"sli_z_zzi"_h, CPUFeatures::kSVE2},
1516 {"smaxp_z_p_zz"_h, CPUFeatures::kSVE2},
1517 {"sminp_z_p_zz"_h, CPUFeatures::kSVE2},
1518 {"smlalb_z_zzz"_h, CPUFeatures::kSVE2},
1519 {"smlalb_z_zzzi_d"_h, CPUFeatures::kSVE2},
1520 {"smlalb_z_zzzi_s"_h, CPUFeatures::kSVE2},
1521 {"smlalt_z_zzz"_h, CPUFeatures::kSVE2},
1522 {"smlalt_z_zzzi_d"_h, CPUFeatures::kSVE2},
1523 {"smlalt_z_zzzi_s"_h, CPUFeatures::kSVE2},
1524 {"smlslb_z_zzz"_h, CPUFeatures::kSVE2},
1525 {"smlslb_z_zzzi_d"_h, CPUFeatures::kSVE2},
1526 {"smlslb_z_zzzi_s"_h, CPUFeatures::kSVE2},
1527 {"smlslt_z_zzz"_h, CPUFeatures::kSVE2},
1528 {"smlslt_z_zzzi_d"_h, CPUFeatures::kSVE2},
1529 {"smlslt_z_zzzi_s"_h, CPUFeatures::kSVE2},
1530 {"smulh_z_zz"_h, CPUFeatures::kSVE2},
1531 {"smullb_z_zz"_h, CPUFeatures::kSVE2},
1532 {"smullb_z_zzi_d"_h, CPUFeatures::kSVE2},
1533 {"smullb_z_zzi_s"_h, CPUFeatures::kSVE2},
1534 {"smullt_z_zz"_h, CPUFeatures::kSVE2},
1535 {"smullt_z_zzi_d"_h, CPUFeatures::kSVE2},
1536 {"smullt_z_zzi_s"_h, CPUFeatures::kSVE2},
1537 {"splice_z_p_zz_con"_h, CPUFeatures::kSVE2},
1538 {"sqabs_z_p_z"_h, CPUFeatures::kSVE2},
1539 {"sqadd_z_p_zz"_h, CPUFeatures::kSVE2},
1540 {"sqcadd_z_zz"_h, CPUFeatures::kSVE2},
1541 {"sqdmlalb_z_zzz"_h, CPUFeatures::kSVE2},
1542 {"sqdmlalb_z_zzzi_d"_h, CPUFeatures::kSVE2},
1543 {"sqdmlalb_z_zzzi_s"_h, CPUFeatures::kSVE2},
1544 {"sqdmlalbt_z_zzz"_h, CPUFeatures::kSVE2},
1545 {"sqdmlalt_z_zzz"_h, CPUFeatures::kSVE2},
1546 {"sqdmlalt_z_zzzi_d"_h, CPUFeatures::kSVE2},
1547 {"sqdmlalt_z_zzzi_s"_h, CPUFeatures::kSVE2},
1548 {"sqdmlslb_z_zzz"_h, CPUFeatures::kSVE2},
1549 {"sqdmlslb_z_zzzi_d"_h, CPUFeatures::kSVE2},
1550 {"sqdmlslb_z_zzzi_s"_h, CPUFeatures::kSVE2},
1551 {"sqdmlslbt_z_zzz"_h, CPUFeatures::kSVE2},
1552 {"sqdmlslt_z_zzz"_h, CPUFeatures::kSVE2},
1553 {"sqdmlslt_z_zzzi_d"_h, CPUFeatures::kSVE2},
1554 {"sqdmlslt_z_zzzi_s"_h, CPUFeatures::kSVE2},
1555 {"sqdmulh_z_zz"_h, CPUFeatures::kSVE2},
1556 {"sqdmulh_z_zzi_d"_h, CPUFeatures::kSVE2},
1557 {"sqdmulh_z_zzi_h"_h, CPUFeatures::kSVE2},
1558 {"sqdmulh_z_zzi_s"_h, CPUFeatures::kSVE2},
1559 {"sqdmullb_z_zz"_h, CPUFeatures::kSVE2},
1560 {"sqdmullb_z_zzi_d"_h, CPUFeatures::kSVE2},
1561 {"sqdmullb_z_zzi_s"_h, CPUFeatures::kSVE2},
1562 {"sqdmullt_z_zz"_h, CPUFeatures::kSVE2},
1563 {"sqdmullt_z_zzi_d"_h, CPUFeatures::kSVE2},
1564 {"sqdmullt_z_zzi_s"_h, CPUFeatures::kSVE2},
1565 {"sqneg_z_p_z"_h, CPUFeatures::kSVE2},
1566 {"sqrdcmlah_z_zzz"_h, CPUFeatures::kSVE2},
1567 {"sqrdcmlah_z_zzzi_h"_h, CPUFeatures::kSVE2},
1568 {"sqrdcmlah_z_zzzi_s"_h, CPUFeatures::kSVE2},
1569 {"sqrdmlah_z_zzz"_h, CPUFeatures::kSVE2},
1570 {"sqrdmlah_z_zzzi_d"_h, CPUFeatures::kSVE2},
1571 {"sqrdmlah_z_zzzi_h"_h, CPUFeatures::kSVE2},
1572 {"sqrdmlah_z_zzzi_s"_h, CPUFeatures::kSVE2},
1573 {"sqrdmlsh_z_zzz"_h, CPUFeatures::kSVE2},
1574 {"sqrdmlsh_z_zzzi_d"_h, CPUFeatures::kSVE2},
1575 {"sqrdmlsh_z_zzzi_h"_h, CPUFeatures::kSVE2},
1576 {"sqrdmlsh_z_zzzi_s"_h, CPUFeatures::kSVE2},
1577 {"sqrdmulh_z_zz"_h, CPUFeatures::kSVE2},
1578 {"sqrdmulh_z_zzi_d"_h, CPUFeatures::kSVE2},
1579 {"sqrdmulh_z_zzi_h"_h, CPUFeatures::kSVE2},
1580 {"sqrdmulh_z_zzi_s"_h, CPUFeatures::kSVE2},
1581 {"sqrshl_z_p_zz"_h, CPUFeatures::kSVE2},
1582 {"sqrshlr_z_p_zz"_h, CPUFeatures::kSVE2},
1583 {"sqrshrnb_z_zi"_h, CPUFeatures::kSVE2},
1584 {"sqrshrnt_z_zi"_h, CPUFeatures::kSVE2},
1585 {"sqrshrunb_z_zi"_h, CPUFeatures::kSVE2},
1586 {"sqrshrunt_z_zi"_h, CPUFeatures::kSVE2},
1587 {"sqshl_z_p_zi"_h, CPUFeatures::kSVE2},
1588 {"sqshl_z_p_zz"_h, CPUFeatures::kSVE2},
1589 {"sqshlr_z_p_zz"_h, CPUFeatures::kSVE2},
1590 {"sqshlu_z_p_zi"_h, CPUFeatures::kSVE2},
1591 {"sqshrnb_z_zi"_h, CPUFeatures::kSVE2},
1592 {"sqshrnt_z_zi"_h, CPUFeatures::kSVE2},
1593 {"sqshrunb_z_zi"_h, CPUFeatures::kSVE2},
1594 {"sqshrunt_z_zi"_h, CPUFeatures::kSVE2},
1595 {"sqsub_z_p_zz"_h, CPUFeatures::kSVE2},
1596 {"sqsubr_z_p_zz"_h, CPUFeatures::kSVE2},
1597 {"sqxtnb_z_zz"_h, CPUFeatures::kSVE2},
1598 {"sqxtnt_z_zz"_h, CPUFeatures::kSVE2},
1599 {"sqxtunb_z_zz"_h, CPUFeatures::kSVE2},
1600 {"sqxtunt_z_zz"_h, CPUFeatures::kSVE2},
1601 {"srhadd_z_p_zz"_h, CPUFeatures::kSVE2},
1602 {"sri_z_zzi"_h, CPUFeatures::kSVE2},
1603 {"srshl_z_p_zz"_h, CPUFeatures::kSVE2},
1604 {"srshlr_z_p_zz"_h, CPUFeatures::kSVE2},
1605 {"srshr_z_p_zi"_h, CPUFeatures::kSVE2},
1606 {"srsra_z_zi"_h, CPUFeatures::kSVE2},
1607 {"sshllb_z_zi"_h, CPUFeatures::kSVE2},
1608 {"sshllt_z_zi"_h, CPUFeatures::kSVE2},
1609 {"ssra_z_zi"_h, CPUFeatures::kSVE2},
1610 {"ssublb_z_zz"_h, CPUFeatures::kSVE2},
1611 {"ssublbt_z_zz"_h, CPUFeatures::kSVE2},
1612 {"ssublt_z_zz"_h, CPUFeatures::kSVE2},
1613 {"ssubltb_z_zz"_h, CPUFeatures::kSVE2},
1614 {"ssubwb_z_zz"_h, CPUFeatures::kSVE2},
1615 {"ssubwt_z_zz"_h, CPUFeatures::kSVE2},
1616 {"stnt1b_z_p_ar_d_64_unscaled"_h, CPUFeatures::kSVE2},
1617 {"stnt1b_z_p_ar_s_x32_unscaled"_h, CPUFeatures::kSVE2},
1618 {"stnt1d_z_p_ar_d_64_unscaled"_h, CPUFeatures::kSVE2},
1619 {"stnt1h_z_p_ar_d_64_unscaled"_h, CPUFeatures::kSVE2},
1620 {"stnt1h_z_p_ar_s_x32_unscaled"_h, CPUFeatures::kSVE2},
1621 {"stnt1w_z_p_ar_d_64_unscaled"_h, CPUFeatures::kSVE2},
1622 {"stnt1w_z_p_ar_s_x32_unscaled"_h, CPUFeatures::kSVE2},
1623 {"subhnb_z_zz"_h, CPUFeatures::kSVE2},
1624 {"subhnt_z_zz"_h, CPUFeatures::kSVE2},
1625 {"suqadd_z_p_zz"_h, CPUFeatures::kSVE2},
1626 {"tbl_z_zz_2"_h, CPUFeatures::kSVE2},
1627 {"tbx_z_zz"_h, CPUFeatures::kSVE2},
1628 {"uaba_z_zzz"_h, CPUFeatures::kSVE2},
1629 {"uabalb_z_zzz"_h, CPUFeatures::kSVE2},
1630 {"uabalt_z_zzz"_h, CPUFeatures::kSVE2},
1631 {"uabdlb_z_zz"_h, CPUFeatures::kSVE2},
1632 {"uabdlt_z_zz"_h, CPUFeatures::kSVE2},
1633 {"uadalp_z_p_z"_h, CPUFeatures::kSVE2},
1634 {"uaddlb_z_zz"_h, CPUFeatures::kSVE2},
1635 {"uaddlt_z_zz"_h, CPUFeatures::kSVE2},
1636 {"uaddwb_z_zz"_h, CPUFeatures::kSVE2},
1637 {"uaddwt_z_zz"_h, CPUFeatures::kSVE2},
1638 {"uhadd_z_p_zz"_h, CPUFeatures::kSVE2},
1639 {"uhsub_z_p_zz"_h, CPUFeatures::kSVE2},
1640 {"uhsubr_z_p_zz"_h, CPUFeatures::kSVE2},
1641 {"umaxp_z_p_zz"_h, CPUFeatures::kSVE2},
1642 {"uminp_z_p_zz"_h, CPUFeatures::kSVE2},
1643 {"umlalb_z_zzz"_h, CPUFeatures::kSVE2},
1644 {"umlalb_z_zzzi_d"_h, CPUFeatures::kSVE2},
1645 {"umlalb_z_zzzi_s"_h, CPUFeatures::kSVE2},
1646 {"umlalt_z_zzz"_h, CPUFeatures::kSVE2},
1647 {"umlalt_z_zzzi_d"_h, CPUFeatures::kSVE2},
1648 {"umlalt_z_zzzi_s"_h, CPUFeatures::kSVE2},
1649 {"umlslb_z_zzz"_h, CPUFeatures::kSVE2},
1650 {"umlslb_z_zzzi_d"_h, CPUFeatures::kSVE2},
1651 {"umlslb_z_zzzi_s"_h, CPUFeatures::kSVE2},
1652 {"umlslt_z_zzz"_h, CPUFeatures::kSVE2},
1653 {"umlslt_z_zzzi_d"_h, CPUFeatures::kSVE2},
1654 {"umlslt_z_zzzi_s"_h, CPUFeatures::kSVE2},
1655 {"umulh_z_zz"_h, CPUFeatures::kSVE2},
1656 {"umullb_z_zz"_h, CPUFeatures::kSVE2},
1657 {"umullb_z_zzi_d"_h, CPUFeatures::kSVE2},
1658 {"umullb_z_zzi_s"_h, CPUFeatures::kSVE2},
1659 {"umullt_z_zz"_h, CPUFeatures::kSVE2},
1660 {"umullt_z_zzi_d"_h, CPUFeatures::kSVE2},
1661 {"umullt_z_zzi_s"_h, CPUFeatures::kSVE2},
1662 {"uqadd_z_p_zz"_h, CPUFeatures::kSVE2},
1663 {"uqrshl_z_p_zz"_h, CPUFeatures::kSVE2},
1664 {"uqrshlr_z_p_zz"_h, CPUFeatures::kSVE2},
1665 {"uqrshrnb_z_zi"_h, CPUFeatures::kSVE2},
1666 {"uqrshrnt_z_zi"_h, CPUFeatures::kSVE2},
1667 {"uqshl_z_p_zi"_h, CPUFeatures::kSVE2},
1668 {"uqshl_z_p_zz"_h, CPUFeatures::kSVE2},
1669 {"uqshlr_z_p_zz"_h, CPUFeatures::kSVE2},
1670 {"uqshrnb_z_zi"_h, CPUFeatures::kSVE2},
1671 {"uqshrnt_z_zi"_h, CPUFeatures::kSVE2},
1672 {"uqsub_z_p_zz"_h, CPUFeatures::kSVE2},
1673 {"uqsubr_z_p_zz"_h, CPUFeatures::kSVE2},
1674 {"uqxtnb_z_zz"_h, CPUFeatures::kSVE2},
1675 {"uqxtnt_z_zz"_h, CPUFeatures::kSVE2},
1676 {"urecpe_z_p_z"_h, CPUFeatures::kSVE2},
1677 {"urhadd_z_p_zz"_h, CPUFeatures::kSVE2},
1678 {"urshl_z_p_zz"_h, CPUFeatures::kSVE2},
1679 {"urshlr_z_p_zz"_h, CPUFeatures::kSVE2},
1680 {"urshr_z_p_zi"_h, CPUFeatures::kSVE2},
1681 {"ursqrte_z_p_z"_h, CPUFeatures::kSVE2},
1682 {"ursra_z_zi"_h, CPUFeatures::kSVE2},
1683 {"ushllb_z_zi"_h, CPUFeatures::kSVE2},
1684 {"ushllt_z_zi"_h, CPUFeatures::kSVE2},
1685 {"usqadd_z_p_zz"_h, CPUFeatures::kSVE2},
1686 {"usra_z_zi"_h, CPUFeatures::kSVE2},
1687 {"usublb_z_zz"_h, CPUFeatures::kSVE2},
1688 {"usublt_z_zz"_h, CPUFeatures::kSVE2},
1689 {"usubwb_z_zz"_h, CPUFeatures::kSVE2},
1690 {"usubwt_z_zz"_h, CPUFeatures::kSVE2},
1691 {"whilege_p_p_rr"_h, CPUFeatures::kSVE2},
1692 {"whilegt_p_p_rr"_h, CPUFeatures::kSVE2},
1693 {"whilehi_p_p_rr"_h, CPUFeatures::kSVE2},
1694 {"whilehs_p_p_rr"_h, CPUFeatures::kSVE2},
1695 {"whilerw_p_rr"_h, CPUFeatures::kSVE2},
1696 {"whilewr_p_rr"_h, CPUFeatures::kSVE2},
1697 {"xar_z_zzi"_h, CPUFeatures::kSVE2},
1699 CPUFeatures(CPUFeatures::kSVE, CPUFeatures::kSVEI8MM)},
1701 CPUFeatures(CPUFeatures::kSVE, CPUFeatures::kSVEI8MM)},
1703 CPUFeatures(CPUFeatures::kSVE, CPUFeatures::kSVEI8MM)},
1705 CPUFeatures(CPUFeatures::kSVE, CPUFeatures::kSVEF32MM)},
1707 CPUFeatures(CPUFeatures::kSVE, CPUFeatures::kSVEF64MM)},
1709 CPUFeatures(CPUFeatures::kNEON, CPUFeatures::kI8MM)},
1711 CPUFeatures(CPUFeatures::kNEON, CPUFeatures::kI8MM)},
1713 CPUFeatures(CPUFeatures::kNEON, CPUFeatures::kI8MM)},
1715 CPUFeatures(CPUFeatures::kSVE, CPUFeatures::kSVEF64MM)},
1717 CPUFeatures(CPUFeatures::kSVE, CPUFeatures::kSVEF64MM)},
1719 CPUFeatures(CPUFeatures::kSVE, CPUFeatures::kSVEF64MM)},
1721 CPUFeatures(CPUFeatures::kSVE, CPUFeatures::kSVEF64MM)},
1723 CPUFeatures(CPUFeatures::kSVE, CPUFeatures::kSVEF64MM)},
1725 CPUFeatures(CPUFeatures::kSVE, CPUFeatures::kSVEF64MM)},
1727 CPUFeatures(CPUFeatures::kSVE, CPUFeatures::kSVEF64MM)},
1729 CPUFeatures(CPUFeatures::kSVE, CPUFeatures::kSVEF64MM)},
1731 CPUFeatures(CPUFeatures::kNEON, CPUFeatures::kI8MM)},
1733 CPUFeatures(CPUFeatures::kNEON, CPUFeatures::kI8MM)},
1735 CPUFeatures(CPUFeatures::kNEON, CPUFeatures::kI8MM)},
1737 CPUFeatures(CPUFeatures::kSVE, CPUFeatures::kSVEI8MM)},
1739 CPUFeatures(CPUFeatures::kSVE, CPUFeatures::kSVEI8MM)},
1741 CPUFeatures(CPUFeatures::kSVE, CPUFeatures::kSVEI8MM)},
1742 {"addg_64_addsub_immtags"_h, CPUFeatures::kMTE},
1743 {"gmi_64g_dp_2src"_h, CPUFeatures::kMTE},
1744 {"irg_64i_dp_2src"_h, CPUFeatures::kMTE},
1745 {"ldg_64loffset_ldsttags"_h, CPUFeatures::kMTE},
1746 {"st2g_64soffset_ldsttags"_h, CPUFeatures::kMTE},
1747 {"st2g_64spost_ldsttags"_h, CPUFeatures::kMTE},
1748 {"st2g_64spre_ldsttags"_h, CPUFeatures::kMTE},
1749 {"stgp_64_ldstpair_off"_h, CPUFeatures::kMTE},
1750 {"stgp_64_ldstpair_post"_h, CPUFeatures::kMTE},
1751 {"stgp_64_ldstpair_pre"_h, CPUFeatures::kMTE},
1752 {"stg_64soffset_ldsttags"_h, CPUFeatures::kMTE},
1753 {"stg_64spost_ldsttags"_h, CPUFeatures::kMTE},
1754 {"stg_64spre_ldsttags"_h, CPUFeatures::kMTE},
1755 {"stz2g_64soffset_ldsttags"_h, CPUFeatures::kMTE},
1756 {"stz2g_64spost_ldsttags"_h, CPUFeatures::kMTE},
1757 {"stz2g_64spre_ldsttags"_h, CPUFeatures::kMTE},
1758 {"stzg_64soffset_ldsttags"_h, CPUFeatures::kMTE},
1759 {"stzg_64spost_ldsttags"_h, CPUFeatures::kMTE},
1760 {"stzg_64spre_ldsttags"_h, CPUFeatures::kMTE},
1761 {"subg_64_addsub_immtags"_h, CPUFeatures::kMTE},
1762 {"subps_64s_dp_2src"_h, CPUFeatures::kMTE},
1763 {"subp_64s_dp_2src"_h, CPUFeatures::kMTE},
1764 {"cpyen_cpy_memcms"_h, CPUFeatures::kMOPS},
1765 {"cpyern_cpy_memcms"_h, CPUFeatures::kMOPS},
1766 {"cpyewn_cpy_memcms"_h, CPUFeatures::kMOPS},
1767 {"cpye_cpy_memcms"_h, CPUFeatures::kMOPS},
1768 {"cpyfen_cpy_memcms"_h, CPUFeatures::kMOPS},
1769 {"cpyfern_cpy_memcms"_h, CPUFeatures::kMOPS},
1770 {"cpyfewn_cpy_memcms"_h, CPUFeatures::kMOPS},
1771 {"cpyfe_cpy_memcms"_h, CPUFeatures::kMOPS},
1772 {"cpyfmn_cpy_memcms"_h, CPUFeatures::kMOPS},
1773 {"cpyfmrn_cpy_memcms"_h, CPUFeatures::kMOPS},
1774 {"cpyfmwn_cpy_memcms"_h, CPUFeatures::kMOPS},
1775 {"cpyfm_cpy_memcms"_h, CPUFeatures::kMOPS},
1776 {"cpyfpn_cpy_memcms"_h, CPUFeatures::kMOPS},
1777 {"cpyfprn_cpy_memcms"_h, CPUFeatures::kMOPS},
1778 {"cpyfpwn_cpy_memcms"_h, CPUFeatures::kMOPS},
1779 {"cpyfp_cpy_memcms"_h, CPUFeatures::kMOPS},
1780 {"cpymn_cpy_memcms"_h, CPUFeatures::kMOPS},
1781 {"cpymrn_cpy_memcms"_h, CPUFeatures::kMOPS},
1782 {"cpymwn_cpy_memcms"_h, CPUFeatures::kMOPS},
1783 {"cpym_cpy_memcms"_h, CPUFeatures::kMOPS},
1784 {"cpypn_cpy_memcms"_h, CPUFeatures::kMOPS},
1785 {"cpyprn_cpy_memcms"_h, CPUFeatures::kMOPS},
1786 {"cpypwn_cpy_memcms"_h, CPUFeatures::kMOPS},
1787 {"cpyp_cpy_memcms"_h, CPUFeatures::kMOPS},
1788 {"seten_set_memcms"_h, CPUFeatures::kMOPS},
1789 {"sete_set_memcms"_h, CPUFeatures::kMOPS},
1791 CPUFeatures(CPUFeatures::kMOPS, CPUFeatures::kMTE)},
1793 CPUFeatures(CPUFeatures::kMOPS, CPUFeatures::kMTE)},
1795 CPUFeatures(CPUFeatures::kMOPS, CPUFeatures::kMTE)},
1797 CPUFeatures(CPUFeatures::kMOPS, CPUFeatures::kMTE)},
1799 CPUFeatures(CPUFeatures::kMOPS, CPUFeatures::kMTE)},
1801 CPUFeatures(CPUFeatures::kMOPS, CPUFeatures::kMTE)},
1802 {"setmn_set_memcms"_h, CPUFeatures::kMOPS},
1803 {"setm_set_memcms"_h, CPUFeatures::kMOPS},
1804 {"setpn_set_memcms"_h, CPUFeatures::kMOPS},
1805 {"setp_set_memcms"_h, CPUFeatures::kMOPS},
1806 {"abs_32_dp_1src"_h, CPUFeatures::kCSSC},
1807 {"abs_64_dp_1src"_h, CPUFeatures::kCSSC},
1808 {"cnt_32_dp_1src"_h, CPUFeatures::kCSSC},
1809 {"cnt_64_dp_1src"_h, CPUFeatures::kCSSC},
1810 {"ctz_32_dp_1src"_h, CPUFeatures::kCSSC},
1811 {"ctz_64_dp_1src"_h, CPUFeatures::kCSSC},
1812 {"smax_32_dp_2src"_h, CPUFeatures::kCSSC},
1813 {"smax_64_dp_2src"_h, CPUFeatures::kCSSC},
1814 {"smin_32_dp_2src"_h, CPUFeatures::kCSSC},
1815 {"smin_64_dp_2src"_h, CPUFeatures::kCSSC},
1816 {"umax_32_dp_2src"_h, CPUFeatures::kCSSC},
1817 {"umax_64_dp_2src"_h, CPUFeatures::kCSSC},
1818 {"umin_32_dp_2src"_h, CPUFeatures::kCSSC},
1819 {"umin_64_dp_2src"_h, CPUFeatures::kCSSC},
1820 {"smax_32_minmax_imm"_h, CPUFeatures::kCSSC},
1821 {"smax_64_minmax_imm"_h, CPUFeatures::kCSSC},
1822 {"smin_32_minmax_imm"_h, CPUFeatures::kCSSC},
1823 {"smin_64_minmax_imm"_h, CPUFeatures::kCSSC},
1824 {"umax_32u_minmax_imm"_h, CPUFeatures::kCSSC},
1825 {"umax_64u_minmax_imm"_h, CPUFeatures::kCSSC},
1826 {"umin_32u_minmax_imm"_h, CPUFeatures::kCSSC},
1827 {"umin_64u_minmax_imm"_h, CPUFeatures::kCSSC},