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];
358 return [TypeIdx](const LegalityQuery &Query) {
359 return isRegisterClassType(Query.Types[TypeIdx]);
366 return [=](const LegalityQuery &Query) {
367 const LLT Ty = Query.Types[TypeIdx];
369 Query.MMODescrs[0].MemoryTy.getSizeInBits() < Ty.getSizeInBits();
404 const LegalityQuery &Query) {
405 const LLT Ty = Query.Types[0];
408 const bool IsLoad = Query.Opcode != AMDGPU::G_STORE;
411 uint64_t MemSize = Query.MMODescrs[0].MemoryTy.getSizeInBits();
412 uint64_t AlignBits = Query.MMODescrs[0].AlignInBits;
413 unsigned AS = Query.Types[1].getAddressSpace();
436 Query.MMODescrs[0].Ordering !=
510 static bool isLoadStoreLegal(const GCNSubtarget &ST, const LegalityQuery &Query) {
511 const LLT Ty = Query.Types[0];
512 return isRegisterType(Ty) && isLoadStoreSizeLegal(ST, Query) &&
571 static bool shouldWidenLoad(const GCNSubtarget &ST, const LegalityQuery &Query,
573 if (Query.MMODescrs[0].Ordering != AtomicOrdering::NotAtomic)
576 return shouldWidenLoad(ST, Query.MMODescrs[0].MemoryTy,
577 Query.MMODescrs[0].AlignInBits,
578 Query.Types[1].getAddressSpace(), Opcode);
1357 [](const LegalityQuery &Query) {
1359 1, LLT::scalar(Query.Types[0].getSizeInBits()));
1361 .narrowScalarIf(largerThan(1, 0), [](const LegalityQuery &Query) {
1362 return std::pair(1, LLT::scalar(Query.Types[0].getSizeInBits()));
1373 [](const LegalityQuery &Query) {
1375 0, LLT::scalar(Query.Types[1].getSizeInBits()));
1377 .narrowScalarIf(largerThan(0, 1), [](const LegalityQuery &Query) {
1378 return std::pair(0, LLT::scalar(Query.Types[1].getSizeInBits()));
1385 const auto needToSplitMemOp = [=](const LegalityQuery &Query,
1387 const LLT DstTy = Query.Types[0];
1390 unsigned MemSize = Query.MMODescrs[0].MemoryTy.getSizeInBits();
1395 const LLT PtrTy = Query.Types[1];
1398 Query.MMODescrs[0].Ordering !=
1458 [=](const LegalityQuery &Query) -> bool {
1459 return isLoadStoreLegal(ST, Query);
1471 Actions.customIf([=](const LegalityQuery &Query) -> bool {
1472 return hasBufferRsrcWorkaround(Query.Types[0]);
1489 [=](const LegalityQuery &Query) -> bool {
1490 return shouldBitcastLoadStoreType(ST, Query.Types[0],
1491 Query.MMODescrs[0].MemoryTy);
1497 Actions.customIf([=](const LegalityQuery &Query) -> bool {
1498 return shouldWidenLoad(ST, Query, G_LOAD);
1505 [=](const LegalityQuery &Query) -> bool {
1506 return !Query.Types[0].isVector() &&
1507 needToSplitMemOp(Query, Op == G_LOAD);
1509 [=](const LegalityQuery &Query) -> std::pair<unsigned, LLT> {
1510 const LLT DstTy = Query.Types[0];
1511 const LLT PtrTy = Query.Types[1];
1514 unsigned MemSize = Query.MMODescrs[0].MemoryTy.getSizeInBits();
1522 Query.MMODescrs[0].Ordering != AtomicOrdering::NotAtomic);
1526 uint64_t Align = Query.MMODescrs[0].AlignInBits;
1530 [=](const LegalityQuery &Query) -> bool {
1531 return Query.Types[0].isVector() &&
1532 needToSplitMemOp(Query, Op == G_LOAD);
1534 [=](const LegalityQuery &Query) -> std::pair<unsigned, LLT> {
1535 const LLT DstTy = Query.Types[0];
1536 const LLT PtrTy = Query.Types[1];
1541 Query.MMODescrs[0].Ordering != AtomicOrdering::NotAtomic);
1548 unsigned MemSize = Query.MMODescrs[0].MemoryTy.getSizeInBits();
1608 [=](const LegalityQuery &Query) -> bool {
1609 return isLoadStoreLegal(ST, Query);
1729 [=](const LegalityQuery &Query) {
1732 const LLT ValTy = Query.Types[0];
1733 const LLT AmountTy = Query.Types[1];
1767 .customIf([=](const LegalityQuery &Query) {
1768 const LLT EltTy = Query.Types[EltTypeIdx];
1769 const LLT VecTy = Query.Types[VecTypeIdx];
1770 const LLT IdxTy = Query.Types[IdxTypeIdx];
1793 [=](const LegalityQuery &Query) {
1797 const LLT EltTy = Query.Types[EltTypeIdx];
1798 const LLT VecTy = Query.Types[VecTypeIdx];
1821 .unsupportedIf([=](const LegalityQuery &Query) {
1822 const LLT &EltTy = Query.Types[1].getElementType();
1823 return Query.Types[0] != EltTy;
1833 .lowerIf([=](const LegalityQuery &Query) {
1837 const LLT BigTy = Query.Types[BigTyIdx];
1841 .legalIf([=](const LegalityQuery &Query) {
1842 const LLT BigTy = Query.Types[BigTyIdx];
1843 const LLT LitTy = Query.Types[LitTyIdx];
1848 [=](const LegalityQuery &Query) {
1849 const LLT BigTy = Query.Types[BigTyIdx];
1854 [=](const LegalityQuery &Query) {
1855 const LLT LitTy = Query.Types[LitTyIdx];
1908 auto notValidElt = [=](const LegalityQuery &Query, unsigned TypeIdx) {
1909 const LLT Ty = Query.Types[TypeIdx];
1923 .lowerIf([=](const LegalityQuery &Query) {
1924 const LLT BigTy = Query.Types[BigTyIdx];
1942 [=](const LegalityQuery &Query) { return notValidElt(Query, LitTyIdx); },
1945 [=](const LegalityQuery &Query) { return notValidElt(Query, BigTyIdx); },
1952 [=](const LegalityQuery &Query) {
1953 const LLT Ty = Query.Types[LitTyIdx];
1960 [=](const LegalityQuery &Query) {
1961 const LLT Ty = Query.Types[BigTyIdx];
1964 [=](const LegalityQuery &Query) {
1967 const LLT &Ty = Query.Types[BigTyIdx];