Lines Matching defs:zm

132                      const ZRegister& zm) {
135 VIXL_ASSERT(AreSameFormat(zd, zn, zm));
136 Emit(AND_z_zz | Rd(zd) | Rn(zn) | Rm(zm));
141 const ZRegister& zm) {
144 VIXL_ASSERT(AreSameFormat(zd, zn, zm));
145 Emit(BIC_z_zz | Rd(zd) | Rn(zn) | Rm(zm));
150 const ZRegister& zm) {
153 VIXL_ASSERT(AreSameFormat(zd, zn, zm));
154 Emit(EOR_z_zz | Rd(zd) | Rn(zn) | Rm(zm));
159 const ZRegister& zm) {
162 VIXL_ASSERT(AreSameFormat(zd, zn, zm));
163 Emit(ORR_z_zz | Rd(zd) | Rn(zn) | Rm(zm));
198 const ZRegister& zm) {
207 VIXL_ASSERT(AreSameLaneSize(zd, zn, zm) ||
208 ((zm.GetLaneSizeInBytes() == kDRegSizeInBytes) &&
211 if (AreSameLaneSize(zd, zn, zm)) {
214 Emit(op | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zm));
238 const ZRegister& zm) {
247 VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
249 Emit(ASRR_z_p_zz | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zm));
273 const ZRegister& zm) {
282 VIXL_ASSERT(AreSameLaneSize(zd, zn, zm) ||
283 ((zm.GetLaneSizeInBytes() == kDRegSizeInBytes) &&
286 if (AreSameLaneSize(zd, zn, zm)) {
289 Emit(op | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zm));
295 const ZRegister& zm) {
304 VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
306 Emit(LSLR_z_p_zz | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zm));
330 const ZRegister& zm) {
339 VIXL_ASSERT(AreSameLaneSize(zd, zn, zm) ||
340 ((zm.GetLaneSizeInBytes() == kDRegSizeInBytes) &&
343 if (AreSameLaneSize(zd, zn, zm)) {
346 Emit(op | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zm));
352 const ZRegister& zm) {
361 VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
363 Emit(LSRR_z_p_zz | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zm));
399 const ZRegister& zm) {
404 Emit(ASR_z_zw | SVESize(zd) | Rd(zd) | Rn(zn) | Rm(zm));
416 const ZRegister& zm) {
421 Emit(LSL_z_zw | SVESize(zd) | Rd(zd) | Rn(zn) | Rm(zm));
433 const ZRegister& zm) {
438 Emit(LSR_z_zw | SVESize(zd) | Rd(zd) | Rn(zn) | Rm(zm));
553 const ZRegister& zm) {
562 VIXL_ASSERT(zm.GetLaneSizeInBytes() != kBRegSizeInBytes);
563 VIXL_ASSERT(AreSameLaneSize(zm, vd));
565 Emit(FADDA_v_p_z | SVESize(zm) | Rd(vd) | PgLow8(pg) | Rn(zm));
573 const ZRegister& zm) {
581 VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
584 Emit(FABD_z_p_zz | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zm));
609 const ZRegister& zm) {
617 VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
620 Emit(FADD_z_p_zz | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zm));
626 const ZRegister& zm) {
634 VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
637 Emit(FDIV_z_p_zz | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zm));
643 const ZRegister& zm) {
651 VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
654 Emit(FDIVR_z_p_zz | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zm));
679 const ZRegister& zm) {
687 VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
690 Emit(FMAX_z_p_zz | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zm));
715 const ZRegister& zm) {
723 VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
726 Emit(FMAXNM_z_p_zz | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zm));
751 const ZRegister& zm) {
759 VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
762 Emit(FMIN_z_p_zz | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zm));
787 const ZRegister& zm) {
795 VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
798 Emit(FMINNM_z_p_zz | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zm));
823 const ZRegister& zm) {
831 VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
834 Emit(FMUL_z_p_zz | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zm));
840 const ZRegister& zm) {
848 VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
851 Emit(FMULX_z_p_zz | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zm));
857 const ZRegister& zm) {
865 VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
868 Emit(FSCALE_z_p_zz | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zm));
893 const ZRegister& zm) {
901 VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
904 Emit(FSUB_z_p_zz | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zm));
929 const ZRegister& zm) {
937 VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
940 Emit(FSUBR_z_p_zz | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zm));
945 const ZRegister& zm,
954 VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
957 Emit(FTMAD_z_zzi | SVESize(zd) | Rd(zd) | Rn(zm) |
965 const ZRegister& zm) {
971 VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
974 Emit(FADD_z_zz | SVESize(zd) | Rd(zd) | Rn(zn) | Rm(zm));
979 const ZRegister& zm) {
985 VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
988 Emit(FMUL_z_zz | SVESize(zd) | Rd(zd) | Rn(zn) | Rm(zm));
993 const ZRegister& zm) {
999 VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
1002 Emit(FRECPS_z_zz | SVESize(zd) | Rd(zd) | Rn(zn) | Rm(zm));
1007 const ZRegister& zm) {
1013 VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
1016 Emit(FRSQRTS_z_zz | SVESize(zd) | Rd(zd) | Rn(zn) | Rm(zm));
1021 const ZRegister& zm) {
1027 VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
1030 Emit(FSUB_z_zz | SVESize(zd) | Rd(zd) | Rn(zn) | Rm(zm));
1035 const ZRegister& zm) {
1041 VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
1044 Emit(FTSMUL_z_zz | SVESize(zd) | Rd(zd) | Rn(zn) | Rm(zm));
1052 const ZRegister& zm) {
1059 VIXL_ASSERT(AreSameLaneSize(zn, zm));
1062 Emit(FACGE_p_p_zz | SVESize(zn) | Pd(pd) | PgLow8(pg) | Rn(zn) | Rm(zm));
1068 const ZRegister& zm) {
1075 VIXL_ASSERT(AreSameLaneSize(zn, zm));
1078 Emit(FACGT_p_p_zz | SVESize(zn) | Pd(pd) | PgLow8(pg) | Rn(zn) | Rm(zm));
1084 const ZRegister& zm) {
1091 VIXL_ASSERT(AreSameLaneSize(zn, zm));
1094 Emit(FCMEQ_p_p_zz | SVESize(zn) | Pd(pd) | PgLow8(pg) | Rn(zn) | Rm(zm));
1100 const ZRegister& zm) {
1107 VIXL_ASSERT(AreSameLaneSize(zn, zm));
1110 Emit(FCMGE_p_p_zz | SVESize(zn) | Pd(pd) | PgLow8(pg) | Rn(zn) | Rm(zm));
1116 const ZRegister& zm) {
1123 VIXL_ASSERT(AreSameLaneSize(zn, zm));
1126 Emit(FCMGT_p_p_zz | SVESize(zn) | Pd(pd) | PgLow8(pg) | Rn(zn) | Rm(zm));
1132 const ZRegister& zm) {
1139 VIXL_ASSERT(AreSameLaneSize(zn, zm));
1142 Emit(FCMNE_p_p_zz | SVESize(zn) | Pd(pd) | PgLow8(pg) | Rn(zn) | Rm(zm));
1148 const ZRegister& zm) {
1155 VIXL_ASSERT(AreSameLaneSize(zn, zm));
1158 Emit(FCMUO_p_p_zz | SVESize(zn) | Pd(pd) | PgLow8(pg) | Rn(zn) | Rm(zm));
1270 const ZRegister& zm,
1279 VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
1284 Emit(FCADD_z_p_zz | rotate_bit | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zm));
1292 const ZRegister& zm,
1299 VIXL_ASSERT(AreSameLaneSize(zda, zn, zm));
1305 Rn(zn) | Rm(zm));
1312 const ZRegister& zm,
1316 VIXL_ASSERT(AreSameLaneSize(zda, zn, zm));
1320 Emit(FCMLA_z_zzzi_h | SVEMulComplexIndexHelper(zm, index) | rotate_bit |
1405 const ZRegister& zm,
1412 VIXL_ASSERT(AreSameLaneSize(zdn, zm, za));
1415 Emit(FMAD_z_p_zzz | SVESize(zdn) | Rd(zdn) | PgLow8(pg) | Rn(zm) | Rm(za));
1421 const ZRegister& zm) {
1427 VIXL_ASSERT(AreSameLaneSize(zda, zn, zm));
1430 Emit(FMLA_z_p_zzz | SVESize(zda) | Rd(zda) | PgLow8(pg) | Rn(zn) | Rm(zm));
1436 const ZRegister& zm) {
1442 VIXL_ASSERT(AreSameLaneSize(zda, zn, zm));
1445 Emit(FMLS_z_p_zzz | SVESize(zda) | Rd(zda) | PgLow8(pg) | Rn(zn) | Rm(zm));
1450 const ZRegister& zm,
1457 VIXL_ASSERT(AreSameLaneSize(zdn, zm, za));
1460 Emit(FMSB_z_p_zzz | SVESize(zdn) | Rd(zdn) | PgLow8(pg) | Rn(zm) | Rm(za));
1465 const ZRegister& zm,
1472 VIXL_ASSERT(AreSameLaneSize(zdn, zm, za));
1475 Emit(FNMAD_z_p_zzz | SVESize(zdn) | Rd(zdn) | PgLow8(pg) | Rn(zm) | Rm(za));
1481 const ZRegister& zm) {
1487 VIXL_ASSERT(AreSameLaneSize(zda, zn, zm));
1490 Emit(FNMLA_z_p_zzz | SVESize(zda) | Rd(zda) | PgLow8(pg) | Rn(zn) | Rm(zm));
1496 const ZRegister& zm) {
1502 VIXL_ASSERT(AreSameLaneSize(zda, zn, zm));
1505 Emit(FNMLS_z_p_zzz | SVESize(zda) | Rd(zda) | PgLow8(pg) | Rn(zn) | Rm(zm));
1510 const ZRegister& zm,
1517 VIXL_ASSERT(AreSameLaneSize(zdn, zm, za));
1520 Emit(FNMSB_z_p_zzz | SVESize(zdn) | Rd(zdn) | PgLow8(pg) | Rn(zm) | Rm(za));
1524 const ZRegister& zm,
1530 Instr zm_with_index = Rm(zm);
1535 VIXL_ASSERT(zm.GetCode() <= 7);
1542 // Top two bits of "zm" encode the index.
1547 VIXL_CHECK(zm.GetCode() <= 7);
1549 // Top two bits of "zm" encode the index.
1554 VIXL_CHECK(zm.GetCode() <= 15);
1556 // Top bit of "zm" encodes the index.
1566 Instr Assembler::SVEMulLongIndexHelper(const ZRegister& zm, int index) {
1569 if (zm.IsLaneSizeH()) {
1570 VIXL_CHECK(zm.GetCode() <= 7);
1573 zm_id = Rx<18, 16>(zm);
1575 VIXL_ASSERT(zm.IsLaneSizeS());
1576 VIXL_CHECK(zm.GetCode() <= 15);
1579 zm_id = Rx<19, 16>(zm);
1588 Instr Assembler::SVEMulComplexIndexHelper(const ZRegister& zm, int index) {
1590 if (zm.IsLaneSizeH()) {
1592 VIXL_CHECK(zm.GetCode() <= 7);
1594 zm_idx_size = (index << 19) | Rx<18, 16>(zm) | 0;
1596 VIXL_ASSERT(zm.IsLaneSizeS());
1598 VIXL_CHECK(zm.GetCode() <= 15);
1600 zm_idx_size = (index << 20) | Rx<19, 16>(zm) | (1 << 22);
1609 const ZRegister& zm,
1612 VIXL_ASSERT(AreSameLaneSize(zda, zn, zm));
1617 zm,
1628 const ZRegister& zm,
1631 VIXL_ASSERT(AreSameLaneSize(zda, zn, zm));
1636 zm,
1650 const ZRegister& zm,
1657 VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
1662 zm,
2256 const ZRegister& zm) {
2262 VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
2264 Emit(ADD_z_zz | SVESize(zd) | Rd(zd) | Rn(zn) | Rm(zm));
2269 const ZRegister& zm) {
2275 VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
2277 Emit(SQADD_z_zz | SVESize(zd) | Rd(zd) | Rn(zn) | Rm(zm));
2282 const ZRegister& zm) {
2288 VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
2290 Emit(SQSUB_z_zz | SVESize(zd) | Rd(zd) | Rn(zn) | Rm(zm));
2295 const ZRegister& zm) {
2301 VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
2303 Emit(SUB_z_zz | SVESize(zd) | Rd(zd) | Rn(zn) | Rm(zm));
2308 const ZRegister& zm) {
2314 VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
2316 Emit(UQADD_z_zz | SVESize(zd) | Rd(zd) | Rn(zn) | Rm(zm));
2321 const ZRegister& zm) {
2327 VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
2329 Emit(UQSUB_z_zz | SVESize(zd) | Rd(zd) | Rn(zn) | Rm(zm));
2337 const ZRegister& zm) {
2345 VIXL_ASSERT(AreSameFormat(zd, zn, zm));
2347 Emit(ADD_z_p_zz | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zm));
2353 const ZRegister& zm) {
2361 VIXL_ASSERT(AreSameFormat(zd, zn, zm));
2363 Emit(AND_z_p_zz | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zm));
2369 const ZRegister& zm) {
2377 VIXL_ASSERT(AreSameFormat(zd, zn, zm));
2379 Emit(BIC_z_p_zz | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zm));
2385 const ZRegister& zm) {
2393 VIXL_ASSERT(AreSameFormat(zd, zn, zm));
2395 Emit(EOR_z_p_zz | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zm));
2401 const ZRegister& zm) {
2409 VIXL_ASSERT(AreSameFormat(zd, zn, zm));
2411 Emit(MUL_z_p_zz | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zm));
2417 const ZRegister& zm) {
2425 VIXL_ASSERT(AreSameFormat(zd, zn, zm));
2427 Emit(ORR_z_p_zz | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zm));
2433 const ZRegister& zm) {
2441 VIXL_ASSERT(AreSameFormat(zd, zn, zm));
2443 Emit(SABD_z_p_zz | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zm));
2449 const ZRegister& zm) {
2457 VIXL_ASSERT(AreSameFormat(zd, zn, zm));
2460 Emit(SDIV_z_p_zz | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zm));
2466 const ZRegister& zm) {
2474 VIXL_ASSERT(AreSameFormat(zd, zn, zm));
2477 Emit(SDIVR_z_p_zz | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zm));
2483 const ZRegister& zm) {
2491 VIXL_ASSERT(AreSameFormat(zd, zn, zm));
2493 Emit(SMAX_z_p_zz | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zm));
2499 const ZRegister& zm) {
2507 VIXL_ASSERT(AreSameFormat(zd, zn, zm));
2509 Emit(SMIN_z_p_zz | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zm));
2515 const ZRegister& zm) {
2523 VIXL_ASSERT(AreSameFormat(zd, zn, zm));
2525 Emit(SMULH_z_p_zz | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zm));
2531 const ZRegister& zm) {
2539 VIXL_ASSERT(AreSameFormat(zd, zn, zm));
2541 Emit(SUB_z_p_zz | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zm));
2547 const ZRegister& zm) {
2555 VIXL_ASSERT(AreSameFormat(zd, zn, zm));
2557 Emit(SUBR_z_p_zz | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zm));
2563 const ZRegister& zm) {
2571 VIXL_ASSERT(AreSameFormat(zd, zn, zm));
2573 Emit(UABD_z_p_zz | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zm));
2579 const ZRegister& zm) {
2587 VIXL_ASSERT(AreSameFormat(zd, zn, zm));
2590 Emit(UDIV_z_p_zz | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zm));
2596 const ZRegister& zm) {
2604 VIXL_ASSERT(AreSameFormat(zd, zn, zm));
2607 Emit(UDIVR_z_p_zz | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zm));
2613 const ZRegister& zm) {
2621 VIXL_ASSERT(AreSameFormat(zd, zn, zm));
2623 Emit(UMAX_z_p_zz | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zm));
2629 const ZRegister& zm) {
2637 VIXL_ASSERT(AreSameFormat(zd, zn, zm));
2639 Emit(UMIN_z_p_zz | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zm));
2645 const ZRegister& zm) {
2653 VIXL_ASSERT(AreSameFormat(zd, zn, zm));
2655 Emit(UMULH_z_p_zz | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zm));
2747 const ZRegister& zm,
2749 Emit(op | SVESize(zn) | Pd(pd) | PgLow8(pg) | Rn(zn) | Rm(zm));
2773 const ZRegister& zm) {
2776 cmpeq(pd, pg, zn, zm);
2779 cmpge(pd, pg, zn, zm);
2782 cmpgt(pd, pg, zn, zm);
2785 cmple(pd, pg, zn, zm);
2788 cmplt(pd, pg, zn, zm);
2791 cmpne(pd, pg, zn, zm);
2794 cmphi(pd, pg, zn, zm);
2797 cmphs(pd, pg, zn, zm);
2800 cmplo(pd, pg, zn, zm);
2803 cmpls(pd, pg, zn, zm);
2972 const ZRegister& zm) {
2976 if (!AreSameLaneSize(zn, zm)) {
2977 VIXL_ASSERT(zm.IsLaneSizeD());
2980 CompareVectors(pd, pg, zn, zm, op);
2989 const ZRegister& zm) {
2993 if (!AreSameLaneSize(zn, zm)) {
2994 VIXL_ASSERT(zm.IsLaneSizeD());
2997 CompareVectors(pd, pg, zn, zm, op);
3006 const ZRegister& zm) {
3010 if (!AreSameLaneSize(zn, zm)) {
3011 VIXL_ASSERT(zm.IsLaneSizeD());
3014 CompareVectors(pd, pg, zn, zm, op);
3023 const ZRegister& zm) {
3027 if (!AreSameLaneSize(zn, zm)) {
3028 VIXL_ASSERT(zm.IsLaneSizeD());
3031 CompareVectors(pd, pg, zn, zm, op);
3040 const ZRegister& zm) {
3044 if (!AreSameLaneSize(zn, zm)) {
3045 VIXL_ASSERT(zm.IsLaneSizeD());
3048 CompareVectors(pd, pg, zn, zm, op);
3054 const ZRegister& zm) {
3057 if (AreSameLaneSize(zn, zm)) {
3058 cmpge(pd, pg, zm, zn);
3061 VIXL_ASSERT(zm.IsLaneSizeD());
3064 CompareVectors(pd, pg, zn, zm, CMPLE_p_p_zw);
3070 const ZRegister& zm) {
3073 if (AreSameLaneSize(zn, zm)) {
3074 cmphi(pd, pg, zm, zn);
3077 VIXL_ASSERT(zm.IsLaneSizeD());
3080 CompareVectors(pd, pg, zn, zm, CMPLO_p_p_zw);
3086 const ZRegister& zm) {
3089 if (AreSameLaneSize(zn, zm)) {
3090 cmphs(pd, pg, zm, zn);
3093 VIXL_ASSERT(zm.IsLaneSizeD());
3096 CompareVectors(pd, pg, zn, zm, CMPLS_p_p_zw);
3102 const ZRegister& zm) {
3105 if (AreSameLaneSize(zn, zm)) {
3106 cmpgt(pd, pg, zm, zn);
3109 VIXL_ASSERT(zm.IsLaneSizeD());
3112 CompareVectors(pd, pg, zn, zm, CMPLT_p_p_zw);
3121 const ZRegister& zm) {
3125 if (!AreSameLaneSize(zn, zm)) {
3126 VIXL_ASSERT(zm.IsLaneSizeD());
3129 CompareVectors(pd, pg, zn, zm, op);
3148 const ZRegister& zm) {
3154 VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
3157 Emit(FTSSEL_z_zz | SVESize(zd) | Rd(zd) | Rn(zn) | Rm(zm));
3175 const ZRegister& zm,
3182 VIXL_ASSERT(AreSameLaneSize(zdn, zm, za));
3184 Emit(MAD_z_p_zzz | SVESize(zdn) | Rd(zdn) | PgLow8(pg) | Rm(zm) | Rn(za));
3190 const ZRegister& zm) {
3196 VIXL_ASSERT(AreSameLaneSize(zda, zn, zm));
3198 Emit(MLA_z_p_zzz | SVESize(zda) | Rd(zda) | PgLow8(pg) | Rn(zn) | Rm(zm));
3204 const ZRegister& zm) {
3210 VIXL_ASSERT(AreSameLaneSize(zda, zn, zm));
3212 Emit(MLS_z_p_zzz | SVESize(zda) | Rd(zda) | PgLow8(pg) | Rn(zn) | Rm(zm));
3217 const ZRegister& zm,
3224 VIXL_ASSERT(AreSameLaneSize(zdn, zm, za));
3226 Emit(MSB_z_p_zzz | SVESize(zdn) | Rd(zdn) | PgLow8(pg) | Rm(zm) | Rn(za));
3233 const ZRegister& zm) {
3237 VIXL_ASSERT(AreSameLaneSize(zm, zn));
3239 Emit(SDOT_z_zzz | SVESize(zda) | Rd(zda) | Rn(zn) | Rm(zm));
3244 const ZRegister& zm) {
3248 VIXL_ASSERT(AreSameLaneSize(zm, zn));
3250 Emit(UDOT_z_zzz | SVESize(zda) | Rd(zda) | Rn(zn) | Rm(zm));
4254 const ZRegister& zm) {
4262 Emit(LDFF1B_z_p_bz_d_64_unscaled | Rt(zt) | PgLow8(pg) | RnSP(xn) | Rm(zm));
4290 const ZRegister& zm) {
4298 Emit(LDFF1D_z_p_bz_d_64_scaled | Rt(zt) | PgLow8(pg) | RnSP(xn) | Rm(zm));
4323 const ZRegister& zm) {
4331 Emit(LDFF1H_z_p_bz_d_64_scaled | Rt(zt) | PgLow8(pg) | RnSP(xn) | Rm(zm));
4357 const ZRegister& zm) {
4365 Emit(LDFF1SB_z_p_bz_d_64_unscaled | Rt(zt) | PgLow8(pg) | RnSP(xn) | Rm(zm));
4394 const ZRegister& zm) {
4402 Emit(LDFF1SH_z_p_bz_d_64_scaled | Rt(zt) | PgLow8(pg) | RnSP(xn) | Rm(zm));
4431 const ZRegister& zm) {
4439 Emit(LDFF1SW_z_p_bz_d_64_scaled | Rt(zt) | PgLow8(pg) | RnSP(xn) | Rm(zm));
4465 const ZRegister& zm) {
4473 Emit(LDFF1W_z_p_bz_d_64_scaled | Rt(zt) | PgLow8(pg) | RnSP(xn) | Rm(zm));
4605 ZRegister zm = addr.GetVectorOffset();
4631 VIXL_ASSERT(zm.IsLaneSizeD());
4656 VIXL_ASSERT(zm.IsLaneSizeS() || zm.IsLaneSizeD());
4660 op = zm.IsLaneSizeS() ? static_cast<Instr>(PRFB_i_p_bz_s_x32_scaled)
4664 op = zm.IsLaneSizeS() ? static_cast<Instr>(PRFH_i_p_bz_s_x32_scaled)
4668 op = zm.IsLaneSizeS() ? static_cast<Instr>(PRFW_i_p_bz_s_x32_scaled)
4672 op = zm.IsLaneSizeS() ? static_cast<Instr>(PRFD_i_p_bz_s_x32_scaled)
4686 RnSP(addr.GetScalarBase()) | Rm(zm));
5087 ZRegister zm = addr.GetVectorOffset();
5095 VIXL_ASSERT(zm.IsLaneSizeD());
5099 VIXL_ASSERT(zm.IsLaneSizeD());
5106 VIXL_ASSERT(zm.IsLaneSizeS() || zm.IsLaneSizeD());
5113 op = RnSP(xn) | Rm(zm) | xs;
5327 const ZRegister& zm,
5331 VIXL_ASSERT(AreSameLaneSize(zn, zm));
5337 op = SDOT_z_zzzi_s | Rx<18, 16>(zm) | (index << 19) | Rd(zda) | Rn(zn);
5341 op = SDOT_z_zzzi_d | Rx<19, 16>(zm) | (index << 20) | Rd(zda) | Rn(zn);
5353 const ZRegister& zm,
5357 VIXL_ASSERT(AreSameLaneSize(zn, zm));
5363 op = UDOT_z_zzzi_s | Rx<18, 16>(zm) | (index << 19) | Rd(zda) | Rn(zn);
5367 op = UDOT_z_zzzi_d | Rx<19, 16>(zm) | (index << 20) | Rd(zda) | Rn(zn);
5565 const ZRegister& zm,
5584 op = EXT_z_zi_des | Rn(zm);
5587 VIXL_ASSERT(CPUHas(CPUFeatures::kSVE2) && AreConsecutive(zn, zm));
5599 const ZRegister& zm) {
5605 VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
5607 Emit(TRN1_z_zz | SVESize(zd) | Rd(zd) | Rn(zn) | Rm(zm));
5612 const ZRegister& zm) {
5618 VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
5620 Emit(TRN2_z_zz | SVESize(zd) | Rd(zd) | Rn(zn) | Rm(zm));
5625 const ZRegister& zm) {
5631 VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
5633 Emit(UZP1_z_zz | SVESize(zd) | Rd(zd) | Rn(zn) | Rm(zm));
5638 const ZRegister& zm) {
5644 VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
5646 Emit(UZP2_z_zz | SVESize(zd) | Rd(zd) | Rn(zn) | Rm(zm));
5651 const ZRegister& zm) {
5657 VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
5659 Emit(ZIP1_z_zz | SVESize(zd) | Rd(zd) | Rn(zn) | Rm(zm));
5664 const ZRegister& zm) {
5670 VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
5672 Emit(ZIP2_z_zz | SVESize(zd) | Rd(zd) | Rn(zn) | Rm(zm));
5680 const ZRegister& zm) {
5689 Emit(CLASTA_r_p_z | SVESize(zm) | Rd(rd) | PgLow8(pg) | Rn(zm));
5695 const ZRegister& zm) {
5704 VIXL_ASSERT(AreSameLaneSize(vd, zm));
5706 Emit(CLASTA_v_p_z | SVESize(zm) | Rd(vd) | PgLow8(pg) | Rn(zm));
5712 const ZRegister& zm) {
5720 VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
5722 Emit(CLASTA_z_p_zz | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zm));
5728 const ZRegister& zm) {
5737 Emit(CLASTB_r_p_z | SVESize(zm) | Rd(rd) | PgLow8(pg) | Rn(zm));
5743 const ZRegister& zm) {
5752 VIXL_ASSERT(AreSameLaneSize(vd, zm));
5754 Emit(CLASTB_v_p_z | SVESize(zm) | Rd(vd) | PgLow8(pg) | Rn(zm));
5760 const ZRegister& zm) {
5768 VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
5770 Emit(CLASTB_z_p_zz | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zm));
5926 const ZRegister& zm) {
5927 VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
5938 Emit(SPLICE_z_p_zz_des | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zm));
5940 splice_con(zd, pg, zn, zm);
6048 const ZRegister& zm) {
6054 VIXL_ASSERT(AreSameFormat(zd, zn, zm));
6056 Emit(TBL_z_zz_1 | SVESize(zd) | Rd(zd) | Rn(zn) | Rm(zm));
6454 const ZRegister& zm) {
6456 VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
6458 Emit(SEL_z_p_zz | SVESize(zd) | Rd(zd) | Pg<13, 10>(pg) | Rn(zn) | Rm(zm));
6623 const ZRegister& zm) {
6629 VIXL_ASSERT(AreSameLaneSize(zda, zn, zm));
6633 Emit(0x4500d000 | sz | Rd(zda) | Rn(zn) | Rm(zm));
6638 const ZRegister& zm) {
6644 VIXL_ASSERT(AreSameLaneSize(zda, zn, zm));
6648 Emit(0x4500d400 | sz | Rd(zda) | Rn(zn) | Rm(zm));
6653 const ZRegister& zm) {
6659 VIXL_ASSERT(AreSameLaneSize(zn, zm));
6663 Emit(0x45206000 | SVESize(zn) | Rd(zd) | Rn(zn) | Rm(zm));
6668 const ZRegister& zm) {
6674 VIXL_ASSERT(AreSameLaneSize(zn, zm));
6678 Emit(0x45206400 | SVESize(zn) | Rd(zd) | Rn(zn) | Rm(zm));
6684 const ZRegister& zm) {
6692 VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
6694 Emit(0x4411a000 | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zm));
6699 const ZRegister& zm,
6708 VIXL_ASSERT(AreSameLaneSize(zd, zn, zm, zk));
6711 Emit(0x04603800 | Rd(zd) | Rm(zm) | Rn(zk));
6716 const ZRegister& zm) {
6723 VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
6725 Emit(0x4500b400 | SVESize(zd) | Rd(zd) | Rn(zn) | Rm(zm));
6730 const ZRegister& zm) {
6737 VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
6739 Emit(0x4500b000 | SVESize(zd) | Rd(zd) | Rn(zn) | Rm(zm));
6744 const ZRegister& zm) {
6751 VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
6753 Emit(0x4500b800 | SVESize(zd) | Rd(zd) | Rn(zn) | Rm(zm));
6758 const ZRegister& zm,
6767 VIXL_ASSERT(AreSameLaneSize(zd, zn, zm, zk));
6770 Emit(0x04203c00 | Rd(zd) | Rm(zm) | Rn(zk));
6775 const ZRegister& zm,
6784 VIXL_ASSERT(AreSameLaneSize(zd, zn, zm, zk));
6787 Emit(0x04603c00 | Rd(zd) | Rm(zm) | Rn(zk));
6792 const ZRegister& zm,
6801 VIXL_ASSERT(AreSameLaneSize(zd, zn, zm, zk));
6804 Emit(0x04a03c00 | Rd(zd) | Rm(zm) | Rn(zk));
6809 const ZRegister& zm,
6818 VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
6822 Emit(0x4500d800 | rotate_bit | SVESize(zd) | Rd(zd) | Rn(zm));
6827 const ZRegister& zm,
6836 VIXL_ASSERT(AreSameLaneSize(zn, zm));
6842 if (zm.IsLaneSizeB()) {
6844 VIXL_ASSERT((zm.GetCode() <= 7) && (index <= 3));
6845 zm_and_idx = (index << 19) | Rx<18, 16>(zm);
6848 VIXL_ASSERT(zm.IsLaneSizeH());
6849 VIXL_ASSERT((zm.GetCode() <= 15) && (index <= 1));
6850 zm_and_idx = (index << 20) | Rx<19, 16>(zm);
6859 const ZRegister& zm,
6867 VIXL_ASSERT(AreSameLaneSize(zn, zm));
6872 Emit(0x44001000 | rotate_bits | SVESize(zda) | Rd(zda) | Rn(zn) | Rm(zm));
6877 const ZRegister& zm,
6885 VIXL_ASSERT(AreSameLaneSize(zda, zn, zm));
6889 Emit(0x44a06000 | SVEMulComplexIndexHelper(zm, index) | rotate_bit | Rd(zda) |
6895 const ZRegister& zm,
6902 VIXL_ASSERT(AreSameLaneSize(zda, zn, zm));
6906 Emit(0x44002000 | rotate_bit | SVESize(zda) | Rd(zda) | Rn(zn) | Rm(zm));
6911 const ZRegister& zm,
6920 VIXL_ASSERT(AreSameLaneSize(zd, zn, zm, zk));
6923 Emit(0x04203800 | Rd(zd) | Rm(zm) | Rn(zk));
6928 const ZRegister& zm) {
6934 VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
6936 Emit(0x45009000 | SVESize(zd) | Rd(zd) | Rn(zn) | Rm(zm));
6941 const ZRegister& zm) {
6947 VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
6949 Emit(0x45009400 | SVESize(zd) | Rd(zd) | Rn(zn) | Rm(zm));
6955 const ZRegister& zm) {
6963 VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
6966 Emit(0x64108000 | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zm));
7052 const ZRegister& zm) {
7060 VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
7063 Emit(0x64148000 | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zm));
7069 const ZRegister& zm) {
7077 VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
7080 Emit(0x64168000 | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zm));
7086 const ZRegister& zm) {
7094 VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
7097 Emit(0x64158000 | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zm));
7103 const ZRegister& zm) {
7111 VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
7114 Emit(0x64178000 | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zm));
7119 const ZRegister& zm) {
7126 VIXL_ASSERT(zn.IsLaneSizeH() && zm.IsLaneSizeH());
7128 Emit(0x64a08000 | Rd(zda) | Rn(zn) | Rm(zm));
7133 const ZRegister& zm,
7137 VIXL_ASSERT(zn.IsLaneSizeH() && zm.IsLaneSizeH());
7138 VIXL_ASSERT((zm.GetCode() <= 7) && (index <= 7));
7140 (ExtractBit(index, 0) << 11) | Rx<18, 16>(zm);
7147 const ZRegister& zm) {
7154 VIXL_ASSERT(zn.IsLaneSizeH() && zm.IsLaneSizeH());
7156 Emit(0x64a08400 | Rd(zda) | Rn(zn) | Rm(zm));
7161 const ZRegister& zm,
7169 VIXL_ASSERT(zn.IsLaneSizeH() && zm.IsLaneSizeH());
7170 VIXL_ASSERT((zm.GetCode() <= 7) && (index <= 7));
7172 (ExtractBit(index, 0) << 11) | Rx<18, 16>(zm);
7179 const ZRegister& zm) {
7186 VIXL_ASSERT(zn.IsLaneSizeH() && zm.IsLaneSizeH());
7188 Emit(0x64a0a000 | Rd(zda) | Rn(zn) | Rm(zm));
7193 const ZRegister& zm,
7201 VIXL_ASSERT(zn.IsLaneSizeH() && zm.IsLaneSizeH());
7202 VIXL_ASSERT((zm.GetCode() <= 7) && (index <= 7));
7204 (ExtractBit(index, 0) << 11) | Rx<18, 16>(zm);
7211 const ZRegister& zm) {
7218 VIXL_ASSERT(zn.IsLaneSizeH() && zm.IsLaneSizeH());
7220 Emit(0x64a0a400 | Rd(zda) | Rn(zn) | Rm(zm));
7225 const ZRegister& zm,
7233 VIXL_ASSERT(zn.IsLaneSizeH() && zm.IsLaneSizeH());
7234 VIXL_ASSERT((zm.GetCode() <= 7) && (index <= 7));
7236 (ExtractBit(index, 0) << 11) | Rx<18, 16>(zm);
7244 const ZRegister& zm) {
7250 VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
7253 Emit(0x4520c000 | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zn) | Rm(zm));
7258 const ZRegister& zm) {
7264 VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
7267 Emit(0x4520a000 | Rd(zd) | Rn(zn) | Rm(zm));
7273 const ZRegister& zm) {
7279 VIXL_ASSERT(AreSameLaneSize(pd, zn, zm));
7280 VIXL_ASSERT(zm.IsLaneSizeB() || zm.IsLaneSizeH());
7282 Emit(0x45208000 | SVESize(zm) | Pd(pd) | PgLow8(pg) | Rn(zn) | Rm(zm));
7287 const ZRegister& zm,
7294 VIXL_ASSERT(AreSameLaneSize(zda, zn, zm));
7297 zm,
7308 const ZRegister& zm,
7315 VIXL_ASSERT(AreSameLaneSize(zda, zn, zm));
7318 zm,
7329 const ZRegister& zm,
7336 VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
7339 zm,
7350 const ZRegister& zm) {
7356 VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
7358 Emit(0x04206000 | SVESize(zd) | Rd(zd) | Rn(zn) | Rm(zm));
7363 const ZRegister& zm,
7372 VIXL_ASSERT(AreSameLaneSize(zd, zn, zm, zk));
7375 Emit(0x04e03c00 | Rd(zd) | Rm(zm) | Rn(zk));
7381 const ZRegister& zm) {
7387 VIXL_ASSERT(AreSameLaneSize(pd, zn, zm));
7388 VIXL_ASSERT(zm.IsLaneSizeB() || zm.IsLaneSizeH());
7390 Emit(0x45208010 | SVESize(zm) | Pd(pd) | PgLow8(pg) | Rn(zn) | Rm(zm));
7395 const ZRegister& zm) {
7402 Emit(0x04206400 | Rd(zd) | Rn(zn) | Rm(zm));
7407 const ZRegister& zm) {
7413 VIXL_ASSERT(AreSameLaneSize(zn, zm));
7419 Emit(0x45006800 | SVESize(zd) | Rd(zd) | Rn(zn) | Rm(zm));
7424 const ZRegister& zm) {
7430 VIXL_ASSERT(AreSameLaneSize(zn, zm));
7436 Emit(0x45006c00 | SVESize(zd) | Rd(zd) | Rn(zn) | Rm(zm));
7441 const ZRegister& zm) {
7447 VIXL_ASSERT(AreSameLaneSize(zn, zm));
7451 Emit(0x45206800 | SVESize(zn) | Rd(zd) | Rn(zn) | Rm(zm));
7456 const ZRegister& zm) {
7462 VIXL_ASSERT(AreSameLaneSize(zn, zm));
7466 Emit(0x45206c00 | SVESize(zn) | Rd(zd) | Rn(zn) | Rm(zm));
7501 const ZRegister& zm) {
7507 VIXL_ASSERT(AreSameLaneSize(zn, zm));
7511 Emit(0x45207800 | SVESize(zn) | Rd(zd) | Rn(zn) | Rm(zm));
7516 const ZRegister& zm) {
7522 VIXL_ASSERT(AreSameLaneSize(zn, zm));
7526 Emit(0x45207c00 | SVESize(zn) | Rd(zd) | Rn(zn) | Rm(zm));
7531 const ZRegister& zm) {
7537 VIXL_ASSERT(AreSameLaneSize(zda, zn, zm));
7539 Emit(0x4500f800 | SVESize(zda) | Rd(zda) | Rn(zn) | Rm(zm));
7544 const ZRegister& zm) {
7550 VIXL_ASSERT(AreSameLaneSize(zn, zm));
7554 Emit(0x4500c000 | SVESize(zda) | Rd(zda) | Rn(zn) | Rm(zm));
7559 const ZRegister& zm) {
7565 VIXL_ASSERT(AreSameLaneSize(zn, zm));
7569 Emit(0x4500c400 | SVESize(zda) | Rd(zda) | Rn(zn) | Rm(zm));
7574 const ZRegister& zm) {
7581 VIXL_ASSERT(AreSameLaneSize(zn, zm));
7585 Emit(0x45003000 | SVESize(zd) | Rd(zd) | Rn(zn) | Rm(zm));
7590 const ZRegister& zm) {
7597 VIXL_ASSERT(AreSameLaneSize(zn, zm));
7601 Emit(0x45003400 | SVESize(zd) | Rd(zd) | Rn(zn) | Rm(zm));
7620 const ZRegister& zm) {
7627 VIXL_ASSERT(AreSameLaneSize(zn, zm));
7631 Emit(0x45000000 | SVESize(zd) | Rd(zd) | Rn(zn) | Rm(zm));
7636 const ZRegister& zm) {
7642 VIXL_ASSERT(AreSameLaneSize(zn, zm));
7646 Emit(0x45008000 | SVESize(zd) | Rd(zd) | Rn(zn) | Rm(zm));
7651 const ZRegister& zm) {
7658 VIXL_ASSERT(AreSameLaneSize(zn, zm));
7662 Emit(0x45000400 | SVESize(zd) | Rd(zd) | Rn(zn) | Rm(zm));
7667 const ZRegister& zm) {
7674 VIXL_ASSERT(zd.GetLaneSizeInBytes() == (zm.GetLaneSizeInBytes() * 2));
7677 Emit(0x45004000 | SVESize(zd) | Rd(zd) | Rn(zn) | Rm(zm));
7682 const ZRegister& zm) {
7689 VIXL_ASSERT(zd.GetLaneSizeInBytes() == (zm.GetLaneSizeInBytes() * 2));
7692 Emit(0x45004400 | SVESize(zd) | Rd(zd) | Rn(zn) | Rm(zm));
7697 const ZRegister& zm) {
7703 VIXL_ASSERT(AreSameLaneSize(zda, zn, zm));
7707 Emit(0x4580d000 | sz | Rd(zda) | Rn(zn) | Rm(zm));
7712 const ZRegister& zm) {
7718 VIXL_ASSERT(AreSameLaneSize(zda, zn, zm));
7722 Emit(0x4580d400 | sz | Rd(zda) | Rn(zn) | Rm(zm));
7728 const ZRegister& zm) {
7736 VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
7738 Emit(0x44108000 | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zm));
7744 const ZRegister& zm) {
7752 VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
7754 Emit(0x44128000 | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zm));
7760 const ZRegister& zm) {
7768 VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
7770 Emit(0x44168000 | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zm));
7789 const ZRegister& zm) {
7797 VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
7799 Emit(0x4414a000 | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zm));
7805 const ZRegister& zm) {
7813 VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
7815 Emit(0x4416a000 | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zm));
7837 const ZRegister& zm, \
7840 VIXL_ASSERT(AreSameLaneSize(zn, zm)); \
7843 Instr zm_with_index = SVEMulLongIndexHelper(zm, index); \
7851 const ZRegister& zm) {
7858 VIXL_ASSERT(AreSameLaneSize(zn, zm));
7861 Emit(0x44004000 | SVESize(zda) | Rd(zda) | Rn(zn) | Rm(zm));
7866 const ZRegister& zm) {
7873 VIXL_ASSERT(AreSameLaneSize(zn, zm));
7876 Emit(0x44004400 | SVESize(zda) | Rd(zda) | Rn(zn) | Rm(zm));
7881 const ZRegister& zm) {
7888 VIXL_ASSERT(AreSameLaneSize(zn, zm));
7891 Emit(0x44005000 | SVESize(zda) | Rd(zda) | Rn(zn) | Rm(zm));
7896 const ZRegister& zm) {
7903 VIXL_ASSERT(AreSameLaneSize(zn, zm));
7906 Emit(0x44005400 | SVESize(zda) | Rd(zda) | Rn(zn) | Rm(zm));
7911 const ZRegister& zm) {
7917 VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
7919 Emit(0x04206800 | SVESize(zd) | Rd(zd) | Rn(zn) | Rm(zm));
7924 const ZRegister& zm) {
7930 VIXL_ASSERT(AreSameLaneSize(zn, zm));
7934 Emit(0x45007000 | SVESize(zd) | Rd(zd) | Rn(zn) | Rm(zm));
7939 const ZRegister& zm) {
7945 VIXL_ASSERT(AreSameLaneSize(zn, zm));
7949 Emit(0x45007400 | SVESize(zd) | Rd(zd) | Rn(zn) | Rm(zm));
7968 const ZRegister& zm) {
7976 VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
7978 Emit(0x44188000 | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zm));
7983 const ZRegister& zm,
7992 VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
7996 Emit(0x4501d800 | rotate_bit | SVESize(zd) | Rd(zd) | Rn(zm));
8004 const ZRegister& zm,
8011 VIXL_ASSERT(AreSameLaneSize(zn, zm));
8016 if (zm.IsLaneSizeH()) {
8018 VIXL_ASSERT((zm.GetCode() <= 7) && (index <= 7));
8020 (ExtractBit(index, 0) << 11) | Rx<18, 16>(zm);
8023 VIXL_ASSERT(zm.IsLaneSizeS());
8024 VIXL_ASSERT((zm.GetCode() <= 15) && (index <= 3));
8026 Rx<19, 16>(zm);
8034 const ZRegister& zm) {
8040 VIXL_ASSERT(AreSameLaneSize(zn, zm));
8044 Emit(0x44006000 | SVESize(zda) | Rd(zda) | Rn(zn) | Rm(zm));
8049 const ZRegister& zm) {
8055 VIXL_ASSERT(AreSameLaneSize(zn, zm));
8059 Emit(0x44000800 | SVESize(zda) | Rd(zda) | Rn(zn) | Rm(zm));
8067 const ZRegister& zm,
8074 VIXL_ASSERT(AreSameLaneSize(zn, zm));
8079 if (zm.IsLaneSizeH()) {
8081 VIXL_ASSERT((zm.GetCode() <= 7) && (index <= 7));
8083 (ExtractBit(index, 0) << 11) | Rx<18, 16>(zm);
8086 VIXL_ASSERT(zm.IsLaneSizeS());
8087 VIXL_ASSERT((zm.GetCode() <= 15) && (index <= 3));
8089 Rx<19, 16>(zm);
8097 const ZRegister& zm) {
8103 VIXL_ASSERT(AreSameLaneSize(zn, zm));
8107 Emit(0x44006400 | SVESize(zda) | Rd(zda) | Rn(zn) | Rm(zm));
8115 const ZRegister& zm,
8122 VIXL_ASSERT(AreSameLaneSize(zn, zm));
8127 if (zm.IsLaneSizeH()) {
8129 VIXL_ASSERT((zm.GetCode() <= 7) && (index <= 7));
8131 (ExtractBit(index, 0) << 11) | Rx<18, 16>(zm);
8134 VIXL_ASSERT(zm.IsLaneSizeS());
8135 VIXL_ASSERT((zm.GetCode() <= 15) && (index <= 3));
8137 Rx<19, 16>(zm);
8145 const ZRegister& zm) {
8151 VIXL_ASSERT(AreSameLaneSize(zn, zm));
8155 Emit(0x44006800 | SVESize(zda) | Rd(zda) | Rn(zn) | Rm(zm));
8160 const ZRegister& zm) {
8166 VIXL_ASSERT(AreSameLaneSize(zn, zm));
8170 Emit(0x44000c00 | SVESize(zda) | Rd(zda) | Rn(zn) | Rm(zm));
8178 const ZRegister& zm,
8185 VIXL_ASSERT(AreSameLaneSize(zn, zm));
8190 if (zm.IsLaneSizeH()) {
8192 VIXL_ASSERT((zm.GetCode() <= 7) && (index <= 7));
8194 (ExtractBit(index, 0) << 11) | Rx<18, 16>(zm);
8197 VIXL_ASSERT(zm.IsLaneSizeS());
8198 VIXL_ASSERT((zm.GetCode() <= 15) && (index <= 3));
8200 Rx<19, 16>(zm);
8208 const ZRegister& zm) {
8214 VIXL_ASSERT(AreSameLaneSize(zn, zm));
8218 Emit(0x44006c00 | SVESize(zda) | Rd(zda) | Rn(zn) | Rm(zm));
8223 const ZRegister& zm,
8230 VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
8233 zm,
8244 const ZRegister& zm) {
8250 VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
8252 Emit(0x04207000 | SVESize(zd) | Rd(zd) | Rn(zn) | Rm(zm));
8257 const ZRegister& zm) {
8263 VIXL_ASSERT(AreSameLaneSize(zn, zm));
8267 Emit(0x45006000 | SVESize(zd) | Rd(zd) | Rn(zn) | Rm(zm));
8272 const ZRegister& zm) {
8278 VIXL_ASSERT(AreSameLaneSize(zn, zm));
8282 Emit(0x45006400 | SVESize(zd) | Rd(zd) | Rn(zn) | Rm(zm));
8300 const ZRegister& zm,
8308 VIXL_ASSERT(AreSameLaneSize(zda, zn, zm));
8312 Emit(0x44a07000 | SVEMulComplexIndexHelper(zm, index) | rotate_bit | Rd(zda) |
8318 const ZRegister& zm,
8325 VIXL_ASSERT(AreSameLaneSize(zda, zn, zm));
8329 Emit(0x44003000 | rotate_bit | SVESize(zda) | Rd(zda) | Rn(zn) | Rm(zm));
8338 const ZRegister& zm,
8341 VIXL_ASSERT(AreSameLaneSize(zda, zn, zm));
8349 zm,
8360 const ZRegister& zm) {
8366 VIXL_ASSERT(AreSameLaneSize(zda, zn, zm));
8368 Emit(0x44007000 | SVESize(zda) | Rd(zda) | Rn(zn) | Rm(zm));
8377 const ZRegister& zm,
8380 VIXL_ASSERT(AreSameLaneSize(zda, zn, zm));
8388 zm,
8399 const ZRegister& zm) {
8405 VIXL_ASSERT(AreSameLaneSize(zda, zn, zm));
8407 Emit(0x44007400 | SVESize(zda) | Rd(zda) | Rn(zn) | Rm(zm));
8412 const ZRegister& zm,
8419 VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
8422 zm,
8433 const ZRegister& zm) {
8439 VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
8441 Emit(0x04207400 | SVESize(zd) | Rd(zd) | Rn(zn) | Rm(zm));
8447 const ZRegister& zm) {
8456 VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
8458 Emit(0x440a8000 | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zm));
8464 const ZRegister& zm) {
8473 VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
8475 Emit(0x440e8000 | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zm));
8498 const ZRegister& zm) {
8507 VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
8509 Emit(0x44088000 | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zm));
8515 const ZRegister& zm) {
8524 VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
8526 Emit(0x440c8000 | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zm));
8550 const ZRegister& zm) {
8558 VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
8560 Emit(0x441a8000 | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zm));
8566 const ZRegister& zm) {
8574 VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
8576 Emit(0x441e8000 | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zm));
8638 const ZRegister& zm) {
8646 VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
8648 Emit(0x44148000 | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zm));
8667 const ZRegister& zm) {
8676 VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
8678 Emit(0x44028000 | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zm));
8684 const ZRegister& zm) {
8693 VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
8695 Emit(0x44068000 | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zm));
8773 const ZRegister& zm) {
8780 VIXL_ASSERT(AreSameLaneSize(zn, zm));
8784 Emit(0x45001000 | SVESize(zd) | Rd(zd) | Rn(zn) | Rm(zm));
8789 const ZRegister& zm) {
8795 VIXL_ASSERT(AreSameLaneSize(zn, zm));
8799 Emit(0x45008800 | SVESize(zd) | Rd(zd) | Rn(zn) | Rm(zm));
8804 const ZRegister& zm) {
8811 VIXL_ASSERT(AreSameLaneSize(zn, zm));
8815 Emit(0x45001400 | SVESize(zd) | Rd(zd) | Rn(zn) | Rm(zm));
8820 const ZRegister& zm) {
8826 VIXL_ASSERT(AreSameLaneSize(zn, zm));
8830 Emit(0x45008c00 | SVESize(zd) | Rd(zd) | Rn(zn) | Rm(zm));
8835 const ZRegister& zm) {
8842 VIXL_ASSERT(zd.GetLaneSizeInBytes() == (zm.GetLaneSizeInBytes() * 2));
8845 Emit(0x45005000 | SVESize(zd) | Rd(zd) | Rn(zn) | Rm(zm));
8850 const ZRegister& zm) {
8857 VIXL_ASSERT(zd.GetLaneSizeInBytes() == (zm.GetLaneSizeInBytes() * 2));
8860 Emit(0x45005400 | SVESize(zd) | Rd(zd) | Rn(zn) | Rm(zm));
8916 const ZRegister& zm) {
8922 VIXL_ASSERT(AreSameLaneSize(zn, zm));
8926 Emit(0x45207000 | SVESize(zn) | Rd(zd) | Rn(zn) | Rm(zm));
8931 const ZRegister& zm) {
8937 VIXL_ASSERT(AreSameLaneSize(zn, zm));
8941 Emit(0x45207400 | SVESize(zn) | Rd(zd) | Rn(zn) | Rm(zm));
8947 const ZRegister& zm) {
8955 VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
8957 Emit(0x441c8000 | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zm));
8963 const ZRegister& zm) {
8971 VIXL_ASSERT(AreSameLaneSize(zd, zn1, zn2, zm));
8973 Emit(0x05202800 | SVESize(zd) | Rd(zd) | Rn(zn1) | Rn(zn2) | Rm(zm));
8978 const ZRegister& zm) {
8984 VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
8986 Emit(0x05202c00 | SVESize(zd) | Rd(zd) | Rn(zn) | Rm(zm));
8991 const ZRegister& zm) {
8997 VIXL_ASSERT(AreSameLaneSize(zda, zn, zm));
8999 Emit(0x4500fc00 | SVESize(zda) | Rd(zda) | Rn(zn) | Rm(zm));
9004 const ZRegister& zm) {
9010 VIXL_ASSERT(AreSameLaneSize(zn, zm));
9014 Emit(0x4500c800 | SVESize(zda) | Rd(zda) | Rn(zn) | Rm(zm));
9019 const ZRegister& zm) {
9025 VIXL_ASSERT(AreSameLaneSize(zn, zm));
9029 Emit(0x4500cc00 | SVESize(zda) | Rd(zda) | Rn(zn) | Rm(zm));
9034 const ZRegister& zm) {
9041 VIXL_ASSERT(AreSameLaneSize(zn, zm));
9045 Emit(0x45003800 | SVESize(zd) | Rd(zd) | Rn(zn) | Rm(zm));
9050 const ZRegister& zm) {
9057 VIXL_ASSERT(AreSameLaneSize(zn, zm));
9061 Emit(0x45003c00 | SVESize(zd) | Rd(zd) | Rn(zn) | Rm(zm));
9080 const ZRegister& zm) {
9087 VIXL_ASSERT(AreSameLaneSize(zn, zm));
9091 Emit(0x45000800 | SVESize(zd) | Rd(zd) | Rn(zn) | Rm(zm));
9096 const ZRegister& zm) {
9103 VIXL_ASSERT(AreSameLaneSize(zn, zm));
9107 Emit(0x45000c00 | SVESize(zd) | Rd(zd) | Rn(zn) | Rm(zm));
9112 const ZRegister& zm) {
9119 VIXL_ASSERT(zd.GetLaneSizeInBytes() == (zm.GetLaneSizeInBytes() * 2));
9122 Emit(0x45004800 | SVESize(zd) | Rd(zd) | Rn(zn) | Rm(zm));
9127 const ZRegister& zm) {
9134 VIXL_ASSERT(zd.GetLaneSizeInBytes() == (zm.GetLaneSizeInBytes() * 2));
9137 Emit(0x45004c00 | SVESize(zd) | Rd(zd) | Rn(zn) | Rm(zm));
9143 const ZRegister& zm) {
9151 VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
9153 Emit(0x44118000 | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zm));
9159 const ZRegister& zm) {
9167 VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
9169 Emit(0x44138000 | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zm));
9175 const ZRegister& zm) {
9183 VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
9185 Emit(0x44178000 | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zm));
9191 const ZRegister& zm) {
9199 VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
9201 Emit(0x4415a000 | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zm));
9207 const ZRegister& zm) {
9215 VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
9217 Emit(0x4417a000 | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zm));
9222 const ZRegister& zm) {
9229 VIXL_ASSERT(AreSameLaneSize(zn, zm));
9232 Emit(0x44004800 | SVESize(zda) | Rd(zda) | Rn(zn) | Rm(zm));
9237 const ZRegister& zm) {
9244 VIXL_ASSERT(AreSameLaneSize(zn, zm));
9247 Emit(0x44004c00 | SVESize(zda) | Rd(zda) | Rn(zn) | Rm(zm));
9252 const ZRegister& zm) {
9259 VIXL_ASSERT(AreSameLaneSize(zn, zm));
9262 Emit(0x44005800 | SVESize(zda) | Rd(zda) | Rn(zn) | Rm(zm));
9267 const ZRegister& zm) {
9274 VIXL_ASSERT(AreSameLaneSize(zn, zm));
9277 Emit(0x44005c00 | SVESize(zda) | Rd(zda) | Rn(zn) | Rm(zm));
9282 const ZRegister& zm) {
9288 VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
9290 Emit(0x04206c00 | SVESize(zd) | Rd(zd) | Rn(zn) | Rm(zm));
9295 const ZRegister& zm) {
9301 VIXL_ASSERT(AreSameLaneSize(zn, zm));
9305 Emit(0x45007800 | SVESize(zd) | Rd(zd) | Rn(zn) | Rm(zm));
9310 const ZRegister& zm) {
9316 VIXL_ASSERT(AreSameLaneSize(zn, zm));
9320 Emit(0x45007c00 | SVESize(zd) | Rd(zd) | Rn(zn) | Rm(zm));
9326 const ZRegister& zm) {
9334 VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
9336 Emit(0x44198000 | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zm));
9342 const ZRegister& zm) {
9351 VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
9353 Emit(0x440b8000 | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zm));
9359 const ZRegister& zm) {
9368 VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
9370 Emit(0x440f8000 | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zm));
9393 const ZRegister& zm) {
9402 VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
9404 Emit(0x44098000 | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zm));
9410 const ZRegister& zm) {
9419 VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
9421 Emit(0x440d8000 | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zm));
9427 const ZRegister& zm) {
9435 VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
9437 Emit(0x441b8000 | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zm));
9443 const ZRegister& zm) {
9451 VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
9453 Emit(0x441f8000 | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zm));
9500 const ZRegister& zm) {
9508 VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
9510 Emit(0x44158000 | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zm));
9516 const ZRegister& zm) {
9525 VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
9527 Emit(0x44038000 | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zm));
9533 const ZRegister& zm) {
9542 VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
9544 Emit(0x44078000 | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zm));
9622 const ZRegister& zm) {
9630 VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
9632 Emit(0x441d8000 | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zm));
9651 const ZRegister& zm) {
9658 VIXL_ASSERT(AreSameLaneSize(zn, zm));
9662 Emit(0x45001800 | SVESize(zd) | Rd(zd) | Rn(zn) | Rm(zm));
9667 const ZRegister& zm) {
9674 VIXL_ASSERT(AreSameLaneSize(zn, zm));
9678 Emit(0x45001c00 | SVESize(zd) | Rd(zd) | Rn(zn) | Rm(zm));
9683 const ZRegister& zm) {
9690 VIXL_ASSERT(zd.GetLaneSizeInBytes() == (zm.GetLaneSizeInBytes() * 2));
9693 Emit(0x45005800 | SVESize(zd) | Rd(zd) | Rn(zn) | Rm(zm));
9698 const ZRegister& zm) {
9705 VIXL_ASSERT(zd.GetLaneSizeInBytes() == (zm.GetLaneSizeInBytes() * 2));
9708 Emit(0x45005c00 | SVESize(zd) | Rd(zd) | Rn(zn) | Rm(zm));
9799 const ZRegister& zm,
9808 VIXL_ASSERT(AreSameLaneSize(zd, zm));
9812 SVEBitwiseShiftImmediate(zd, zm, encoded_imm, 0x04203400);
9817 const ZRegister& zm) {
9821 VIXL_ASSERT(AreSameLaneSize(zda, zn, zm));
9823 Emit(0x6420e400 | SVESize(zda) | Rd(zda) | Rn(zn) | Rm(zm));
9828 const ZRegister& zm) {
9832 VIXL_ASSERT(zn.IsLaneSizeB() && zm.IsLaneSizeB());
9834 Emit(0x45009800 | Rd(zda) | Rn(zn) | Rm(zm));
9839 const ZRegister& zm) {
9843 VIXL_ASSERT(zn.IsLaneSizeB() && zm.IsLaneSizeB());
9845 Emit(0x45809800 | Rd(zda) | Rn(zn) | Rm(zm));
9850 const ZRegister& zm) {
9854 VIXL_ASSERT(zn.IsLaneSizeB() && zm.IsLaneSizeB());
9856 Emit(0x45c09800 | Rd(zda) | Rn(zn) | Rm(zm));
9861 const ZRegister& zm) {
9865 VIXL_ASSERT(zn.IsLaneSizeB() && zm.IsLaneSizeB());
9867 Emit(0x44807800 | Rd(zda) | Rn(zn) | Rm(zm));
9872 const ZRegister& zm,
9877 VIXL_ASSERT(zn.IsLaneSizeB() && zm.IsLaneSizeB());
9878 VIXL_ASSERT(zm.GetCode() <= 7);
9881 Emit(0x44a01800 | Rx<18, 16>(zm) | (index << 19) | Rd(zda) | Rn(zn));
9886 const ZRegister& zm,
9891 VIXL_ASSERT(zn.IsLaneSizeB() && zm.IsLaneSizeB());
9892 VIXL_ASSERT(zm.GetCode() <= 7);
9895 Emit(0x44a01c00 | Rx<18, 16>(zm) | (index << 19) | Rd(zda) | Rn(zn));