• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /freebsd-13-stable/contrib/llvm-project/llvm/lib/Target/AMDGPU/

Lines Matching refs:Query

64   return [=](const LegalityQuery &Query) {
65 const LLT Ty = Query.Types[TypeIdx];
74 return [=](const LegalityQuery &Query) {
75 const LLT Ty = Query.Types[TypeIdx];
82 return [=](const LegalityQuery &Query) {
83 const LLT Ty = Query.Types[TypeIdx];
90 return [=](const LegalityQuery &Query) {
91 const LLT Ty = Query.Types[TypeIdx];
103 return [=](const LegalityQuery &Query) {
104 const LLT Ty = Query.Types[TypeIdx];
119 return [=](const LegalityQuery &Query) {
120 const LLT Ty = Query.Types[TypeIdx];
136 return [=](const LegalityQuery &Query) {
137 const LLT QueryTy = Query.Types[TypeIdx];
143 return [=](const LegalityQuery &Query) {
144 const LLT QueryTy = Query.Types[TypeIdx];
150 return [=](const LegalityQuery &Query) {
151 const LLT QueryTy = Query.Types[TypeIdx];
185 return [=](const LegalityQuery &Query) {
186 return isRegisterType(Query.Types[TypeIdx]);
191 return [=](const LegalityQuery &Query) {
192 const LLT QueryTy = Query.Types[TypeIdx];
201 return [=](const LegalityQuery &Query) {
202 const LLT Ty = Query.Types[TypeIdx];
204 Query.MMODescrs[0].SizeInBits < Ty.getSizeInBits();
237 const LegalityQuery &Query,
239 const LLT Ty = Query.Types[0];
245 unsigned MemSize = Query.MMODescrs[0].SizeInBits;
246 unsigned Align = Query.MMODescrs[0].AlignInBits;
247 unsigned AS = Query.Types[1].getAddressSpace();
315 static bool isLoadStoreLegal(const GCNSubtarget &ST, const LegalityQuery &Query,
317 const LLT Ty = Query.Types[0];
318 return isRegisterType(Ty) && isLoadStoreSizeLegal(ST, Query, Opcode) &&
838 [](const LegalityQuery &Query) {
839 return std::make_pair(1, LLT::scalar(Query.Types[0].getSizeInBits()));
842 [](const LegalityQuery &Query) {
843 return std::make_pair(1, LLT::scalar(Query.Types[0].getSizeInBits()));
854 [](const LegalityQuery &Query) {
855 return std::make_pair(0, LLT::scalar(Query.Types[1].getSizeInBits()));
859 [](const LegalityQuery &Query) {
860 return std::make_pair(0, LLT::scalar(Query.Types[1].getSizeInBits()));
867 const auto needToSplitMemOp = [=](const LegalityQuery &Query,
869 const LLT DstTy = Query.Types[0];
872 unsigned MemSize = Query.MMODescrs[0].SizeInBits;
873 unsigned Align = Query.MMODescrs[0].AlignInBits;
881 const LLT PtrTy = Query.Types[1];
906 const auto shouldWidenLoadResult = [=](const LegalityQuery &Query,
908 unsigned Size = Query.Types[0].getSizeInBits();
915 unsigned AddrSpace = Query.Types[1].getAddressSpace();
919 unsigned Align = Query.MMODescrs[0].AlignInBits;
965 [=](const LegalityQuery &Query) -> bool {
966 return isLoadStoreLegal(ST, Query, Op);
983 [=](const LegalityQuery &Query) -> bool {
984 const LLT Ty = Query.Types[0];
987 if (Size != Query.MMODescrs[0].SizeInBits)
999 .moreElementsIf([=](const LegalityQuery &Query) {
1000 const LLT Ty = Query.Types[0];
1002 shouldWidenLoadResult(Query, Op);
1004 .widenScalarIf([=](const LegalityQuery &Query) {
1005 const LLT Ty = Query.Types[0];
1007 shouldWidenLoadResult(Query, Op);
1010 [=](const LegalityQuery &Query) -> bool {
1011 return !Query.Types[0].isVector() &&
1012 needToSplitMemOp(Query, Op == G_LOAD);
1014 [=](const LegalityQuery &Query) -> std::pair<unsigned, LLT> {
1015 const LLT DstTy = Query.Types[0];
1016 const LLT PtrTy = Query.Types[1];
1019 unsigned MemSize = Query.MMODescrs[0].SizeInBits;
1045 unsigned Align = Query.MMODescrs[0].AlignInBits;
1049 [=](const LegalityQuery &Query) -> bool {
1050 return Query.Types[0].isVector() &&
1051 needToSplitMemOp(Query, Op == G_LOAD);
1053 [=](const LegalityQuery &Query) -> std::pair<unsigned, LLT> {
1054 const LLT DstTy = Query.Types[0];
1055 const LLT PtrTy = Query.Types[1];
1067 if (Query.MMODescrs[0].SizeInBits > MaxSize) {
1076 unsigned NumPieces = Query.MMODescrs[0].SizeInBits / MaxSize;
1089 unsigned MemSize = Query.MMODescrs[0].SizeInBits;
1105 unsigned Align = Query.MMODescrs[0].AlignInBits;
1198 [=](const LegalityQuery &Query) {
1201 const LLT ValTy = Query.Types[0];
1202 const LLT AmountTy = Query.Types[1];
1226 .customIf([=](const LegalityQuery &Query) {
1227 const LLT EltTy = Query.Types[EltTypeIdx];
1228 const LLT VecTy = Query.Types[VecTypeIdx];
1229 const LLT IdxTy = Query.Types[IdxTypeIdx];
1242 .unsupportedIf([=](const LegalityQuery &Query) {
1243 const LLT &EltTy = Query.Types[1].getElementType();
1244 return Query.Types[0] != EltTy;
1255 .legalIf([=](const LegalityQuery &Query) {
1256 const LLT BigTy = Query.Types[BigTyIdx];
1257 const LLT LitTy = Query.Types[LitTyIdx];
1262 [=](const LegalityQuery &Query) {
1263 const LLT BigTy = Query.Types[BigTyIdx];
1268 [=](const LegalityQuery &Query) {
1269 const LLT LitTy = Query.Types[LitTyIdx];
1325 auto notValidElt = [=](const LegalityQuery &Query, unsigned TypeIdx) {
1326 const LLT Ty = Query.Types[TypeIdx];
1339 .lowerIf([=](const LegalityQuery &Query) {
1340 const LLT BigTy = Query.Types[BigTyIdx];
1358 [=](const LegalityQuery &Query) { return notValidElt(Query, LitTyIdx); },
1361 [=](const LegalityQuery &Query) { return notValidElt(Query, BigTyIdx); },
1368 [=](const LegalityQuery &Query) {
1369 const LLT Ty = Query.Types[LitTyIdx];
1376 [=](const LegalityQuery &Query) {
1377 const LLT Ty = Query.Types[BigTyIdx];
1381 [=](const LegalityQuery &Query) {
1384 const LLT &Ty = Query.Types[BigTyIdx];
1393 .legalIf([=](const LegalityQuery &Query) {
1394 const LLT &BigTy = Query.Types[BigTyIdx];
1395 const LLT &LitTy = Query.Types[LitTyIdx];