Lines Matching refs:VIXL_ASSERT
46 VIXL_ASSERT((deletion_policy == kManuallyDeleted) || (literal_pool_ != NULL));
62 VIXL_ASSERT((offset >= 0) && (offset <= GetBuffer()->GetCursorOffset()));
63 VIXL_ASSERT(offset % kInstructionSize == 0);
112 VIXL_ASSERT(!literal->IsPlaced());
121 VIXL_ASSERT(ldr->IsLoadLiteral());
124 VIXL_ASSERT(imm19 <= 0);
143 VIXL_ASSERT(literal->GetSize() == kQRegSizeInBytes);
153 VIXL_ASSERT(IsWordAligned(GetCursorOffset()));
160 VIXL_ASSERT((literal->GetOffset() - GetCursorOffset()) <= 0);
182 VIXL_ASSERT(xn.Is64Bits());
188 VIXL_ASSERT(xn.Is64Bits());
194 VIXL_ASSERT(xn.Is64Bits());
200 VIXL_ASSERT(CPUHas(CPUFeatures::kPAuth));
201 VIXL_ASSERT(xn.Is64Bits());
206 VIXL_ASSERT(CPUHas(CPUFeatures::kPAuth));
207 VIXL_ASSERT(xn.Is64Bits());
212 VIXL_ASSERT(CPUHas(CPUFeatures::kPAuth));
213 VIXL_ASSERT(xn.Is64Bits());
218 VIXL_ASSERT(CPUHas(CPUFeatures::kPAuth));
219 VIXL_ASSERT(xn.Is64Bits());
224 VIXL_ASSERT(CPUHas(CPUFeatures::kPAuth));
229 VIXL_ASSERT(CPUHas(CPUFeatures::kPAuth));
235 VIXL_ASSERT(CPUHas(CPUFeatures::kPAuth));
236 VIXL_ASSERT(xn.Is64Bits() && xm.Is64Bits());
241 VIXL_ASSERT(CPUHas(CPUFeatures::kPAuth));
242 VIXL_ASSERT(xn.Is64Bits() && xm.Is64Bits());
247 VIXL_ASSERT(CPUHas(CPUFeatures::kPAuth));
248 VIXL_ASSERT(xn.Is64Bits() && xm.Is64Bits());
253 VIXL_ASSERT(CPUHas(CPUFeatures::kPAuth));
254 VIXL_ASSERT(xn.Is64Bits() && xm.Is64Bits());
269 VIXL_ASSERT(Instruction::IsValidImmPCOffset(UncondBranchType, offset));
276 VIXL_ASSERT(Instruction::IsValidImmPCOffset(CondBranchType, offset));
286 VIXL_ASSERT(Instruction::IsValidImmPCOffset(UncondBranchType, offset));
298 VIXL_ASSERT(Instruction::IsValidImmPCOffset(CompareBranchType, offset));
310 VIXL_ASSERT(Instruction::IsValidImmPCOffset(CompareBranchType, offset));
319 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
320 VIXL_ASSERT(vd.Is16B() || vd.Is8B());
321 VIXL_ASSERT(vn.Is16B());
322 VIXL_ASSERT(AreSameFormat(vd, vm));
330 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
340 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
341 VIXL_ASSERT(AreSameFormat(vn, vn2));
342 VIXL_ASSERT(AreConsecutive(vn, vn2));
353 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
354 VIXL_ASSERT(AreSameFormat(vn, vn2, vn3));
355 VIXL_ASSERT(AreConsecutive(vn, vn2, vn3));
367 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
368 VIXL_ASSERT(AreSameFormat(vn, vn2, vn3, vn4));
369 VIXL_ASSERT(AreConsecutive(vn, vn2, vn3, vn4));
377 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
387 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
388 VIXL_ASSERT(AreSameFormat(vn, vn2));
389 VIXL_ASSERT(AreConsecutive(vn, vn2));
400 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
401 VIXL_ASSERT(AreSameFormat(vn, vn2, vn3));
402 VIXL_ASSERT(AreConsecutive(vn, vn2, vn3));
414 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
415 VIXL_ASSERT(AreSameFormat(vn, vn2, vn3, vn4));
416 VIXL_ASSERT(AreConsecutive(vn, vn2, vn3, vn4));
422 VIXL_ASSERT(rt.Is64Bits() || (rt.Is32Bits() && (bit_pos < kWRegSize)));
429 VIXL_ASSERT(Instruction::IsValidImmPCOffset(TestBranchType, offset));
435 VIXL_ASSERT(rt.Is64Bits() || (rt.Is32Bits() && (bit_pos < kWRegSize)));
442 VIXL_ASSERT(Instruction::IsValidImmPCOffset(TestBranchType, offset));
448 VIXL_ASSERT(xd.Is64Bits());
459 VIXL_ASSERT(xd.Is64Bits());
465 VIXL_ASSERT(AllowPageOffsetDependentCode());
551 VIXL_ASSERT(CPUHas(CPUFeatures::kFlagM));
552 VIXL_ASSERT(xn.Is64Bits());
558 VIXL_ASSERT(CPUHas(CPUFeatures::kFlagM));
564 VIXL_ASSERT(CPUHas(CPUFeatures::kFlagM));
646 VIXL_ASSERT(rd.GetSizeInBits() == rn.GetSizeInBits());
647 VIXL_ASSERT(rd.GetSizeInBits() == rm.GetSizeInBits());
655 VIXL_ASSERT(rd.GetSizeInBits() == rn.GetSizeInBits());
656 VIXL_ASSERT(rd.GetSizeInBits() == rm.GetSizeInBits());
664 VIXL_ASSERT(rd.GetSizeInBits() == rn.GetSizeInBits());
665 VIXL_ASSERT(rd.GetSizeInBits() == rm.GetSizeInBits());
673 VIXL_ASSERT(rd.GetSizeInBits() == rn.GetSizeInBits());
674 VIXL_ASSERT(rd.GetSizeInBits() == rm.GetSizeInBits());
684 VIXL_ASSERT(rd.GetSizeInBits() == rn.GetSizeInBits());
695 VIXL_ASSERT(rd.Is64Bits() || rn.Is32Bits());
706 VIXL_ASSERT(rd.GetSizeInBits() == rn.GetSizeInBits());
717 VIXL_ASSERT(rd.GetSizeInBits() == rn.GetSizeInBits());
718 VIXL_ASSERT(rd.GetSizeInBits() == rm.GetSizeInBits());
758 VIXL_ASSERT((cond != al) && (cond != nv));
765 VIXL_ASSERT((cond != al) && (cond != nv));
772 VIXL_ASSERT((cond != al) && (cond != nv));
778 VIXL_ASSERT((cond != al) && (cond != nv));
784 VIXL_ASSERT((cond != al) && (cond != nv));
794 VIXL_ASSERT(rd.GetSizeInBits() == rn.GetSizeInBits());
795 VIXL_ASSERT(rd.GetSizeInBits() == rm.GetSizeInBits());
828 VIXL_ASSERT(CPUHas(CPUFeatures::kCRC32));
829 VIXL_ASSERT(wd.Is32Bits() && wn.Is32Bits() && wm.Is32Bits());
837 VIXL_ASSERT(CPUHas(CPUFeatures::kCRC32));
838 VIXL_ASSERT(wd.Is32Bits() && wn.Is32Bits() && wm.Is32Bits());
846 VIXL_ASSERT(CPUHas(CPUFeatures::kCRC32));
847 VIXL_ASSERT(wd.Is32Bits() && wn.Is32Bits() && wm.Is32Bits());
855 VIXL_ASSERT(CPUHas(CPUFeatures::kCRC32));
856 VIXL_ASSERT(wd.Is32Bits() && wn.Is32Bits() && xm.Is64Bits());
864 VIXL_ASSERT(CPUHas(CPUFeatures::kCRC32));
865 VIXL_ASSERT(wd.Is32Bits() && wn.Is32Bits() && wm.Is32Bits());
873 VIXL_ASSERT(CPUHas(CPUFeatures::kCRC32));
874 VIXL_ASSERT(wd.Is32Bits() && wn.Is32Bits() && wm.Is32Bits());
882 VIXL_ASSERT(CPUHas(CPUFeatures::kCRC32));
883 VIXL_ASSERT(wd.Is32Bits() && wn.Is32Bits() && wm.Is32Bits());
891 VIXL_ASSERT(CPUHas(CPUFeatures::kCRC32));
892 VIXL_ASSERT(wd.Is32Bits() && wn.Is32Bits() && xm.Is64Bits());
900 VIXL_ASSERT(AreSameSizeAndType(rd, rn, rm));
916 VIXL_ASSERT(AreSameSizeAndType(rd, rn, rm));
933 VIXL_ASSERT(xd.Is64Bits() && xa.Is64Bits());
934 VIXL_ASSERT(wn.Is32Bits() && wm.Is32Bits());
943 VIXL_ASSERT(xd.Is64Bits() && xa.Is64Bits());
944 VIXL_ASSERT(wn.Is32Bits() && wm.Is32Bits());
953 VIXL_ASSERT(xd.Is64Bits() && xa.Is64Bits());
954 VIXL_ASSERT(wn.Is32Bits() && wm.Is32Bits());
963 VIXL_ASSERT(xd.Is64Bits() && xa.Is64Bits());
964 VIXL_ASSERT(wn.Is32Bits() && wm.Is32Bits());
972 VIXL_ASSERT(xd.Is64Bits());
973 VIXL_ASSERT(wn.Is32Bits() && wm.Is32Bits());
981 VIXL_ASSERT(rd.GetSizeInBits() == rn.GetSizeInBits());
982 VIXL_ASSERT(rd.GetSizeInBits() == rm.GetSizeInBits());
990 VIXL_ASSERT(xd.Is64Bits() && xn.Is64Bits() && xm.Is64Bits());
998 VIXL_ASSERT(xd.Is64Bits() && xn.Is64Bits() && xm.Is64Bits());
1006 VIXL_ASSERT(rd.GetSizeInBits() == rn.GetSizeInBits());
1007 VIXL_ASSERT(rd.GetSizeInBits() == rm.GetSizeInBits());
1023 VIXL_ASSERT(xd.Is64Bits());
1050 VIXL_ASSERT(CPUHas(CPUFeatures::kPAuth)); \
1051 VIXL_ASSERT(xd.Is64Bits() && xn.Is64Bits()); \
1056 VIXL_ASSERT(CPUHas(CPUFeatures::kPAuth)); \
1057 VIXL_ASSERT(xd.Is64Bits()); \
1062 VIXL_ASSERT(CPUHas(CPUFeatures::kPAuth)); \
1063 VIXL_ASSERT(xd.Is64Bits() && xn.Is64Bits()); \
1068 VIXL_ASSERT(CPUHas(CPUFeatures::kPAuth)); \
1069 VIXL_ASSERT(xd.Is64Bits()); \
1079 VIXL_ASSERT(CPUHas(CPUFeatures::kPAuth, CPUFeatures::kPAuthGeneric));
1080 VIXL_ASSERT(xd.Is64Bits() && xn.Is64Bits() && xm.Is64Bits());
1085 VIXL_ASSERT(CPUHas(CPUFeatures::kPAuth));
1086 VIXL_ASSERT(xd.Is64Bits());
1091 VIXL_ASSERT(CPUHas(CPUFeatures::kPAuth));
1092 VIXL_ASSERT(xd.Is64Bits());
1114 VIXL_ASSERT(xt.Is64Bits() && xt2.Is64Bits());
1123 VIXL_ASSERT(CPUHas(rt, rt2));
1126 VIXL_ASSERT(((op & LoadStorePairLBit) == 0) || !rt.Is(rt2));
1127 VIXL_ASSERT(AreSameSizeAndType(rt, rt2));
1128 VIXL_ASSERT(IsImmLSPair(addr.GetOffset(), CalcLSPairDataSize(op)));
1141 VIXL_ASSERT(addr.IsImmediatePostIndex());
1149 VIXL_ASSERT(((emitop & LoadStorePairMask) != LDPSW_x) || rt.IsX());
1173 VIXL_ASSERT(CPUHas(rt, rt2));
1175 VIXL_ASSERT(!rt.Is(rt2));
1176 VIXL_ASSERT(AreSameSizeAndType(rt, rt2));
1177 VIXL_ASSERT(addr.IsImmediateOffset());
1181 VIXL_ASSERT(IsImmLSPair(addr.GetOffset(), size));
1192 VIXL_ASSERT(option != RequireUnscaledOffset);
1193 VIXL_ASSERT(option != PreferUnscaledOffset);
1201 VIXL_ASSERT(option != RequireUnscaledOffset);
1202 VIXL_ASSERT(option != PreferUnscaledOffset);
1210 VIXL_ASSERT(option != RequireUnscaledOffset);
1211 VIXL_ASSERT(option != PreferUnscaledOffset);
1219 VIXL_ASSERT(option != RequireUnscaledOffset);
1220 VIXL_ASSERT(option != PreferUnscaledOffset);
1228 VIXL_ASSERT(option != RequireUnscaledOffset);
1229 VIXL_ASSERT(option != PreferUnscaledOffset);
1237 VIXL_ASSERT(option != RequireUnscaledOffset);
1238 VIXL_ASSERT(option != PreferUnscaledOffset);
1246 VIXL_ASSERT(option != RequireUnscaledOffset);
1247 VIXL_ASSERT(option != PreferUnscaledOffset);
1255 VIXL_ASSERT(option != RequireUnscaledOffset);
1256 VIXL_ASSERT(option != PreferUnscaledOffset);
1264 VIXL_ASSERT(xt.Is64Bits());
1265 VIXL_ASSERT(option != RequireUnscaledOffset);
1266 VIXL_ASSERT(option != PreferUnscaledOffset);
1274 VIXL_ASSERT(option != RequireScaledOffset);
1275 VIXL_ASSERT(option != PreferScaledOffset);
1283 VIXL_ASSERT(option != RequireScaledOffset);
1284 VIXL_ASSERT(option != PreferScaledOffset);
1292 VIXL_ASSERT(option != RequireScaledOffset);
1293 VIXL_ASSERT(option != PreferScaledOffset);
1301 VIXL_ASSERT(option != RequireScaledOffset);
1302 VIXL_ASSERT(option != PreferScaledOffset);
1310 VIXL_ASSERT(option != RequireScaledOffset);
1311 VIXL_ASSERT(option != PreferScaledOffset);
1319 VIXL_ASSERT(option != RequireScaledOffset);
1320 VIXL_ASSERT(option != PreferScaledOffset);
1328 VIXL_ASSERT(option != RequireScaledOffset);
1329 VIXL_ASSERT(option != PreferScaledOffset);
1337 VIXL_ASSERT(option != RequireScaledOffset);
1338 VIXL_ASSERT(option != PreferScaledOffset);
1346 VIXL_ASSERT(xt.Is64Bits());
1347 VIXL_ASSERT(option != RequireScaledOffset);
1348 VIXL_ASSERT(option != PreferScaledOffset);
1354 VIXL_ASSERT(CPUHas(CPUFeatures::kPAuth));
1360 VIXL_ASSERT(CPUHas(CPUFeatures::kPAuth));
1366 VIXL_ASSERT(xt.Is64Bits());
1367 VIXL_ASSERT(literal->GetSize() == kWRegSizeInBytes);
1373 VIXL_ASSERT(CPUHas(rt));
1374 VIXL_ASSERT(literal->GetSize() == static_cast<size_t>(rt.GetSizeInBytes()));
1385 VIXL_ASSERT(CPUHas(rt));
1397 VIXL_ASSERT(IsNamedPrefetchOperation(op));
1406 VIXL_ASSERT(dst.IsImmediateOffset() && (dst.GetOffset() == 0));
1414 VIXL_ASSERT(dst.IsImmediateOffset() && (dst.GetOffset() == 0));
1422 VIXL_ASSERT(dst.IsImmediateOffset() && (dst.GetOffset() == 0));
1429 VIXL_ASSERT(src.IsImmediateOffset() && (src.GetOffset() == 0));
1435 VIXL_ASSERT(src.IsImmediateOffset() && (src.GetOffset() == 0));
1441 VIXL_ASSERT(src.IsImmediateOffset() && (src.GetOffset() == 0));
1451 VIXL_ASSERT(rt.GetSizeInBits() == rt2.GetSizeInBits());
1452 VIXL_ASSERT(dst.IsImmediateOffset() && (dst.GetOffset() == 0));
1461 VIXL_ASSERT(rt.GetSizeInBits() == rt2.GetSizeInBits());
1462 VIXL_ASSERT(src.IsImmediateOffset() && (src.GetOffset() == 0));
1471 VIXL_ASSERT(dst.IsImmediateOffset() && (dst.GetOffset() == 0));
1479 VIXL_ASSERT(dst.IsImmediateOffset() && (dst.GetOffset() == 0));
1487 VIXL_ASSERT(dst.IsImmediateOffset() && (dst.GetOffset() == 0));
1494 VIXL_ASSERT(src.IsImmediateOffset() && (src.GetOffset() == 0));
1500 VIXL_ASSERT(src.IsImmediateOffset() && (src.GetOffset() == 0));
1506 VIXL_ASSERT(src.IsImmediateOffset() && (src.GetOffset() == 0));
1516 VIXL_ASSERT(rt.GetSizeInBits() == rt2.GetSizeInBits());
1517 VIXL_ASSERT(dst.IsImmediateOffset() && (dst.GetOffset() == 0));
1526 VIXL_ASSERT(rt.GetSizeInBits() == rt2.GetSizeInBits());
1527 VIXL_ASSERT(src.IsImmediateOffset() && (src.GetOffset() == 0));
1534 VIXL_ASSERT(dst.IsImmediateOffset() && (dst.GetOffset() == 0));
1539 VIXL_ASSERT(CPUHas(CPUFeatures::kRCpc, CPUFeatures::kRCpcImm));
1540 VIXL_ASSERT(dst.IsImmediateOffset() && IsImmLSUnscaled(dst.GetOffset()));
1549 VIXL_ASSERT(dst.IsImmediateOffset() && (dst.GetOffset() == 0));
1554 VIXL_ASSERT(CPUHas(CPUFeatures::kRCpc, CPUFeatures::kRCpcImm));
1555 VIXL_ASSERT(dst.IsImmediateOffset() && IsImmLSUnscaled(dst.GetOffset()));
1564 VIXL_ASSERT(dst.IsImmediateOffset() && (dst.GetOffset() == 0));
1570 VIXL_ASSERT(CPUHas(CPUFeatures::kRCpc, CPUFeatures::kRCpcImm));
1571 VIXL_ASSERT(dst.IsImmediateOffset() && IsImmLSUnscaled(dst.GetOffset()));
1581 VIXL_ASSERT(src.IsImmediateOffset() && (src.GetOffset() == 0));
1587 VIXL_ASSERT(src.IsImmediateOffset() && (src.GetOffset() == 0));
1593 VIXL_ASSERT(src.IsImmediateOffset() && (src.GetOffset() == 0));
1600 VIXL_ASSERT(CPUHas(CPUFeatures::kLORegions));
1601 VIXL_ASSERT(dst.IsImmediateOffset() && (dst.GetOffset() == 0));
1607 VIXL_ASSERT(CPUHas(CPUFeatures::kLORegions));
1608 VIXL_ASSERT(dst.IsImmediateOffset() && (dst.GetOffset() == 0));
1614 VIXL_ASSERT(CPUHas(CPUFeatures::kLORegions));
1615 VIXL_ASSERT(dst.IsImmediateOffset() && (dst.GetOffset() == 0));
1622 VIXL_ASSERT(CPUHas(CPUFeatures::kLORegions));
1623 VIXL_ASSERT(src.IsImmediateOffset() && (src.GetOffset() == 0));
1629 VIXL_ASSERT(CPUHas(CPUFeatures::kLORegions));
1630 VIXL_ASSERT(src.IsImmediateOffset() && (src.GetOffset() == 0));
1636 VIXL_ASSERT(CPUHas(CPUFeatures::kLORegions));
1637 VIXL_ASSERT(src.IsImmediateOffset() && (src.GetOffset() == 0));
1655 VIXL_ASSERT(CPUHas(CPUFeatures::kAtomics)); \
1656 VIXL_ASSERT(src.IsImmediateOffset() && (src.GetOffset() == 0)); \
1657 VIXL_ASSERT(AreSameFormat(rs, rt)); \
1680 VIXL_ASSERT(CPUHas(CPUFeatures::kAtomics)); \
1681 VIXL_ASSERT(src.IsImmediateOffset() && (src.GetOffset() == 0)); \
1702 VIXL_ASSERT(CPUHas(CPUFeatures::kAtomics)); \
1704 VIXL_ASSERT(src.IsImmediateOffset() && (src.GetOffset() == 0)); \
1705 VIXL_ASSERT(AreEven(rs, rt)); \
1706 VIXL_ASSERT(AreConsecutive(rs, rs1)); \
1707 VIXL_ASSERT(AreConsecutive(rt, rt1)); \
1708 VIXL_ASSERT(AreSameFormat(rs, rs1, rt, rt1)); \
1752 VIXL_ASSERT(CPUHas(CPUFeatures::kAtomics)); \
1753 VIXL_ASSERT(src.IsImmediateOffset() && (src.GetOffset() == 0)); \
1759 VIXL_ASSERT(CPUHas(CPUFeatures::kAtomics)); \
1772 VIXL_ASSERT(CPUHas(CPUFeatures::kAtomics)); \
1773 VIXL_ASSERT(src.IsImmediateOffset() && (src.GetOffset() == 0)); \
1786 VIXL_ASSERT(CPUHas(CPUFeatures::kRCpc));
1787 VIXL_ASSERT(src.IsImmediateOffset() && (src.GetOffset() == 0));
1793 VIXL_ASSERT(CPUHas(CPUFeatures::kRCpc, CPUFeatures::kRCpcImm));
1794 VIXL_ASSERT(src.IsImmediateOffset() && IsImmLSUnscaled(src.GetOffset()));
1802 VIXL_ASSERT(CPUHas(CPUFeatures::kRCpc, CPUFeatures::kRCpcImm));
1803 VIXL_ASSERT(src.IsImmediateOffset() && IsImmLSUnscaled(src.GetOffset()));
1812 VIXL_ASSERT(CPUHas(CPUFeatures::kRCpc));
1813 VIXL_ASSERT(src.IsImmediateOffset() && (src.GetOffset() == 0));
1819 VIXL_ASSERT(CPUHas(CPUFeatures::kRCpc, CPUFeatures::kRCpcImm));
1820 VIXL_ASSERT(src.IsImmediateOffset() && IsImmLSUnscaled(src.GetOffset()));
1828 VIXL_ASSERT(CPUHas(CPUFeatures::kRCpc, CPUFeatures::kRCpcImm));
1829 VIXL_ASSERT(src.IsImmediateOffset() && IsImmLSUnscaled(src.GetOffset()));
1838 VIXL_ASSERT(CPUHas(CPUFeatures::kRCpc));
1839 VIXL_ASSERT(src.IsImmediateOffset() && (src.GetOffset() == 0));
1845 VIXL_ASSERT(CPUHas(CPUFeatures::kRCpc, CPUFeatures::kRCpcImm));
1846 VIXL_ASSERT(src.IsImmediateOffset() && IsImmLSUnscaled(src.GetOffset()));
1855 VIXL_ASSERT(CPUHas(CPUFeatures::kRCpc, CPUFeatures::kRCpcImm));
1856 VIXL_ASSERT(rt.Is64Bits());
1857 VIXL_ASSERT(src.IsImmediateOffset() && IsImmLSUnscaled(src.GetOffset()));
1867 VIXL_ASSERT(option != RequireUnscaledOffset);
1868 VIXL_ASSERT(option != PreferUnscaledOffset);
1876 VIXL_ASSERT(IsNamedPrefetchOperation(op));
1884 VIXL_ASSERT(option != RequireScaledOffset);
1885 VIXL_ASSERT(option != PreferScaledOffset);
1893 VIXL_ASSERT(IsNamedPrefetchOperation(op));
1904 VIXL_ASSERT(IsNamedPrefetchOperation(op));
1910 VIXL_ASSERT(xt.Is64Bits());
1916 VIXL_ASSERT(xt.Is64Bits());
1922 if (op == CVAP) VIXL_ASSERT(CPUHas(CPUFeatures::kDCPoP));
1923 if (op == CVADP) VIXL_ASSERT(CPUHas(CPUFeatures::kDCCVADP));
1929 VIXL_ASSERT(op == IVAU);
1938 VIXL_ASSERT(IsUint7(imm7));
1949 VIXL_ASSERT(CPUHas(CPUFeatures::kMTE));
1950 VIXL_ASSERT(IsMultiple(offset, kMTETagGranuleInBytes));
1960 VIXL_ASSERT(CPUHas(CPUFeatures::kMTE));
1968 VIXL_ASSERT(CPUHas(CPUFeatures::kMTE));
1974 VIXL_ASSERT(CPUHas(CPUFeatures::kMTE));
1975 VIXL_ASSERT(addr.IsImmediateOffset());
1977 VIXL_ASSERT(IsMultiple(offset, kMTETagGranuleInBytes));
1987 VIXL_ASSERT(IsMultiple(offset, kMTETagGranuleInBytes));
1995 VIXL_ASSERT(addr.IsImmediatePostIndex());
2004 VIXL_ASSERT(CPUHas(CPUFeatures::kMTE));
2009 VIXL_ASSERT(CPUHas(CPUFeatures::kMTE));
2016 VIXL_ASSERT(CPUHas(CPUFeatures::kMTE));
2018 VIXL_ASSERT(IsMultiple(offset, kMTETagGranuleInBytes));
2026 VIXL_ASSERT(addr.IsImmediatePostIndex());
2036 VIXL_ASSERT(CPUHas(CPUFeatures::kMTE));
2041 VIXL_ASSERT(CPUHas(CPUFeatures::kMTE));
2049 VIXL_ASSERT(CPUHas(CPUFeatures::kMTE));
2050 VIXL_ASSERT(IsMultiple(offset, kMTETagGranuleInBytes));
2060 VIXL_ASSERT(CPUHas(CPUFeatures::kMTE));
2068 VIXL_ASSERT(CPUHas(CPUFeatures::kMTE));
2076 VIXL_ASSERT(CPUHas(CPUFeatures::kMOPS));
2077 VIXL_ASSERT(!AreAliased(rd, rn, rs));
2078 VIXL_ASSERT(!rd.IsZero() && !rn.IsZero() && !rs.IsZero());
2086 VIXL_ASSERT(CPUHas(CPUFeatures::kMOPS));
2087 VIXL_ASSERT(!AreAliased(rd, rn, rs));
2088 VIXL_ASSERT(!rd.IsZero() && !rn.IsZero() && !rs.IsZero());
2096 VIXL_ASSERT(CPUHas(CPUFeatures::kMOPS));
2097 VIXL_ASSERT(!AreAliased(rd, rn, rs));
2098 VIXL_ASSERT(!rd.IsZero() && !rn.IsZero() && !rs.IsZero());
2106 VIXL_ASSERT(CPUHas(CPUFeatures::kMOPS));
2107 VIXL_ASSERT(!AreAliased(rd, rn, rs));
2108 VIXL_ASSERT(!rd.IsZero() && !rn.IsZero() && !rs.IsZero());
2116 VIXL_ASSERT(CPUHas(CPUFeatures::kMOPS));
2117 VIXL_ASSERT(!AreAliased(rd, rn, rs));
2118 VIXL_ASSERT(!rd.IsZero() && !rn.IsZero() && !rs.IsZero());
2126 VIXL_ASSERT(CPUHas(CPUFeatures::kMOPS));
2127 VIXL_ASSERT(!AreAliased(rd, rn, rs));
2128 VIXL_ASSERT(!rd.IsZero() && !rn.IsZero() && !rs.IsZero());
2136 VIXL_ASSERT(CPUHas(CPUFeatures::kMOPS));
2137 VIXL_ASSERT(!AreAliased(rd, rn, rs));
2138 VIXL_ASSERT(!rd.IsZero() && !rn.IsZero() && !rs.IsZero());
2146 VIXL_ASSERT(CPUHas(CPUFeatures::kMOPS));
2147 VIXL_ASSERT(!AreAliased(rd, rn, rs));
2148 VIXL_ASSERT(!rd.IsZero() && !rn.IsZero() && !rs.IsZero());
2156 VIXL_ASSERT(CPUHas(CPUFeatures::kMOPS));
2157 VIXL_ASSERT(!AreAliased(rd, rn, rs));
2158 VIXL_ASSERT(!rd.IsZero() && !rn.IsZero() && !rs.IsZero());
2166 VIXL_ASSERT(CPUHas(CPUFeatures::kMOPS));
2167 VIXL_ASSERT(!AreAliased(rd, rn, rs));
2168 VIXL_ASSERT(!rd.IsZero() && !rn.IsZero() && !rs.IsZero());
2176 VIXL_ASSERT(CPUHas(CPUFeatures::kMOPS));
2177 VIXL_ASSERT(!AreAliased(rd, rn, rs));
2178 VIXL_ASSERT(!rd.IsZero() && !rn.IsZero() && !rs.IsZero());
2186 VIXL_ASSERT(CPUHas(CPUFeatures::kMOPS));
2187 VIXL_ASSERT(!AreAliased(rd, rn, rs));
2188 VIXL_ASSERT(!rd.IsZero() && !rn.IsZero() && !rs.IsZero());
2196 VIXL_ASSERT(CPUHas(CPUFeatures::kMOPS));
2197 VIXL_ASSERT(!AreAliased(rd, rn, rs));
2198 VIXL_ASSERT(!rd.IsZero() && !rn.IsZero() && !rs.IsZero());
2206 VIXL_ASSERT(CPUHas(CPUFeatures::kMOPS));
2207 VIXL_ASSERT(!AreAliased(rd, rn, rs));
2208 VIXL_ASSERT(!rd.IsZero() && !rn.IsZero() && !rs.IsZero());
2216 VIXL_ASSERT(CPUHas(CPUFeatures::kMOPS));
2217 VIXL_ASSERT(!AreAliased(rd, rn, rs));
2218 VIXL_ASSERT(!rd.IsZero() && !rn.IsZero() && !rs.IsZero());
2226 VIXL_ASSERT(CPUHas(CPUFeatures::kMOPS));
2227 VIXL_ASSERT(!AreAliased(rd, rn, rs));
2228 VIXL_ASSERT(!rd.IsZero() && !rn.IsZero() && !rs.IsZero());
2236 VIXL_ASSERT(CPUHas(CPUFeatures::kMOPS));
2237 VIXL_ASSERT(!AreAliased(rd, rn, rs));
2238 VIXL_ASSERT(!rd.IsZero() && !rn.IsZero() && !rs.IsZero());
2246 VIXL_ASSERT(CPUHas(CPUFeatures::kMOPS));
2247 VIXL_ASSERT(!AreAliased(rd, rn, rs));
2248 VIXL_ASSERT(!rd.IsZero() && !rn.IsZero() && !rs.IsZero());
2256 VIXL_ASSERT(CPUHas(CPUFeatures::kMOPS));
2257 VIXL_ASSERT(!AreAliased(rd, rn, rs));
2258 VIXL_ASSERT(!rd.IsZero() && !rn.IsZero() && !rs.IsZero());
2266 VIXL_ASSERT(CPUHas(CPUFeatures::kMOPS));
2267 VIXL_ASSERT(!AreAliased(rd, rn, rs));
2268 VIXL_ASSERT(!rd.IsZero() && !rn.IsZero() && !rs.IsZero());
2276 VIXL_ASSERT(CPUHas(CPUFeatures::kMOPS));
2277 VIXL_ASSERT(!AreAliased(rd, rn, rs));
2278 VIXL_ASSERT(!rd.IsZero() && !rn.IsZero() && !rs.IsZero());
2286 VIXL_ASSERT(CPUHas(CPUFeatures::kMOPS));
2287 VIXL_ASSERT(!AreAliased(rd, rn, rs));
2288 VIXL_ASSERT(!rd.IsZero() && !rn.IsZero() && !rs.IsZero());
2296 VIXL_ASSERT(CPUHas(CPUFeatures::kMOPS));
2297 VIXL_ASSERT(!AreAliased(rd, rn, rs));
2298 VIXL_ASSERT(!rd.IsZero() && !rn.IsZero() && !rs.IsZero());
2306 VIXL_ASSERT(CPUHas(CPUFeatures::kMOPS));
2307 VIXL_ASSERT(!AreAliased(rd, rn, rs));
2308 VIXL_ASSERT(!rd.IsZero() && !rn.IsZero() && !rs.IsZero());
2316 VIXL_ASSERT(CPUHas(CPUFeatures::kMOPS));
2317 VIXL_ASSERT(!AreAliased(rd, rn, rs));
2318 VIXL_ASSERT(!rd.IsZero() && !rn.IsZero());
2326 VIXL_ASSERT(CPUHas(CPUFeatures::kMOPS));
2327 VIXL_ASSERT(!AreAliased(rd, rn, rs));
2328 VIXL_ASSERT(!rd.IsZero() && !rn.IsZero());
2336 VIXL_ASSERT(CPUHas(CPUFeatures::kMOPS));
2337 VIXL_ASSERT(!AreAliased(rd, rn, rs));
2338 VIXL_ASSERT(!rd.IsZero() && !rn.IsZero());
2346 VIXL_ASSERT(CPUHas(CPUFeatures::kMOPS));
2347 VIXL_ASSERT(!AreAliased(rd, rn, rs));
2348 VIXL_ASSERT(!rd.IsZero() && !rn.IsZero());
2356 VIXL_ASSERT(CPUHas(CPUFeatures::kMOPS));
2357 VIXL_ASSERT(!AreAliased(rd, rn, rs));
2358 VIXL_ASSERT(!rd.IsZero() && !rn.IsZero());
2366 VIXL_ASSERT(CPUHas(CPUFeatures::kMOPS));
2367 VIXL_ASSERT(!AreAliased(rd, rn, rs));
2368 VIXL_ASSERT(!rd.IsZero() && !rn.IsZero());
2376 VIXL_ASSERT(CPUHas(CPUFeatures::kMOPS));
2377 VIXL_ASSERT(!AreAliased(rd, rn, rs));
2378 VIXL_ASSERT(!rd.IsZero() && !rn.IsZero());
2386 VIXL_ASSERT(CPUHas(CPUFeatures::kMOPS));
2387 VIXL_ASSERT(!AreAliased(rd, rn, rs));
2388 VIXL_ASSERT(!rd.IsZero() && !rn.IsZero());
2396 VIXL_ASSERT(CPUHas(CPUFeatures::kMOPS));
2397 VIXL_ASSERT(!AreAliased(rd, rn, rs));
2398 VIXL_ASSERT(!rd.IsZero() && !rn.IsZero());
2406 VIXL_ASSERT(CPUHas(CPUFeatures::kMOPS));
2407 VIXL_ASSERT(!AreAliased(rd, rn, rs));
2408 VIXL_ASSERT(!rd.IsZero() && !rn.IsZero());
2416 VIXL_ASSERT(CPUHas(CPUFeatures::kMOPS));
2417 VIXL_ASSERT(!AreAliased(rd, rn, rs));
2418 VIXL_ASSERT(!rd.IsZero() && !rn.IsZero());
2426 VIXL_ASSERT(CPUHas(CPUFeatures::kMOPS));
2427 VIXL_ASSERT(!AreAliased(rd, rn, rs));
2428 VIXL_ASSERT(!rd.IsZero() && !rn.IsZero());
2434 VIXL_ASSERT(CPUHas(CPUFeatures::kCSSC));
2435 VIXL_ASSERT(rd.IsSameSizeAndType(rn));
2441 VIXL_ASSERT(CPUHas(CPUFeatures::kCSSC));
2442 VIXL_ASSERT(rd.IsSameSizeAndType(rn));
2448 VIXL_ASSERT(CPUHas(CPUFeatures::kCSSC));
2449 VIXL_ASSERT(rd.IsSameSizeAndType(rn));
2464 VIXL_ASSERT(rd.IsSameSizeAndType(rn)); \
2471 VIXL_ASSERT(op.IsPlainRegister()); \
2472 VIXL_ASSERT(op.GetRegister().IsSameSizeAndType(rd)); \
2497 VIXL_ASSERT(addr.IsImmediateOffset() && (addr.GetOffset() == 0));
2509 VIXL_ASSERT(vt.HasSize() && vt.HasLaneSize());
2511 VIXL_ASSERT(addr.GetOffset() == 0);
2563 VIXL_ASSERT(!addr.GetRegisterOffset().Is(NoReg) ||
2575 VIXL_ASSERT(vt.IsVector() || vt.Is1D());
2589 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
2598 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
2599 VIXL_ASSERT(AreSameFormat(vt, vt2));
2600 VIXL_ASSERT(AreConsecutive(vt, vt2));
2610 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
2611 VIXL_ASSERT(AreSameFormat(vt, vt2, vt3));
2612 VIXL_ASSERT(AreConsecutive(vt, vt2, vt3));
2623 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
2624 VIXL_ASSERT(AreSameFormat(vt, vt2, vt3, vt4));
2625 VIXL_ASSERT(AreConsecutive(vt, vt2, vt3, vt4));
2634 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
2635 VIXL_ASSERT(AreSameFormat(vt, vt2));
2636 VIXL_ASSERT(AreConsecutive(vt, vt2));
2646 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
2647 VIXL_ASSERT(AreSameFormat(vt, vt2));
2648 VIXL_ASSERT(AreConsecutive(vt, vt2));
2657 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
2658 VIXL_ASSERT(AreSameFormat(vt, vt2));
2659 VIXL_ASSERT(AreConsecutive(vt, vt2));
2669 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
2670 VIXL_ASSERT(AreSameFormat(vt, vt2, vt3));
2671 VIXL_ASSERT(AreConsecutive(vt, vt2, vt3));
2682 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
2683 VIXL_ASSERT(AreSameFormat(vt, vt2, vt3));
2684 VIXL_ASSERT(AreConsecutive(vt, vt2, vt3));
2694 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
2695 VIXL_ASSERT(AreSameFormat(vt, vt2, vt3));
2696 VIXL_ASSERT(AreConsecutive(vt, vt2, vt3));
2707 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
2708 VIXL_ASSERT(AreSameFormat(vt, vt2, vt3, vt4));
2709 VIXL_ASSERT(AreConsecutive(vt, vt2, vt3, vt4));
2721 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
2722 VIXL_ASSERT(AreSameFormat(vt, vt2, vt3, vt4));
2723 VIXL_ASSERT(AreConsecutive(vt, vt2, vt3, vt4));
2734 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
2735 VIXL_ASSERT(AreSameFormat(vt, vt2, vt3, vt4));
2736 VIXL_ASSERT(AreConsecutive(vt, vt2, vt3, vt4));
2742 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
2751 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
2752 VIXL_ASSERT(AreSameFormat(vt, vt2));
2753 VIXL_ASSERT(AreConsecutive(vt, vt2));
2763 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
2764 VIXL_ASSERT(AreSameFormat(vt, vt2, vt3));
2765 VIXL_ASSERT(AreConsecutive(vt, vt2, vt3));
2776 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
2777 VIXL_ASSERT(AreSameFormat(vt, vt2, vt3, vt4));
2778 VIXL_ASSERT(AreConsecutive(vt, vt2, vt3, vt4));
2787 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
2788 VIXL_ASSERT(AreSameFormat(vt, vt2));
2789 VIXL_ASSERT(AreConsecutive(vt, vt2));
2799 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
2800 VIXL_ASSERT(AreSameFormat(vt, vt2));
2801 VIXL_ASSERT(AreConsecutive(vt, vt2));
2811 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
2812 VIXL_ASSERT(AreSameFormat(vt, vt2, vt3));
2813 VIXL_ASSERT(AreConsecutive(vt, vt2, vt3));
2824 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
2825 VIXL_ASSERT(AreSameFormat(vt, vt2, vt3));
2826 VIXL_ASSERT(AreConsecutive(vt, vt2, vt3));
2837 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
2838 VIXL_ASSERT(AreSameFormat(vt, vt2, vt3, vt4));
2839 VIXL_ASSERT(AreConsecutive(vt, vt2, vt3, vt4));
2851 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
2852 VIXL_ASSERT(AreSameFormat(vt, vt2, vt3, vt4));
2853 VIXL_ASSERT(AreConsecutive(vt, vt2, vt3, vt4));
2867 VIXL_ASSERT(lane_size > 0);
2868 VIXL_ASSERT(lane < (kQRegSizeInBytes / lane_size));
2891 VIXL_ASSERT(lane_size == 8);
2900 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
2906 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
2912 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
2921 VIXL_ASSERT(AreSameFormat(vn, vm));
2922 VIXL_ASSERT((vn.Is1H() && vd.Is1S()) || (vn.Is1S() && vd.Is1D()) ||
2941 VIXL_ASSERT(AreSameFormat(vd, vn));
2942 VIXL_ASSERT((vm.Is8B() && vd.Is8H()) || (vm.Is4H() && vd.Is4S()) ||
2953 VIXL_ASSERT(AreSameFormat(vm, vn));
2954 VIXL_ASSERT((vd.Is8B() && vn.Is8H()) || (vd.Is4H() && vn.Is4S()) ||
3006 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON)); \
3007 VIXL_ASSERT(AS); \
3029 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON)); \
3030 VIXL_ASSERT(AS); \
3039 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
3040 VIXL_ASSERT(vm.IsD());
3048 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
3049 VIXL_ASSERT(vm.IsQ());
3057 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
3058 VIXL_ASSERT(vm.IsD());
3066 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
3067 VIXL_ASSERT(vm.IsQ());
3075 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
3076 VIXL_ASSERT(vm.IsD());
3084 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
3085 VIXL_ASSERT(vm.IsQ());
3093 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
3094 VIXL_ASSERT(vm.IsD());
3102 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
3103 VIXL_ASSERT(vm.IsQ());
3120 VIXL_ASSERT(CPUHas(CPUFeatures::kPAuth));
3125 VIXL_ASSERT(CPUHas(CPUFeatures::kPAuth));
3130 VIXL_ASSERT(CPUHas(CPUFeatures::kPAuth));
3135 VIXL_ASSERT(CPUHas(CPUFeatures::kPAuth));
3140 VIXL_ASSERT(CPUHas(CPUFeatures::kPAuth));
3145 VIXL_ASSERT(CPUHas(CPUFeatures::kPAuth));
3150 VIXL_ASSERT(CPUHas(CPUFeatures::kPAuth));
3155 VIXL_ASSERT(CPUHas(CPUFeatures::kPAuth));
3160 VIXL_ASSERT(CPUHas(CPUFeatures::kPAuth));
3165 VIXL_ASSERT(CPUHas(CPUFeatures::kPAuth));
3170 VIXL_ASSERT(CPUHas(CPUFeatures::kPAuth));
3175 VIXL_ASSERT(CPUHas(CPUFeatures::kPAuth));
3180 VIXL_ASSERT(CPUHas(CPUFeatures::kPAuth));
3185 VIXL_ASSERT((id != EmitPACIASP) && (id != EmitPACIBSP)); // Not modes of Bti.
3186 VIXL_ASSERT(id != EmitBTI_none); // Always generate an instruction.
3187 VIXL_ASSERT(CPUHas(CPUFeatures::kBTI));
3197 VIXL_ASSERT(xt.Is64Bits());
3198 VIXL_ASSERT(CPUHas(sysreg));
3204 VIXL_ASSERT(xt.Is64Bits());
3205 VIXL_ASSERT(CPUHas(sysreg));
3211 VIXL_ASSERT(CPUHas(CPUFeatures::kFlagM));
3217 VIXL_ASSERT(CPUHas(CPUFeatures::kAXFlag));
3223 VIXL_ASSERT(CPUHas(CPUFeatures::kAXFlag));
3246 VIXL_ASSERT(CPUHas(CPUFeatures::kRAS));
3253 VIXL_ASSERT(CPUHas(CPUFeatures::kFP));
3255 VIXL_ASSERT(vd.Is1D());
3258 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
3259 VIXL_ASSERT(vd.Is2D());
3269 VIXL_ASSERT(CPUHas(CPUFeatures::kFP));
3271 VIXL_ASSERT(vd.Is1S());
3274 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
3275 VIXL_ASSERT(vd.Is2S() || vd.Is4S());
3285 VIXL_ASSERT(CPUHas(CPUFeatures::kFP));
3287 VIXL_ASSERT(CPUHas(CPUFeatures::kFPHalf));
3288 VIXL_ASSERT(vd.Is1H());
3291 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON, CPUFeatures::kNEONHalf));
3292 VIXL_ASSERT(vd.Is4H() || vd.Is8H());
3302 VIXL_ASSERT(CPUHas(CPUFeatures::kFP));
3303 VIXL_ASSERT(vn.Is1H() || vn.Is1S() || vn.Is1D());
3304 VIXL_ASSERT((rd.GetSizeInBits() == vn.GetSizeInBits()) || vn.Is1H());
3308 VIXL_ASSERT(CPUHas(CPUFeatures::kFPHalf));
3322 VIXL_ASSERT(CPUHas(CPUFeatures::kFP) ||
3324 VIXL_ASSERT(vd.Is1H() || vd.Is1S() || vd.Is1D());
3325 VIXL_ASSERT((vd.GetSizeInBits() == rn.GetSizeInBits()) || vd.Is1H());
3329 VIXL_ASSERT(CPUHas(CPUFeatures::kFPHalf));
3343 VIXL_ASSERT(CPUHas(CPUFeatures::kFP));
3345 VIXL_ASSERT(CPUHas(CPUFeatures::kFPHalf));
3347 VIXL_ASSERT(vd.Is1H() || vd.Is1S() || vd.Is1D());
3348 VIXL_ASSERT(vd.IsSameFormat(vn));
3354 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON, CPUFeatures::kFP));
3355 VIXL_ASSERT((index == 1) && vd.Is1D() && rn.IsX());
3362 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON, CPUFeatures::kFP));
3363 VIXL_ASSERT((index == 1) && vn.Is1D() && rd.IsX());
3373 VIXL_ASSERT(CPUHas(CPUFeatures::kFP));
3376 VIXL_ASSERT(CPUHas(CPUFeatures::kFPHalf));
3381 VIXL_ASSERT(vd.Is1D());
3392 VIXL_ASSERT(CPUHas(CPUFeatures::kFP));
3395 VIXL_ASSERT(CPUHas(CPUFeatures::kFPHalf));
3400 VIXL_ASSERT(vd.Is1D());
3411 VIXL_ASSERT(CPUHas(CPUFeatures::kFP));
3414 VIXL_ASSERT(CPUHas(CPUFeatures::kFPHalf));
3419 VIXL_ASSERT(vd.Is1D());
3430 VIXL_ASSERT(CPUHas(CPUFeatures::kFP));
3433 VIXL_ASSERT(CPUHas(CPUFeatures::kFPHalf));
3438 VIXL_ASSERT(vd.Is1D());
3448 VIXL_ASSERT(CPUHas(CPUFeatures::kFP));
3449 VIXL_ASSERT(AreSameSizeAndType(vd, vn, vm));
3452 VIXL_ASSERT(CPUHas(CPUFeatures::kFPHalf));
3457 VIXL_ASSERT(vd.Is1D());
3471 VIXL_ASSERT(value == 0.0);
3472 VIXL_ASSERT(vn.Is1H() || vn.Is1S() || vn.Is1D());
3481 VIXL_ASSERT(vn.Is1H() || vn.Is1S() || vn.Is1D());
3482 VIXL_ASSERT(vn.IsSameSizeAndType(vm));
3489 VIXL_ASSERT(CPUHas(CPUFeatures::kFP));
3490 if (vn.Is1H()) VIXL_ASSERT(CPUHas(CPUFeatures::kFPHalf));
3496 VIXL_ASSERT(CPUHas(CPUFeatures::kFP));
3497 if (vn.Is1H()) VIXL_ASSERT(CPUHas(CPUFeatures::kFPHalf));
3503 VIXL_ASSERT(CPUHas(CPUFeatures::kFP));
3504 if (vn.Is1H()) VIXL_ASSERT(CPUHas(CPUFeatures::kFPHalf));
3510 VIXL_ASSERT(CPUHas(CPUFeatures::kFP));
3511 if (vn.Is1H()) VIXL_ASSERT(CPUHas(CPUFeatures::kFPHalf));
3521 VIXL_ASSERT(vn.Is1H() || vn.Is1S() || vn.Is1D());
3522 VIXL_ASSERT(vn.IsSameSizeAndType(vm));
3531 VIXL_ASSERT(CPUHas(CPUFeatures::kFP));
3532 if (vn.Is1H()) VIXL_ASSERT(CPUHas(CPUFeatures::kFPHalf));
3541 VIXL_ASSERT(CPUHas(CPUFeatures::kFP));
3542 if (vn.Is1H()) VIXL_ASSERT(CPUHas(CPUFeatures::kFPHalf));
3551 VIXL_ASSERT(CPUHas(CPUFeatures::kFP));
3552 if (vd.Is1H()) VIXL_ASSERT(CPUHas(CPUFeatures::kFPHalf));
3553 VIXL_ASSERT(vd.Is1H() || vd.Is1S() || vd.Is1D());
3554 VIXL_ASSERT(AreSameFormat(vd, vn, vm));
3560 VIXL_ASSERT(CPUHas(CPUFeatures::kFP));
3564 VIXL_ASSERT(vn.Is1S() || vn.Is1H());
3567 VIXL_ASSERT(vn.Is1D() || vn.Is1H());
3570 VIXL_ASSERT(vd.Is1H());
3571 VIXL_ASSERT(vn.Is1D() || vn.Is1S());
3579 VIXL_ASSERT(CPUHas(CPUFeatures::kFP, CPUFeatures::kNEON));
3580 VIXL_ASSERT((vd.Is4S() && vn.Is4H()) || (vd.Is2D() && vn.Is2S()));
3588 VIXL_ASSERT(CPUHas(CPUFeatures::kFP, CPUFeatures::kNEON));
3589 VIXL_ASSERT((vd.Is4S() && vn.Is8H()) || (vd.Is2D() && vn.Is4S()));
3597 VIXL_ASSERT(CPUHas(CPUFeatures::kFP, CPUFeatures::kNEON));
3598 VIXL_ASSERT((vn.Is4S() && vd.Is4H()) || (vn.Is2D() && vd.Is2S()));
3606 VIXL_ASSERT(CPUHas(CPUFeatures::kFP, CPUFeatures::kNEON));
3607 VIXL_ASSERT((vn.Is4S() && vd.Is8H()) || (vn.Is2D() && vd.Is4S()));
3615 VIXL_ASSERT(CPUHas(CPUFeatures::kFP, CPUFeatures::kNEON));
3618 VIXL_ASSERT(vd.Is1S() && vn.Is1D());
3621 VIXL_ASSERT(vd.Is2S() && vn.Is2D());
3628 VIXL_ASSERT(CPUHas(CPUFeatures::kFP, CPUFeatures::kNEON));
3629 VIXL_ASSERT(vd.Is4S() && vn.Is2D());
3635 VIXL_ASSERT(CPUHas(CPUFeatures::kFP, CPUFeatures::kJSCVT));
3636 VIXL_ASSERT(rd.IsW() && vn.Is1D());
3652 VIXL_ASSERT((vd.Is1S() && vn.Is1S()) || (vd.Is1D() && vn.Is1D()));
3662 VIXL_ASSERT(AreSameFormat(vd, vn));
3663 VIXL_ASSERT(vn.IsLaneSizeH());
3685 VIXL_ASSERT(CPUHas(CPUFeatures::kFP)); \
3686 if (vn.IsH()) VIXL_ASSERT(CPUHas(CPUFeatures::kFPHalf)); \
3690 VIXL_ASSERT(CPUHas(CPUFeatures::kFP, CPUFeatures::kNEON)); \
3692 VIXL_ASSERT(CPUHas(CPUFeatures::kNEONHalf)); \
3703 VIXL_ASSERT(CPUHas(CPUFeatures::kFP));
3704 if (vn.Is1H()) VIXL_ASSERT(CPUHas(CPUFeatures::kFPHalf));
3705 VIXL_ASSERT(vn.Is1H() || vn.Is1S() || vn.Is1D());
3706 VIXL_ASSERT((fbits >= 0) && (fbits <= rd.GetSizeInBits()));
3718 VIXL_ASSERT(CPUHas(CPUFeatures::kFP, CPUFeatures::kNEON));
3719 if (vn.IsLaneSizeH()) VIXL_ASSERT(CPUHas(CPUFeatures::kNEONHalf));
3720 VIXL_ASSERT(fbits >= 0);
3728 VIXL_ASSERT(vd.Is1D() || vd.Is1S() || vd.Is2D() || vd.Is2S() || vd.Is4S() ||
3736 VIXL_ASSERT(CPUHas(CPUFeatures::kFP));
3737 if (vn.Is1H()) VIXL_ASSERT(CPUHas(CPUFeatures::kFPHalf));
3738 VIXL_ASSERT(vn.Is1H() || vn.Is1S() || vn.Is1D());
3739 VIXL_ASSERT((fbits >= 0) && (fbits <= rd.GetSizeInBits()));
3751 VIXL_ASSERT(CPUHas(CPUFeatures::kFP, CPUFeatures::kNEON));
3752 if (vn.IsLaneSizeH()) VIXL_ASSERT(CPUHas(CPUFeatures::kNEONHalf));
3753 VIXL_ASSERT(fbits >= 0);
3761 VIXL_ASSERT(vd.Is1D() || vd.Is1S() || vd.Is2D() || vd.Is2S() || vd.Is4S() ||
3769 VIXL_ASSERT(CPUHas(CPUFeatures::kFP, CPUFeatures::kNEON));
3770 if (vn.IsLaneSizeH()) VIXL_ASSERT(CPUHas(CPUFeatures::kNEONHalf));
3771 VIXL_ASSERT(fbits >= 0);
3779 VIXL_ASSERT(vd.Is1D() || vd.Is1S() || vd.Is2D() || vd.Is2S() || vd.Is4S() ||
3787 VIXL_ASSERT(CPUHas(CPUFeatures::kFP, CPUFeatures::kNEON));
3788 if (vn.IsLaneSizeH()) VIXL_ASSERT(CPUHas(CPUFeatures::kNEONHalf));
3789 VIXL_ASSERT(fbits >= 0);
3797 VIXL_ASSERT(vd.Is1D() || vd.Is1S() || vd.Is2D() || vd.Is2S() || vd.Is4S() ||
3805 VIXL_ASSERT(CPUHas(CPUFeatures::kFP));
3806 if (vd.Is1H()) VIXL_ASSERT(CPUHas(CPUFeatures::kFPHalf));
3807 VIXL_ASSERT(vd.Is1H() || vd.Is1S() || vd.Is1D());
3808 VIXL_ASSERT(fbits >= 0);
3819 VIXL_ASSERT(CPUHas(CPUFeatures::kFP));
3820 if (vd.Is1H()) VIXL_ASSERT(CPUHas(CPUFeatures::kFPHalf));
3821 VIXL_ASSERT(vd.Is1H() || vd.Is1S() || vd.Is1D());
3822 VIXL_ASSERT(fbits >= 0);
3836 VIXL_ASSERT(AreSameFormat(vd, vn, vm));
3837 VIXL_ASSERT(vd.IsVector() || !vd.IsQ());
3855 VIXL_ASSERT(AreSameFormat(vd, vn, vm));
3864 VIXL_ASSERT(AreSameFormat(vd, vn, vm));
3865 VIXL_ASSERT(vd.GetLaneSizeInBytes() == kHRegSizeInBytes);
3889 VIXL_ASSERT(CPUHas(CPUFeatures::kFP)); \
3895 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON, CPUFeatures::kNEONHalf)); \
3897 VIXL_ASSERT(CPUHas(CPUFeatures::kFPHalf)); \
3902 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON)); \
3904 VIXL_ASSERT(vd.Is1S() || vd.Is1D()); \
3908 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON)); \
3909 VIXL_ASSERT(vd.Is4H() || vd.Is8H() || vd.Is2S() || vd.Is2D() || \
3912 VIXL_ASSERT(CPUHas(CPUFeatures::kNEONHalf)); \
3940 VIXL_ASSERT(CPUHas(CPUFeatures::kFP, CPUFeatures::kFrintToFixedSizedInt)); \
3943 VIXL_ASSERT(vd.Is1S() || vd.Is1D()); \
3946 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON)); \
3947 VIXL_ASSERT(vd.Is2S() || vd.Is2D() || vd.Is4S()); \
3958 VIXL_ASSERT(AreSameFormat(vd, vn));
3966 VIXL_ASSERT(AreSameFormat(vd, vn));
3975 VIXL_ASSERT(AreSameFormat(vd, vn));
3976 VIXL_ASSERT(value == 0);
3992 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
3993 VIXL_ASSERT(vd.IsVector() || vd.Is1D());
3999 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
4000 VIXL_ASSERT(vd.IsVector() || vd.Is1D());
4006 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
4007 VIXL_ASSERT(vd.IsVector() || vd.Is1D());
4013 VIXL_ASSERT(vd.IsVector() || vd.Is1D());
4014 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
4020 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
4021 VIXL_ASSERT(vd.IsVector() || vd.Is1D());
4028 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
4029 VIXL_ASSERT((vd.Is8H() && vn.Is8B() && shift == 8) ||
4038 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
4039 VIXL_ASSERT((vd.Is8H() && vn.Is16B() && shift == 8) ||
4050 VIXL_ASSERT(AreSameFormat(vd, vn));
4051 VIXL_ASSERT(value == 0.0);
4056 VIXL_ASSERT(vd.Is1S() || vd.Is1D());
4059 VIXL_ASSERT(vd.Is2S() || vd.Is2D() || vd.Is4S());
4070 VIXL_ASSERT(AreSameFormat(vd, vn));
4071 VIXL_ASSERT(value == 0.0);
4076 VIXL_ASSERT(vd.Is1H());
4079 VIXL_ASSERT(vd.Is4H() || vd.Is8H());
4090 VIXL_ASSERT(CPUHas(CPUFeatures::kFP, CPUFeatures::kNEON));
4092 VIXL_ASSERT(CPUHas(CPUFeatures::kNEONHalf));
4101 VIXL_ASSERT(CPUHas(CPUFeatures::kFP, CPUFeatures::kNEON));
4103 VIXL_ASSERT(CPUHas(CPUFeatures::kNEONHalf));
4112 VIXL_ASSERT(CPUHas(CPUFeatures::kFP, CPUFeatures::kNEON));
4114 VIXL_ASSERT(CPUHas(CPUFeatures::kNEONHalf));
4123 VIXL_ASSERT(CPUHas(CPUFeatures::kFP, CPUFeatures::kNEON));
4125 VIXL_ASSERT(CPUHas(CPUFeatures::kNEONHalf));
4134 VIXL_ASSERT(CPUHas(CPUFeatures::kFP, CPUFeatures::kNEON));
4136 VIXL_ASSERT(CPUHas(CPUFeatures::kNEONHalf));
4145 VIXL_ASSERT(CPUHas(CPUFeatures::kFP, CPUFeatures::kNEON));
4146 VIXL_ASSERT(vd.IsScalar());
4147 VIXL_ASSERT(AreSameFormat(vd, vn));
4150 VIXL_ASSERT(CPUHas(CPUFeatures::kNEONHalf));
4153 VIXL_ASSERT(vd.Is1S() || vd.Is1D());
4221 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON)); \
4222 VIXL_ASSERT(AS); \
4263 VIXL_ASSERT(CPUHas(CPUFeatures::kFP)); \
4268 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON, CPUFeatures::kNEONHalf)); \
4272 VIXL_ASSERT(vd.Is1H() || vd.Is1S() || vd.Is1D()); \
4274 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON)); \
4275 if (vd.Is1H()) VIXL_ASSERT(CPUHas(CPUFeatures::kNEONHalf)); \
4277 VIXL_ASSERT(CPUHas(CPUFeatures::kFPHalf)); \
4282 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON)); \
4283 VIXL_ASSERT(vd.IsVector()); \
4285 VIXL_ASSERT(CPUHas(CPUFeatures::kNEONHalf)); \
4289 VIXL_ASSERT(vd.Is2S() || vd.Is2D() || vd.Is4S()); \
4315 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON, \
4319 VIXL_ASSERT((vd.Is2S() && vn.Is2H() && vm.Is2H()) || \
4328 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
4329 VIXL_ASSERT((vd.Is1D() && vn.Is2D()));
4337 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON, CPUFeatures::kRDM));
4338 VIXL_ASSERT(AreSameFormat(vd, vn, vm));
4339 VIXL_ASSERT(vd.IsVector() || !vd.IsQ());
4356 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON, CPUFeatures::kRDM));
4357 VIXL_ASSERT(AreSameFormat(vd, vn, vm));
4358 VIXL_ASSERT(vd.IsVector() || !vd.IsQ());
4375 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON, CPUFeatures::kDotProduct));
4376 VIXL_ASSERT(AreSameFormat(vn, vm));
4377 VIXL_ASSERT((vd.Is2S() && vn.Is8B()) || (vd.Is4S() && vn.Is16B()));
4386 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON, CPUFeatures::kDotProduct));
4387 VIXL_ASSERT(AreSameFormat(vn, vm));
4388 VIXL_ASSERT((vd.Is2S() && vn.Is8B()) || (vd.Is4S() && vn.Is16B()));
4396 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON, CPUFeatures::kI8MM));
4397 VIXL_ASSERT(AreSameFormat(vn, vm));
4398 VIXL_ASSERT((vd.Is2S() && vn.Is8B()) || (vd.Is4S() && vn.Is16B()));
4404 VIXL_ASSERT(CPUHas(CPUFeatures::kFP, CPUFeatures::kNEON));
4405 VIXL_ASSERT((vd.Is1S() && vn.Is2S()) || (vd.Is1D() && vn.Is2D()) ||
4408 VIXL_ASSERT(CPUHas(CPUFeatures::kNEONHalf));
4417 VIXL_ASSERT(CPUHas(CPUFeatures::kFP, CPUFeatures::kNEON));
4418 VIXL_ASSERT((vd.Is1S() && vn.Is2S()) || (vd.Is1D() && vn.Is2D()) ||
4421 VIXL_ASSERT(CPUHas(CPUFeatures::kNEONHalf));
4430 VIXL_ASSERT(CPUHas(CPUFeatures::kFP, CPUFeatures::kNEON));
4431 VIXL_ASSERT((vd.Is1S() && vn.Is2S()) || (vd.Is1D() && vn.Is2D()) ||
4434 VIXL_ASSERT(CPUHas(CPUFeatures::kNEONHalf));
4443 VIXL_ASSERT(CPUHas(CPUFeatures::kFP, CPUFeatures::kNEON));
4444 VIXL_ASSERT((vd.Is1S() && vn.Is2S()) || (vd.Is1D() && vn.Is2D()) ||
4447 VIXL_ASSERT(CPUHas(CPUFeatures::kNEONHalf));
4456 VIXL_ASSERT(CPUHas(CPUFeatures::kFP, CPUFeatures::kNEON));
4457 VIXL_ASSERT((vd.Is1S() && vn.Is2S()) || (vd.Is1D() && vn.Is2D()) ||
4460 VIXL_ASSERT(CPUHas(CPUFeatures::kNEONHalf));
4474 VIXL_ASSERT(CPUHas(CPUFeatures::kFP, CPUFeatures::kNEON, CPUFeatures::kFcma));
4475 VIXL_ASSERT(vd.IsVector() && AreSameFormat(vd, vn));
4476 VIXL_ASSERT((vm.IsH() && (vd.Is8H() || vd.Is4H())) ||
4478 if (vd.IsLaneSizeH()) VIXL_ASSERT(CPUHas(CPUFeatures::kNEONHalf));
4490 VIXL_ASSERT(CPUHas(CPUFeatures::kFP, CPUFeatures::kNEON, CPUFeatures::kFcma));
4491 VIXL_ASSERT(AreSameFormat(vd, vn, vm));
4492 VIXL_ASSERT(vd.IsVector() && !vd.IsLaneSizeB());
4493 if (vd.IsLaneSizeH()) VIXL_ASSERT(CPUHas(CPUFeatures::kNEONHalf));
4504 VIXL_ASSERT(CPUHas(CPUFeatures::kFP, CPUFeatures::kNEON, CPUFeatures::kFcma));
4505 VIXL_ASSERT(AreSameFormat(vd, vn, vm));
4506 VIXL_ASSERT(vd.IsVector() && !vd.IsLaneSizeB());
4507 if (vd.IsLaneSizeH()) VIXL_ASSERT(CPUHas(CPUFeatures::kNEONHalf));
4513 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
4519 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
4520 VIXL_ASSERT(AreSameFormat(vd, vn));
4524 VIXL_ASSERT(vd.IsQ());
4531 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
4540 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
4541 VIXL_ASSERT((shift == LSL) || (shift == MSL));
4543 VIXL_ASSERT(shift_amount == 0);
4547 VIXL_ASSERT((byte == 0) || (byte == 0xff));
4556 VIXL_ASSERT(IsUint8(imm));
4562 VIXL_ASSERT(IsUint8(imm));
4572 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
4573 VIXL_ASSERT(AreSameFormat(vd, vn));
4577 VIXL_ASSERT(vd.IsQ());
4587 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
4588 VIXL_ASSERT((shift == LSL) || (shift == MSL));
4603 VIXL_ASSERT(AreSameFormat(vd, vn));
4604 VIXL_ASSERT((vd.Is2S() && vm.Is1S()) || (vd.Is4S() && vm.Is1S()) ||
4608 VIXL_ASSERT((vm.Is1S() && (vm_index < 4)) || (vm.Is1D() && (vm_index < 2)) ||
4641 VIXL_ASSERT(AreSameFormat(vd, vn));
4642 VIXL_ASSERT((vd.Is4H() && vm.Is1H()) || (vd.Is8H() && vm.Is1H()) ||
4645 VIXL_ASSERT((vm.Is1H() && (vm.GetCode() < 16) && (vm_index < 8)) ||
4666 VIXL_ASSERT((vd.Is4S() && vn.Is4H() && vm.Is1H()) ||
4673 VIXL_ASSERT((vm.Is1H() && (vm.GetCode() < 16) && (vm_index < 8)) ||
4693 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON, CPUFeatures::kDotProduct));
4694 VIXL_ASSERT((vd.Is2S() && vn.Is8B() && vm.Is1S4B()) ||
4707 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON, CPUFeatures::kDotProduct));
4708 VIXL_ASSERT((vd.Is2S() && vn.Is8B() && vm.Is1S4B()) ||
4720 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON, CPUFeatures::kI8MM));
4721 VIXL_ASSERT((vd.Is2S() && vn.Is8B() && vm.Is1S4B()) ||
4734 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON, CPUFeatures::kI8MM));
4735 VIXL_ASSERT((vd.Is2S() && vn.Is8B() && vm.Is1S4B()) ||
4757 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON)); \
4758 VIXL_ASSERT(AS); \
4776 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON, CPUFeatures::kRDM)); \
4796 VIXL_ASSERT(CPUHas(CPUFeatures::kFP, CPUFeatures::kNEON)); \
4797 if (vd.IsLaneSizeH()) VIXL_ASSERT(CPUHas(CPUFeatures::kNEONHalf)); \
4832 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON)); \
4833 VIXL_ASSERT(AS); \
4854 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON, \
4858 VIXL_ASSERT((vd.Is2S() && vn.Is2H()) || (vd.Is4S() && vn.Is4H())); \
4859 VIXL_ASSERT(vm.IsH()); \
4860 VIXL_ASSERT((vm_index >= 0) && (vm_index < 8)); \
4862 VIXL_ASSERT(vm.GetCode() < 16); \
4870 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
4876 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
4882 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
4883 VIXL_ASSERT(vd.IsVector() || vd.Is1D());
4889 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
4895 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
4896 VIXL_ASSERT(vd.IsVector() || vd.Is1D());
4902 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
4910 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
4913 VIXL_ASSERT((vd.Is1B() && vn.Is1H()) || (vd.Is1H() && vn.Is1S()) ||
4918 VIXL_ASSERT((vd.Is8B() && vn.Is8H()) || (vd.Is4H() && vn.Is4S()) ||
4928 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
4929 VIXL_ASSERT(vd.IsVector() && vd.IsD());
4935 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
4936 VIXL_ASSERT(vd.IsVector() && vd.IsQ());
4942 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
4943 VIXL_ASSERT(vd.IsScalar() || vd.IsD());
4949 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
4950 VIXL_ASSERT(vd.IsVector() && vd.IsQ());
4956 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
4957 VIXL_ASSERT(vd.IsScalar() || vd.IsD());
4963 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
4964 VIXL_ASSERT(vd.IsVector() && vd.IsQ());
4970 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
4971 VIXL_ASSERT(vd.IsScalar() || vd.IsD());
4977 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
4978 VIXL_ASSERT(vd.IsVector() && vd.IsQ());
4985 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
4986 VIXL_ASSERT(AreSameFormat(vd, vn));
4987 VIXL_ASSERT(vd.Is8B() || vd.Is16B());
4993 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
4994 VIXL_ASSERT(AreSameFormat(vd, vn));
4995 VIXL_ASSERT(vd.Is8B() || vd.Is16B());
5004 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
5005 VIXL_ASSERT(AreSameFormat(vd, vn, vm));
5006 VIXL_ASSERT(vd.Is8B() || vd.Is16B());
5007 VIXL_ASSERT((0 <= index) && (index < vd.GetLanes()));
5013 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
5031 VIXL_ASSERT(lane_size == 8);
5040 VIXL_ASSERT(!vd.Is1D());
5050 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
5051 VIXL_ASSERT(vd.IsScalar());
5057 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
5058 VIXL_ASSERT(!vd.Is1D());
5059 VIXL_ASSERT(vd.Is2D() == rn.IsX());
5069 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
5070 VIXL_ASSERT(AreSameFormat(vd, vn));
5086 VIXL_ASSERT(lane_size == 8);
5091 VIXL_ASSERT(
5094 VIXL_ASSERT(
5106 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
5112 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
5120 VIXL_ASSERT(rn.IsW());
5124 VIXL_ASSERT(rn.IsW());
5128 VIXL_ASSERT(rn.IsW());
5131 VIXL_ASSERT(lane_size == 8);
5132 VIXL_ASSERT(rn.IsX());
5137 VIXL_ASSERT(
5145 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
5151 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
5160 VIXL_ASSERT(rd.IsW());
5164 VIXL_ASSERT(rd.IsW());
5168 VIXL_ASSERT(rd.IsW());
5171 VIXL_ASSERT(lane_size == 8);
5172 VIXL_ASSERT(rd.IsX());
5178 VIXL_ASSERT(
5186 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
5187 VIXL_ASSERT(vn.GetSizeInBytes() >= 4);
5193 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
5199 VIXL_ASSERT(lane_size != 8);
5208 VIXL_ASSERT(lane_size == 4);
5209 VIXL_ASSERT(rd.IsX());
5214 VIXL_ASSERT(
5222 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
5223 VIXL_ASSERT(AreSameFormat(vd, vn));
5224 VIXL_ASSERT(!vd.Is1D() && !vd.Is2D());
5230 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
5231 VIXL_ASSERT(AreSameFormat(vd, vn));
5232 VIXL_ASSERT(!vd.Is1D() && !vd.Is2D());
5238 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
5239 VIXL_ASSERT(AreSameFormat(vd, vn));
5240 VIXL_ASSERT(vd.Is8B() || vd.Is16B());
5246 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
5247 VIXL_ASSERT(AreSameFormat(vd, vn));
5248 VIXL_ASSERT(vd.Is8B() || vd.Is16B());
5254 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
5255 VIXL_ASSERT(AreSameFormat(vd, vn));
5256 VIXL_ASSERT(vd.Is8B() || vd.Is16B() || vd.Is4H() || vd.Is8H());
5262 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
5263 VIXL_ASSERT(AreSameFormat(vd, vn));
5264 VIXL_ASSERT(!vd.Is1D() && !vd.Is2D());
5270 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
5271 VIXL_ASSERT(AreSameFormat(vd, vn));
5272 VIXL_ASSERT(vd.Is2S() || vd.Is4S());
5278 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
5279 VIXL_ASSERT(AreSameFormat(vd, vn));
5280 VIXL_ASSERT(vd.Is2S() || vd.Is4S());
5288 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
5289 VIXL_ASSERT((op == NEON_SADDLP) || (op == NEON_UADDLP) ||
5292 VIXL_ASSERT((vn.Is8B() && vd.Is4H()) || (vn.Is4H() && vd.Is2S()) ||
5300 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
5306 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
5312 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
5318 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
5326 VIXL_ASSERT((vn.Is8B() && vd.Is1H()) || (vn.Is16B() && vd.Is1H()) ||
5334 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
5340 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
5349 VIXL_ASSERT((vn.Is8B() && vd.Is1B()) || (vn.Is16B() && vd.Is1B()) ||
5354 VIXL_ASSERT(op_half != 0);
5379 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON)); \
5396 VIXL_ASSERT(CPUHas(CPUFeatures::kFP, CPUFeatures::kNEON)); \
5397 if (vd.Is1H()) VIXL_ASSERT(CPUHas(CPUFeatures::kNEONHalf)); \
5398 VIXL_ASSERT(vd.Is1S() || vd.Is1H()); \
5409 VIXL_ASSERT(AreSameFormat(vd, vn, vm));
5410 VIXL_ASSERT(!vd.Is1D());
5418 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
5426 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
5434 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
5442 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
5450 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
5458 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
5467 VIXL_ASSERT(AreSameFormat(vd, vn));
5485 VIXL_ASSERT((shift >= 0) && (shift < lane_size_in_bits));
5495 VIXL_ASSERT((shift >= 1) && (shift <= lane_size_in_bits));
5505 VIXL_ASSERT((shift >= 0) && (shift < lane_size_in_bits));
5508 VIXL_ASSERT((vn.Is8B() && vd.Is8H()) || (vn.Is4H() && vd.Is4S()) ||
5523 VIXL_ASSERT((shift >= 1) && (shift <= lane_size_in_bits));
5527 VIXL_ASSERT((vd.Is1B() && vn.Is1H()) || (vd.Is1H() && vn.Is1S()) ||
5532 VIXL_ASSERT((vd.Is8B() && vn.Is8H()) || (vd.Is4H() && vn.Is4S()) ||
5543 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
5544 VIXL_ASSERT(vd.IsVector() || vd.Is1D());
5550 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
5551 VIXL_ASSERT(vd.IsVector() || vd.Is1D());
5557 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
5563 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
5569 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
5575 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
5576 VIXL_ASSERT(vn.IsD());
5582 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
5583 VIXL_ASSERT(vn.IsQ());
5589 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
5595 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
5601 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
5602 VIXL_ASSERT(vn.IsD());
5608 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
5609 VIXL_ASSERT(vn.IsQ());
5615 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
5621 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
5627 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
5628 VIXL_ASSERT(vd.IsVector() || vd.Is1D());
5634 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
5635 VIXL_ASSERT(vd.IsVector() || vd.Is1D());
5641 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
5642 VIXL_ASSERT(vd.IsVector() || vd.Is1D());
5648 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
5649 VIXL_ASSERT(vd.IsVector() || vd.Is1D());
5655 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
5656 VIXL_ASSERT(vd.IsVector() || vd.Is1D());
5662 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
5663 VIXL_ASSERT(vd.IsVector() || vd.Is1D());
5669 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
5670 VIXL_ASSERT(vd.IsVector() || vd.Is1D());
5676 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
5677 VIXL_ASSERT(vd.IsVector() || vd.Is1D());
5683 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
5684 VIXL_ASSERT(vd.IsVector() || vd.Is1D());
5690 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
5691 VIXL_ASSERT(vn.IsVector() && vd.IsD());
5697 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
5698 VIXL_ASSERT(vn.IsVector() && vd.IsQ());
5704 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
5705 VIXL_ASSERT(vn.IsVector() && vd.IsD());
5711 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
5712 VIXL_ASSERT(vn.IsVector() && vd.IsQ());
5718 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
5719 VIXL_ASSERT(vd.IsD() || (vn.IsScalar() && vd.IsScalar()));
5725 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
5726 VIXL_ASSERT(vn.IsVector() && vd.IsQ());
5732 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
5733 VIXL_ASSERT(vd.IsD() || (vn.IsScalar() && vd.IsScalar()));
5739 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
5740 VIXL_ASSERT(vn.IsVector() && vd.IsQ());
5746 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
5747 VIXL_ASSERT(vd.IsD() || (vn.IsScalar() && vd.IsScalar()));
5753 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
5754 VIXL_ASSERT(vn.IsVector() && vd.IsQ());
5760 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
5761 VIXL_ASSERT(vd.IsD() || (vn.IsScalar() && vd.IsScalar()));
5767 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
5768 VIXL_ASSERT(vn.IsVector() && vd.IsQ());
5774 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
5775 VIXL_ASSERT(vd.IsD() || (vn.IsScalar() && vd.IsScalar()));
5781 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
5782 VIXL_ASSERT(vn.IsVector() && vd.IsQ());
5788 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
5789 VIXL_ASSERT(vd.IsD() || (vn.IsScalar() && vd.IsScalar()));
5795 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
5796 VIXL_ASSERT(vn.IsVector() && vd.IsQ());
5801 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
5802 VIXL_ASSERT(CPUHas(CPUFeatures::kI8MM));
5803 VIXL_ASSERT(vd.IsLaneSizeS());
5804 VIXL_ASSERT(vn.IsLaneSizeB() && vm.IsLaneSizeB());
5810 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
5811 VIXL_ASSERT(CPUHas(CPUFeatures::kI8MM));
5812 VIXL_ASSERT(vd.IsLaneSizeS());
5813 VIXL_ASSERT(vn.IsLaneSizeB() && vm.IsLaneSizeB());
5819 VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
5820 VIXL_ASSERT(CPUHas(CPUFeatures::kI8MM));
5821 VIXL_ASSERT(vd.IsLaneSizeS());
5822 VIXL_ASSERT(vn.IsLaneSizeB() && vm.IsLaneSizeB());
5832 VIXL_ASSERT(IsImmFP16(imm));
5854 VIXL_ASSERT(IsImmFP32(bits));
5873 VIXL_ASSERT(IsImmFP64(bits));
5912 VIXL_ASSERT(!dst.IsZero());
5935 VIXL_ASSERT(((imm >> kWRegSize) == 0) ||
5942 VIXL_ASSERT((shift == 0) || (shift == 16) || (shift == 32) ||
5944 VIXL_ASSERT(rd.Is64Bits() || (shift == 0) || (shift == 16));
5949 VIXL_ASSERT(shift == -1);
5957 VIXL_ASSERT(rd.Is64Bits());
5961 VIXL_ASSERT(rd.Is64Bits());
5967 VIXL_ASSERT(IsUint16(imm));
5979 VIXL_ASSERT(rd.GetSizeInBits() == rn.GetSizeInBits());
5982 VIXL_ASSERT(IsImmAddSub(immediate));
5987 VIXL_ASSERT(operand.GetRegister().GetSizeInBits() == rd.GetSizeInBits());
5988 VIXL_ASSERT(operand.GetShift() != ROR);
5998 VIXL_ASSERT(!(rd.IsSP() && (S == SetFlags)));
6008 VIXL_ASSERT(operand.IsExtendedRegister());
6019 VIXL_ASSERT(rd.GetSizeInBits() == rn.GetSizeInBits());
6020 VIXL_ASSERT(rd.GetSizeInBits() == operand.GetRegister().GetSizeInBits());
6021 VIXL_ASSERT(operand.IsShiftedRegister() && (operand.GetShiftAmount() == 0));
6027 VIXL_ASSERT(IsUint16(code));
6033 VIXL_ASSERT(IsUint16(code));
6049 VIXL_ASSERT(rd.GetSizeInBits() == rn.GetSizeInBits());
6054 VIXL_ASSERT(immediate != 0);
6055 VIXL_ASSERT(immediate != -1);
6056 VIXL_ASSERT(rd.Is64Bits() || IsUint32(immediate));
6073 VIXL_ASSERT(operand.IsShiftedRegister());
6074 VIXL_ASSERT(operand.GetRegister().GetSizeInBits() == rd.GetSizeInBits());
6103 VIXL_ASSERT(IsImmConditionalCompare(immediate));
6107 VIXL_ASSERT(operand.IsShiftedRegister() && (operand.GetShiftAmount() == 0));
6117 VIXL_ASSERT(rd.GetSizeInBits() == rn.GetSizeInBits());
6125 VIXL_ASSERT(vd.Is1H() || vd.Is1S() || vd.Is1D());
6135 VIXL_ASSERT(vd.Is1H() || vd.Is1S() || vd.Is1D());
6136 VIXL_ASSERT(AreSameSizeAndType(vd, vn, vm, va));
6145 VIXL_ASSERT(vd.Is8B() || vd.Is16B() || vd.Is4H() || vd.Is8H() || vd.Is2S() ||
6147 VIXL_ASSERT((left_shift == 0) || (left_shift == 8) || (left_shift == 16) ||
6149 VIXL_ASSERT(IsUint8(imm8));
6153 VIXL_ASSERT(op == NEONModifiedImmediate_MOVI);
6162 VIXL_ASSERT((left_shift == 0) || (left_shift == 8));
6178 VIXL_ASSERT(vd.Is2S() || vd.Is4S());
6179 VIXL_ASSERT((shift_amount == 8) || (shift_amount == 16));
6180 VIXL_ASSERT(IsUint8(imm8));
6218 VIXL_ASSERT(rd.GetSizeInBits() >= rn.GetSizeInBits());
6241 VIXL_ASSERT(rn.GetSizeInBits() == kXRegSize);
6261 VIXL_ASSERT(operand.IsShiftedRegister());
6262 VIXL_ASSERT(rn.Is64Bits() ||
6300 VIXL_ASSERT(offset >= 0);
6314 VIXL_ASSERT((option != RequireUnscaledOffset) &&
6329 VIXL_ASSERT((shift_amount == 0) || (shift_amount == access_size_in_bytes_log2));
6352 VIXL_ASSERT(CPUHas(rt));
6359 VIXL_ASSERT(xt.Is64Bits());
6360 VIXL_ASSERT(addr.IsImmediateOffset() || addr.IsImmediatePreIndex());
6377 VIXL_ASSERT(addr.IsRegisterOffset() || addr.IsImmediateOffset());
6387 VIXL_ASSERT(IsNamedPrefetchOperation(op));
6476 VIXL_ASSERT(access_size_in_bytes_log2 <= kQRegSizeInBytesLog2);
6484 VIXL_ASSERT(access_size_in_bytes_log2 <= kQRegSizeInBytesLog2);
6503 VIXL_ASSERT((reg_size == kXRegSize) || (reg_size == kWRegSize));
6520 VIXL_ASSERT((width == kBRegSize) || (width == kHRegSize) ||
6718 VIXL_ASSERT(rt.IsValid());
6722 VIXL_ASSERT(rt.IsVRegister());
6733 VIXL_ASSERT(rt.IsQ());
6741 VIXL_ASSERT(rt.IsValid());
6745 VIXL_ASSERT(rt.IsVRegister());
6756 VIXL_ASSERT(rt.IsQ());
6765 VIXL_ASSERT(AreSameSizeAndType(rt, rt2));
6770 VIXL_ASSERT(rt.IsVRegister());
6777 VIXL_ASSERT(rt.IsQ());
6786 VIXL_ASSERT((STP_w | LoadStorePairLBit) == LDP_w);
6794 VIXL_ASSERT(AreSameSizeAndType(rt, rt2));
6799 VIXL_ASSERT(rt.IsVRegister());
6806 VIXL_ASSERT(rt.IsQ());
6815 VIXL_ASSERT((STNP_w | LoadStorePairNonTemporalLBit) == LDNP_w);
6825 VIXL_ASSERT(rt.IsVRegister());
6832 VIXL_ASSERT(rt.IsQ());
6842 VIXL_ASSERT(rt.IsVRegister());
6849 VIXL_ASSERT(rt.IsB() || rt.IsQ());
6858 VIXL_ASSERT(AreSameSizeAndType(rt, rt2));