Lines Matching defs:Query

73   return [=](const LegalityQuery &Query) {
74 const LLT Ty = Query.Types[TypeIdx];
87 return [=](const LegalityQuery &Query) {
88 const LLT Ty = Query.Types[TypeIdx];
94 return [=](const LegalityQuery &Query) {
95 const LLT Ty = Query.Types[TypeIdx];
102 return [=](const LegalityQuery &Query) {
103 const LLT Ty = Query.Types[TypeIdx];
111 return [=](const LegalityQuery &Query) {
112 const LLT Ty = Query.Types[TypeIdx];
125 return [=](const LegalityQuery &Query) {
126 const LLT Ty = Query.Types[TypeIdx];
142 return [=](const LegalityQuery &Query) {
143 const LLT Ty = Query.Types[TypeIdx];
189 return [=](const LegalityQuery &Query) {
190 const LLT Ty = Query.Types[TypeIdx];
196 return [=](const LegalityQuery &Query) {
197 const LLT Ty = Query.Types[TypeIdx];
206 return [=](const LegalityQuery &Query) {
207 const LLT QueryTy = Query.Types[TypeIdx];
213 return [=](const LegalityQuery &Query) {
214 const LLT QueryTy = Query.Types[TypeIdx];
220 return [=](const LegalityQuery &Query) {
221 const LLT QueryTy = Query.Types[TypeIdx];
256 return [=](const LegalityQuery &Query) {
257 return isRegisterType(Query.Types[TypeIdx]);
265 return [=](const LegalityQuery &Query) {
266 LLT Ty = Query.Types[TypeIdx];
273 return [=](const LegalityQuery &Query) {
274 const LLT QueryTy = Query.Types[TypeIdx];
360 return [TypeIdx](const LegalityQuery &Query) {
361 return isRegisterClassType(Query.Types[TypeIdx]);
368 return [=](const LegalityQuery &Query) {
369 const LLT Ty = Query.Types[TypeIdx];
371 Query.MMODescrs[0].MemoryTy.getSizeInBits() < Ty.getSizeInBits();
406 const LegalityQuery &Query) {
407 const LLT Ty = Query.Types[0];
410 const bool IsLoad = Query.Opcode != AMDGPU::G_STORE;
413 uint64_t MemSize = Query.MMODescrs[0].MemoryTy.getSizeInBits();
414 uint64_t AlignBits = Query.MMODescrs[0].AlignInBits;
415 unsigned AS = Query.Types[1].getAddressSpace();
438 Query.MMODescrs[0].Ordering !=
511 static bool isLoadStoreLegal(const GCNSubtarget &ST, const LegalityQuery &Query) {
512 const LLT Ty = Query.Types[0];
513 return isRegisterType(Ty) && isLoadStoreSizeLegal(ST, Query) &&
572 static bool shouldWidenLoad(const GCNSubtarget &ST, const LegalityQuery &Query,
574 if (Query.MMODescrs[0].Ordering != AtomicOrdering::NotAtomic)
577 return shouldWidenLoad(ST, Query.MMODescrs[0].MemoryTy,
578 Query.MMODescrs[0].AlignInBits,
579 Query.Types[1].getAddressSpace(), Opcode);
1372 [](const LegalityQuery &Query) {
1374 1, LLT::scalar(Query.Types[0].getSizeInBits()));
1376 .narrowScalarIf(largerThan(1, 0), [](const LegalityQuery &Query) {
1377 return std::pair(1, LLT::scalar(Query.Types[0].getSizeInBits()));
1388 [](const LegalityQuery &Query) {
1390 0, LLT::scalar(Query.Types[1].getSizeInBits()));
1392 .narrowScalarIf(largerThan(0, 1), [](const LegalityQuery &Query) {
1393 return std::pair(0, LLT::scalar(Query.Types[1].getSizeInBits()));
1400 const auto needToSplitMemOp = [=](const LegalityQuery &Query,
1402 const LLT DstTy = Query.Types[0];
1405 unsigned MemSize = Query.MMODescrs[0].MemoryTy.getSizeInBits();
1410 const LLT PtrTy = Query.Types[1];
1413 Query.MMODescrs[0].Ordering !=
1473 [=](const LegalityQuery &Query) -> bool {
1474 return isLoadStoreLegal(ST, Query);
1486 Actions.customIf([=](const LegalityQuery &Query) -> bool {
1487 return hasBufferRsrcWorkaround(Query.Types[0]);
1504 [=](const LegalityQuery &Query) -> bool {
1505 return shouldBitcastLoadStoreType(ST, Query.Types[0],
1506 Query.MMODescrs[0].MemoryTy);
1512 Actions.customIf([=](const LegalityQuery &Query) -> bool {
1513 return shouldWidenLoad(ST, Query, G_LOAD);
1520 [=](const LegalityQuery &Query) -> bool {
1521 return !Query.Types[0].isVector() &&
1522 needToSplitMemOp(Query, Op == G_LOAD);
1524 [=](const LegalityQuery &Query) -> std::pair<unsigned, LLT> {
1525 const LLT DstTy = Query.Types[0];
1526 const LLT PtrTy = Query.Types[1];
1529 unsigned MemSize = Query.MMODescrs[0].MemoryTy.getSizeInBits();
1537 Query.MMODescrs[0].Ordering != AtomicOrdering::NotAtomic);
1541 uint64_t Align = Query.MMODescrs[0].AlignInBits;
1545 [=](const LegalityQuery &Query) -> bool {
1546 return Query.Types[0].isVector() &&
1547 needToSplitMemOp(Query, Op == G_LOAD);
1549 [=](const LegalityQuery &Query) -> std::pair<unsigned, LLT> {
1550 const LLT DstTy = Query.Types[0];
1551 const LLT PtrTy = Query.Types[1];
1556 Query.MMODescrs[0].Ordering != AtomicOrdering::NotAtomic);
1563 unsigned MemSize = Query.MMODescrs[0].MemoryTy.getSizeInBits();
1623 [=](const LegalityQuery &Query) -> bool {
1624 return isLoadStoreLegal(ST, Query);
1744 [=](const LegalityQuery &Query) {
1747 const LLT ValTy = Query.Types[0];
1748 const LLT AmountTy = Query.Types[1];
1782 .customIf([=](const LegalityQuery &Query) {
1783 const LLT EltTy = Query.Types[EltTypeIdx];
1784 const LLT VecTy = Query.Types[VecTypeIdx];
1785 const LLT IdxTy = Query.Types[IdxTypeIdx];
1808 [=](const LegalityQuery &Query) {
1812 const LLT EltTy = Query.Types[EltTypeIdx];
1813 const LLT VecTy = Query.Types[VecTypeIdx];
1836 .unsupportedIf([=](const LegalityQuery &Query) {
1837 const LLT &EltTy = Query.Types[1].getElementType();
1838 return Query.Types[0] != EltTy;
1848 .lowerIf([=](const LegalityQuery &Query) {
1852 const LLT BigTy = Query.Types[BigTyIdx];
1856 .legalIf([=](const LegalityQuery &Query) {
1857 const LLT BigTy = Query.Types[BigTyIdx];
1858 const LLT LitTy = Query.Types[LitTyIdx];
1863 [=](const LegalityQuery &Query) {
1864 const LLT BigTy = Query.Types[BigTyIdx];
1869 [=](const LegalityQuery &Query) {
1870 const LLT LitTy = Query.Types[LitTyIdx];
1923 auto notValidElt = [=](const LegalityQuery &Query, unsigned TypeIdx) {
1924 const LLT Ty = Query.Types[TypeIdx];
1938 .lowerIf([=](const LegalityQuery &Query) {
1939 const LLT BigTy = Query.Types[BigTyIdx];
1957 [=](const LegalityQuery &Query) { return notValidElt(Query, LitTyIdx); },
1960 [=](const LegalityQuery &Query) { return notValidElt(Query, BigTyIdx); },
1967 [=](const LegalityQuery &Query) {
1968 const LLT Ty = Query.Types[LitTyIdx];
1975 [=](const LegalityQuery &Query) {
1976 const LLT Ty = Query.Types[BigTyIdx];
1979 [=](const LegalityQuery &Query) {
1982 const LLT &Ty = Query.Types[BigTyIdx];