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()
255 return [=](const LegalityQuery &Query) { in isRegisterType() argument
256 return isRegisterType(Query.Types[TypeIdx]); in isRegisterType()
262 return [=](const LegalityQuery &Query) { in isIllegalRegisterType() argument
263 LLT Ty = Query.Types[TypeIdx]; in isIllegalRegisterType()
270 return [=](const LegalityQuery &Query) { in elementTypeIsLegal() argument
271 const LLT QueryTy = Query.Types[TypeIdx]; in elementTypeIsLegal()
282 return [=](const LegalityQuery &Query) { in isWideScalarExtLoadTruncStore() argument
283 const LLT Ty = Query.Types[TypeIdx]; in isWideScalarExtLoadTruncStore()
285 Query.MMODescrs[0].MemoryTy.getSizeInBits() < Ty.getSizeInBits(); in isWideScalarExtLoadTruncStore()
320 const LegalityQuery &Query) { in isLoadStoreSizeLegal() argument
321 const LLT Ty = Query.Types[0]; in isLoadStoreSizeLegal()
324 const bool IsLoad = Query.Opcode != AMDGPU::G_STORE; in isLoadStoreSizeLegal()
327 uint64_t MemSize = Query.MMODescrs[0].MemoryTy.getSizeInBits(); in isLoadStoreSizeLegal()
328 uint64_t AlignBits = Query.MMODescrs[0].AlignInBits; in isLoadStoreSizeLegal()
329 unsigned AS = Query.Types[1].getAddressSpace(); in isLoadStoreSizeLegal()
352 Query.MMODescrs[0].Ordering != in isLoadStoreSizeLegal()
427 static bool isLoadStoreLegal(const GCNSubtarget &ST, const LegalityQuery &Query) { in isLoadStoreLegal() argument
428 const LLT Ty = Query.Types[0]; in isLoadStoreLegal()
429 return isRegisterType(Ty) && isLoadStoreSizeLegal(ST, Query) && in isLoadStoreLegal()
488 static bool shouldWidenLoad(const GCNSubtarget &ST, const LegalityQuery &Query, in shouldWidenLoad() argument
490 if (Query.MMODescrs[0].Ordering != AtomicOrdering::NotAtomic) in shouldWidenLoad()
493 return shouldWidenLoad(ST, Query.MMODescrs[0].MemoryTy, in shouldWidenLoad()
494 Query.MMODescrs[0].AlignInBits, in shouldWidenLoad()
495 Query.Types[1].getAddressSpace(), Opcode); in shouldWidenLoad()
1310 [](const LegalityQuery &Query) { in AMDGPULegalizerInfo() argument
1312 1, LLT::scalar(Query.Types[0].getSizeInBits())); in AMDGPULegalizerInfo()
1314 .narrowScalarIf(largerThan(1, 0), [](const LegalityQuery &Query) { in AMDGPULegalizerInfo() argument
1315 return std::pair(1, LLT::scalar(Query.Types[0].getSizeInBits())); in AMDGPULegalizerInfo()
1326 [](const LegalityQuery &Query) { in AMDGPULegalizerInfo() argument
1328 0, LLT::scalar(Query.Types[1].getSizeInBits())); in AMDGPULegalizerInfo()
1330 .narrowScalarIf(largerThan(0, 1), [](const LegalityQuery &Query) { in AMDGPULegalizerInfo() argument
1331 return std::pair(0, LLT::scalar(Query.Types[1].getSizeInBits())); in AMDGPULegalizerInfo()
1338 const auto needToSplitMemOp = [=](const LegalityQuery &Query, in AMDGPULegalizerInfo()
1340 const LLT DstTy = Query.Types[0]; in AMDGPULegalizerInfo()
1343 unsigned MemSize = Query.MMODescrs[0].MemoryTy.getSizeInBits(); in AMDGPULegalizerInfo()
1348 const LLT PtrTy = Query.Types[1]; in AMDGPULegalizerInfo()
1351 Query.MMODescrs[0].Ordering != in AMDGPULegalizerInfo()
1411 [=](const LegalityQuery &Query) -> bool { in AMDGPULegalizerInfo() argument
1412 return isLoadStoreLegal(ST, Query); in AMDGPULegalizerInfo()
1424 Actions.customIf([=](const LegalityQuery &Query) -> bool { in AMDGPULegalizerInfo() argument
1425 return hasBufferRsrcWorkaround(Query.Types[0]); in AMDGPULegalizerInfo()
1442 [=](const LegalityQuery &Query) -> bool { in AMDGPULegalizerInfo() argument
1443 return shouldBitcastLoadStoreType(ST, Query.Types[0], in AMDGPULegalizerInfo()
1444 Query.MMODescrs[0].MemoryTy); in AMDGPULegalizerInfo()
1450 Actions.customIf([=](const LegalityQuery &Query) -> bool { in AMDGPULegalizerInfo() argument
1451 return shouldWidenLoad(ST, Query, G_LOAD); in AMDGPULegalizerInfo()
1458 [=](const LegalityQuery &Query) -> bool { in AMDGPULegalizerInfo() argument
1459 return !Query.Types[0].isVector() && in AMDGPULegalizerInfo()
1460 needToSplitMemOp(Query, Op == G_LOAD); in AMDGPULegalizerInfo()
1462 [=](const LegalityQuery &Query) -> std::pair<unsigned, LLT> { in AMDGPULegalizerInfo() argument
1463 const LLT DstTy = Query.Types[0]; in AMDGPULegalizerInfo()
1464 const LLT PtrTy = Query.Types[1]; in AMDGPULegalizerInfo()
1467 unsigned MemSize = Query.MMODescrs[0].MemoryTy.getSizeInBits(); in AMDGPULegalizerInfo()
1475 Query.MMODescrs[0].Ordering != AtomicOrdering::NotAtomic); in AMDGPULegalizerInfo()
1479 uint64_t Align = Query.MMODescrs[0].AlignInBits; in AMDGPULegalizerInfo()
1483 [=](const LegalityQuery &Query) -> bool { in AMDGPULegalizerInfo() argument
1484 return Query.Types[0].isVector() && in AMDGPULegalizerInfo()
1485 needToSplitMemOp(Query, Op == G_LOAD); in AMDGPULegalizerInfo()
1487 [=](const LegalityQuery &Query) -> std::pair<unsigned, LLT> { in AMDGPULegalizerInfo() argument
1488 const LLT DstTy = Query.Types[0]; in AMDGPULegalizerInfo()
1489 const LLT PtrTy = Query.Types[1]; in AMDGPULegalizerInfo()
1494 Query.MMODescrs[0].Ordering != AtomicOrdering::NotAtomic); in AMDGPULegalizerInfo()
1501 unsigned MemSize = Query.MMODescrs[0].MemoryTy.getSizeInBits(); in AMDGPULegalizerInfo()
1561 [=](const LegalityQuery &Query) -> bool { in AMDGPULegalizerInfo() argument
1562 return isLoadStoreLegal(ST, Query); in AMDGPULegalizerInfo()
1657 [=](const LegalityQuery &Query) { in AMDGPULegalizerInfo() argument
1660 const LLT ValTy = Query.Types[0]; in AMDGPULegalizerInfo()
1661 const LLT AmountTy = Query.Types[1]; in AMDGPULegalizerInfo()
1695 .customIf([=](const LegalityQuery &Query) { in AMDGPULegalizerInfo() argument
1696 const LLT EltTy = Query.Types[EltTypeIdx]; in AMDGPULegalizerInfo()
1697 const LLT VecTy = Query.Types[VecTypeIdx]; in AMDGPULegalizerInfo()
1698 const LLT IdxTy = Query.Types[IdxTypeIdx]; in AMDGPULegalizerInfo()
1721 [=](const LegalityQuery &Query) { in AMDGPULegalizerInfo() argument
1725 const LLT EltTy = Query.Types[EltTypeIdx]; in AMDGPULegalizerInfo()
1726 const LLT VecTy = Query.Types[VecTypeIdx]; in AMDGPULegalizerInfo()
1749 .unsupportedIf([=](const LegalityQuery &Query) { in AMDGPULegalizerInfo() argument
1750 const LLT &EltTy = Query.Types[1].getElementType(); in AMDGPULegalizerInfo()
1751 return Query.Types[0] != EltTy; in AMDGPULegalizerInfo()
1761 .lowerIf([=](const LegalityQuery &Query) { in AMDGPULegalizerInfo() argument
1765 const LLT BigTy = Query.Types[BigTyIdx]; in AMDGPULegalizerInfo()
1769 .legalIf([=](const LegalityQuery &Query) { in AMDGPULegalizerInfo() argument
1770 const LLT BigTy = Query.Types[BigTyIdx]; in AMDGPULegalizerInfo()
1771 const LLT LitTy = Query.Types[LitTyIdx]; in AMDGPULegalizerInfo()
1776 [=](const LegalityQuery &Query) { in AMDGPULegalizerInfo() argument
1777 const LLT BigTy = Query.Types[BigTyIdx]; in AMDGPULegalizerInfo()
1782 [=](const LegalityQuery &Query) { in AMDGPULegalizerInfo() argument
1783 const LLT LitTy = Query.Types[LitTyIdx]; in AMDGPULegalizerInfo()
1836 auto notValidElt = [=](const LegalityQuery &Query, unsigned TypeIdx) { in AMDGPULegalizerInfo() argument
1837 const LLT Ty = Query.Types[TypeIdx]; in AMDGPULegalizerInfo()
1851 .lowerIf([=](const LegalityQuery &Query) { in AMDGPULegalizerInfo() argument
1852 const LLT BigTy = Query.Types[BigTyIdx]; in AMDGPULegalizerInfo()
1870 [=](const LegalityQuery &Query) { return notValidElt(Query, LitTyIdx); }, in AMDGPULegalizerInfo() argument
1873 [=](const LegalityQuery &Query) { return notValidElt(Query, BigTyIdx); }, in AMDGPULegalizerInfo() argument
1880 [=](const LegalityQuery &Query) { in AMDGPULegalizerInfo() argument
1881 const LLT Ty = Query.Types[LitTyIdx]; in AMDGPULegalizerInfo()
1888 [=](const LegalityQuery &Query) { in AMDGPULegalizerInfo() argument
1889 const LLT Ty = Query.Types[BigTyIdx]; in AMDGPULegalizerInfo()
1892 [=](const LegalityQuery &Query) { in AMDGPULegalizerInfo() argument
1895 const LLT &Ty = Query.Types[BigTyIdx]; in AMDGPULegalizerInfo()