Lines Matching refs:Query
73 return [=](const LegalityQuery &Query) { in isSmallOddVector() argument
74 const LLT Ty = Query.Types[TypeIdx]; in isSmallOddVector()
87 return [=](const LegalityQuery &Query) { in sizeIsMultipleOf32() argument
88 const LLT Ty = Query.Types[TypeIdx]; in sizeIsMultipleOf32()
94 return [=](const LegalityQuery &Query) { in isWideVec16() argument
95 const LLT Ty = Query.Types[TypeIdx]; in isWideVec16()
102 return [=](const LegalityQuery &Query) { in oneMoreElement() argument
103 const LLT Ty = Query.Types[TypeIdx]; in oneMoreElement()
111 return [=](const LegalityQuery &Query) { in fewerEltsToSize64Vector() argument
112 const LLT Ty = Query.Types[TypeIdx]; in fewerEltsToSize64Vector()
125 return [=](const LegalityQuery &Query) { in moreEltsToNext32Bit() argument
126 const LLT Ty = Query.Types[TypeIdx]; in moreEltsToNext32Bit()
142 return [=](const LegalityQuery &Query) { in moreElementsToNextExistingRegClass() argument
143 const LLT Ty = Query.Types[TypeIdx]; in moreElementsToNextExistingRegClass()
189 return [=](const LegalityQuery &Query) { in bitcastToRegisterType() argument
190 const LLT Ty = Query.Types[TypeIdx]; in bitcastToRegisterType()
196 return [=](const LegalityQuery &Query) { in bitcastToVectorElement32() argument
197 const LLT Ty = Query.Types[TypeIdx]; in bitcastToVectorElement32()
206 return [=](const LegalityQuery &Query) { in vectorSmallerThan() argument
207 const LLT QueryTy = Query.Types[TypeIdx]; in vectorSmallerThan()
213 return [=](const LegalityQuery &Query) { in vectorWiderThan() argument
214 const LLT QueryTy = Query.Types[TypeIdx]; in vectorWiderThan()
220 return [=](const LegalityQuery &Query) { in numElementsNotEven() argument
221 const LLT QueryTy = Query.Types[TypeIdx]; in numElementsNotEven()
256 return [=](const LegalityQuery &Query) { in isRegisterType() argument
257 return isRegisterType(Query.Types[TypeIdx]); in isRegisterType()
265 return [=](const LegalityQuery &Query) { in isIllegalRegisterType() argument
266 LLT Ty = Query.Types[TypeIdx]; in isIllegalRegisterType()
273 return [=](const LegalityQuery &Query) { in elementTypeIsLegal() argument
274 const LLT QueryTy = Query.Types[TypeIdx]; in elementTypeIsLegal()
358 return [TypeIdx](const LegalityQuery &Query) { in isRegisterClassType() argument
359 return isRegisterClassType(Query.Types[TypeIdx]); in isRegisterClassType()
366 return [=](const LegalityQuery &Query) { in isWideScalarExtLoadTruncStore() argument
367 const LLT Ty = Query.Types[TypeIdx]; in isWideScalarExtLoadTruncStore()
369 Query.MMODescrs[0].MemoryTy.getSizeInBits() < Ty.getSizeInBits(); in isWideScalarExtLoadTruncStore()
404 const LegalityQuery &Query) { in isLoadStoreSizeLegal() argument
405 const LLT Ty = Query.Types[0]; in isLoadStoreSizeLegal()
408 const bool IsLoad = Query.Opcode != AMDGPU::G_STORE; in isLoadStoreSizeLegal()
411 uint64_t MemSize = Query.MMODescrs[0].MemoryTy.getSizeInBits(); in isLoadStoreSizeLegal()
412 uint64_t AlignBits = Query.MMODescrs[0].AlignInBits; in isLoadStoreSizeLegal()
413 unsigned AS = Query.Types[1].getAddressSpace(); in isLoadStoreSizeLegal()
436 Query.MMODescrs[0].Ordering != in isLoadStoreSizeLegal()
510 static bool isLoadStoreLegal(const GCNSubtarget &ST, const LegalityQuery &Query) { in isLoadStoreLegal() argument
511 const LLT Ty = Query.Types[0]; in isLoadStoreLegal()
512 return isRegisterType(Ty) && isLoadStoreSizeLegal(ST, Query) && in isLoadStoreLegal()
571 static bool shouldWidenLoad(const GCNSubtarget &ST, const LegalityQuery &Query, in shouldWidenLoad() argument
573 if (Query.MMODescrs[0].Ordering != AtomicOrdering::NotAtomic) in shouldWidenLoad()
576 return shouldWidenLoad(ST, Query.MMODescrs[0].MemoryTy, in shouldWidenLoad()
577 Query.MMODescrs[0].AlignInBits, in shouldWidenLoad()
578 Query.Types[1].getAddressSpace(), Opcode); in shouldWidenLoad()
1357 [](const LegalityQuery &Query) { in AMDGPULegalizerInfo() argument
1359 1, LLT::scalar(Query.Types[0].getSizeInBits())); in AMDGPULegalizerInfo()
1361 .narrowScalarIf(largerThan(1, 0), [](const LegalityQuery &Query) { in AMDGPULegalizerInfo() argument
1362 return std::pair(1, LLT::scalar(Query.Types[0].getSizeInBits())); in AMDGPULegalizerInfo()
1373 [](const LegalityQuery &Query) { in AMDGPULegalizerInfo() argument
1375 0, LLT::scalar(Query.Types[1].getSizeInBits())); in AMDGPULegalizerInfo()
1377 .narrowScalarIf(largerThan(0, 1), [](const LegalityQuery &Query) { in AMDGPULegalizerInfo() argument
1378 return std::pair(0, LLT::scalar(Query.Types[1].getSizeInBits())); in AMDGPULegalizerInfo()
1385 const auto needToSplitMemOp = [=](const LegalityQuery &Query, in AMDGPULegalizerInfo()
1387 const LLT DstTy = Query.Types[0]; in AMDGPULegalizerInfo()
1390 unsigned MemSize = Query.MMODescrs[0].MemoryTy.getSizeInBits(); in AMDGPULegalizerInfo()
1395 const LLT PtrTy = Query.Types[1]; in AMDGPULegalizerInfo()
1398 Query.MMODescrs[0].Ordering != in AMDGPULegalizerInfo()
1458 [=](const LegalityQuery &Query) -> bool { in AMDGPULegalizerInfo() argument
1459 return isLoadStoreLegal(ST, Query); in AMDGPULegalizerInfo()
1471 Actions.customIf([=](const LegalityQuery &Query) -> bool { in AMDGPULegalizerInfo() argument
1472 return hasBufferRsrcWorkaround(Query.Types[0]); in AMDGPULegalizerInfo()
1489 [=](const LegalityQuery &Query) -> bool { in AMDGPULegalizerInfo() argument
1490 return shouldBitcastLoadStoreType(ST, Query.Types[0], in AMDGPULegalizerInfo()
1491 Query.MMODescrs[0].MemoryTy); in AMDGPULegalizerInfo()
1497 Actions.customIf([=](const LegalityQuery &Query) -> bool { in AMDGPULegalizerInfo() argument
1498 return shouldWidenLoad(ST, Query, G_LOAD); in AMDGPULegalizerInfo()
1505 [=](const LegalityQuery &Query) -> bool { in AMDGPULegalizerInfo() argument
1506 return !Query.Types[0].isVector() && in AMDGPULegalizerInfo()
1507 needToSplitMemOp(Query, Op == G_LOAD); in AMDGPULegalizerInfo()
1509 [=](const LegalityQuery &Query) -> std::pair<unsigned, LLT> { in AMDGPULegalizerInfo() argument
1510 const LLT DstTy = Query.Types[0]; in AMDGPULegalizerInfo()
1511 const LLT PtrTy = Query.Types[1]; in AMDGPULegalizerInfo()
1514 unsigned MemSize = Query.MMODescrs[0].MemoryTy.getSizeInBits(); in AMDGPULegalizerInfo()
1522 Query.MMODescrs[0].Ordering != AtomicOrdering::NotAtomic); in AMDGPULegalizerInfo()
1526 uint64_t Align = Query.MMODescrs[0].AlignInBits; in AMDGPULegalizerInfo()
1530 [=](const LegalityQuery &Query) -> bool { in AMDGPULegalizerInfo() argument
1531 return Query.Types[0].isVector() && in AMDGPULegalizerInfo()
1532 needToSplitMemOp(Query, Op == G_LOAD); in AMDGPULegalizerInfo()
1534 [=](const LegalityQuery &Query) -> std::pair<unsigned, LLT> { in AMDGPULegalizerInfo() argument
1535 const LLT DstTy = Query.Types[0]; in AMDGPULegalizerInfo()
1536 const LLT PtrTy = Query.Types[1]; in AMDGPULegalizerInfo()
1541 Query.MMODescrs[0].Ordering != AtomicOrdering::NotAtomic); in AMDGPULegalizerInfo()
1548 unsigned MemSize = Query.MMODescrs[0].MemoryTy.getSizeInBits(); in AMDGPULegalizerInfo()
1608 [=](const LegalityQuery &Query) -> bool { in AMDGPULegalizerInfo() argument
1609 return isLoadStoreLegal(ST, Query); in AMDGPULegalizerInfo()
1729 [=](const LegalityQuery &Query) { in AMDGPULegalizerInfo() argument
1732 const LLT ValTy = Query.Types[0]; in AMDGPULegalizerInfo()
1733 const LLT AmountTy = Query.Types[1]; in AMDGPULegalizerInfo()
1767 .customIf([=](const LegalityQuery &Query) { in AMDGPULegalizerInfo() argument
1768 const LLT EltTy = Query.Types[EltTypeIdx]; in AMDGPULegalizerInfo()
1769 const LLT VecTy = Query.Types[VecTypeIdx]; in AMDGPULegalizerInfo()
1770 const LLT IdxTy = Query.Types[IdxTypeIdx]; in AMDGPULegalizerInfo()
1793 [=](const LegalityQuery &Query) { in AMDGPULegalizerInfo() argument
1797 const LLT EltTy = Query.Types[EltTypeIdx]; in AMDGPULegalizerInfo()
1798 const LLT VecTy = Query.Types[VecTypeIdx]; in AMDGPULegalizerInfo()
1821 .unsupportedIf([=](const LegalityQuery &Query) { in AMDGPULegalizerInfo() argument
1822 const LLT &EltTy = Query.Types[1].getElementType(); in AMDGPULegalizerInfo()
1823 return Query.Types[0] != EltTy; in AMDGPULegalizerInfo()
1833 .lowerIf([=](const LegalityQuery &Query) { in AMDGPULegalizerInfo() argument
1837 const LLT BigTy = Query.Types[BigTyIdx]; in AMDGPULegalizerInfo()
1841 .legalIf([=](const LegalityQuery &Query) { in AMDGPULegalizerInfo() argument
1842 const LLT BigTy = Query.Types[BigTyIdx]; in AMDGPULegalizerInfo()
1843 const LLT LitTy = Query.Types[LitTyIdx]; in AMDGPULegalizerInfo()
1848 [=](const LegalityQuery &Query) { in AMDGPULegalizerInfo() argument
1849 const LLT BigTy = Query.Types[BigTyIdx]; in AMDGPULegalizerInfo()
1854 [=](const LegalityQuery &Query) { in AMDGPULegalizerInfo() argument
1855 const LLT LitTy = Query.Types[LitTyIdx]; in AMDGPULegalizerInfo()
1908 auto notValidElt = [=](const LegalityQuery &Query, unsigned TypeIdx) { in AMDGPULegalizerInfo() argument
1909 const LLT Ty = Query.Types[TypeIdx]; in AMDGPULegalizerInfo()
1923 .lowerIf([=](const LegalityQuery &Query) { in AMDGPULegalizerInfo() argument
1924 const LLT BigTy = Query.Types[BigTyIdx]; in AMDGPULegalizerInfo()
1942 [=](const LegalityQuery &Query) { return notValidElt(Query, LitTyIdx); }, in AMDGPULegalizerInfo() argument
1945 [=](const LegalityQuery &Query) { return notValidElt(Query, BigTyIdx); }, in AMDGPULegalizerInfo() argument
1952 [=](const LegalityQuery &Query) { in AMDGPULegalizerInfo() argument
1953 const LLT Ty = Query.Types[LitTyIdx]; in AMDGPULegalizerInfo()
1960 [=](const LegalityQuery &Query) { in AMDGPULegalizerInfo() argument
1961 const LLT Ty = Query.Types[BigTyIdx]; in AMDGPULegalizerInfo()
1964 [=](const LegalityQuery &Query) { in AMDGPULegalizerInfo() argument
1967 const LLT &Ty = Query.Types[BigTyIdx]; in AMDGPULegalizerInfo()