Lines Matching full:query

138           [=](const LegalityQuery &Query) {
139 return Query.Types[0].getNumElements() <= 2;
143 [=](const LegalityQuery &Query) {
144 return Query.Types[0].getNumElements() <= 4;
148 [=](const LegalityQuery &Query) {
149 return Query.Types[0].getNumElements() <= 16;
155 .customIf([=](const LegalityQuery &Query) {
156 const auto &SrcTy = Query.Types[0];
157 const auto &AmtTy = Query.Types[1];
249 .legalIf([=](const LegalityQuery &Query) {
250 const auto &Ty = Query.Types[0];
331 auto IsPtrVecPred = [=](const LegalityQuery &Query) {
332 const LLT &ValTy = Query.Types[0];
361 .customIf([=](const LegalityQuery &Query) {
362 return HasRCPC3 && Query.Types[0] == s128 &&
363 Query.MMODescrs[0].Ordering == AtomicOrdering::Acquire;
365 .customIf([=](const LegalityQuery &Query) {
366 return Query.Types[0] == s128 &&
367 Query.MMODescrs[0].Ordering != AtomicOrdering::NotAtomic;
394 [=](const LegalityQuery &Query) {
396 return Query.Types[0].isScalar() &&
397 Query.Types[0] != Query.MMODescrs[0].MemoryTy &&
398 Query.Types[0].getSizeInBits() > 32;
403 [=](const LegalityQuery &Query) {
404 const LLT VecTy = Query.Types[0];
411 .customIf([=](const LegalityQuery &Query) {
412 return HasRCPC3 && Query.Types[0] == s128 &&
413 Query.MMODescrs[0].Ordering == AtomicOrdering::Release;
415 .customIf([=](const LegalityQuery &Query) {
416 return Query.Types[0] == s128 &&
417 Query.MMODescrs[0].Ordering != AtomicOrdering::NotAtomic;
431 .lowerIf([=](const LegalityQuery &Query) {
432 return Query.Types[0].isScalar() &&
433 Query.Types[0] != Query.MMODescrs[0].MemoryTy;
444 [=](const LegalityQuery &Query) {
445 const LLT VecTy = Query.Types[0];
475 auto IndexedLoadBasicPred = [=](const LegalityQuery &Query) {
476 LLT LdTy = Query.Types[0];
477 LLT PtrTy = Query.Types[1];
516 .legalIf([=](const LegalityQuery &Query) {
517 const auto &Ty = Query.Types[0];
531 [=](const LegalityQuery &Query) {
532 const LLT &Ty = Query.Types[0];
533 const LLT &SrcTy = Query.Types[1];
539 [=](const LegalityQuery &Query) { return Query.Types[1] == v2s16; },
542 [=](const LegalityQuery &Query) { return Query.Types[1] == v2p0; }, 0,
558 .legalIf([=](const LegalityQuery &Query) {
559 const auto &Ty = Query.Types[1];
560 return (Ty == v8s16 || Ty == v4s16) && Ty == Query.Types[0] && HasFP16;
566 [=](const LegalityQuery &Query) {
567 const LLT &Ty = Query.Types[0];
568 const LLT &SrcTy = Query.Types[1];
579 auto ExtLegalFunc = [=](const LegalityQuery &Query) {
580 unsigned DstSize = Query.Types[0].getSizeInBits();
583 if (Query.Types[0].isVector())
589 const LLT &SrcTy = Query.Types[1];
609 .lowerIf([=](const LegalityQuery &Query) {
610 return (Query.Types[0].getScalarSizeInBits() >
611 Query.Types[1].getScalarSizeInBits() * 2) &&
612 Query.Types[0].isVector() &&
613 (Query.Types[1].getScalarSizeInBits() == 8 ||
614 Query.Types[1].getScalarSizeInBits() == 16);
626 [=](const LegalityQuery &Query) { return Query.Types[0].isVector(); },
628 .lowerIf([=](const LegalityQuery &Query) {
629 LLT DstTy = Query.Types[0];
630 LLT SrcTy = Query.Types[1];
674 .legalIf([=](const LegalityQuery &Query) {
676 (Query.Types[1] == s16 || Query.Types[1] == v4s16 ||
677 Query.Types[1] == v8s16) &&
678 (Query.Types[0] == s32 || Query.Types[0] == s64 ||
679 Query.Types[0] == v4s16 || Query.Types[0] == v8s16);
686 [=](const LegalityQuery &Query) {
687 return Query.Types[1] == s16 && Query.Types[0].getSizeInBits() > 64;
695 [=](const LegalityQuery &Query) {
696 return Query.Types[0].getScalarSizeInBits() <= 64 &&
697 Query.Types[0].getScalarSizeInBits() >
698 Query.Types[1].getScalarSizeInBits();
702 [=](const LegalityQuery &Query) {
703 return Query.Types[1].getScalarSizeInBits() <= 64 &&
704 Query.Types[0].getScalarSizeInBits() <
705 Query.Types[1].getScalarSizeInBits();
722 .legalIf([=](const LegalityQuery &Query) {
724 (Query.Types[0] == s16 || Query.Types[0] == v4s16 ||
725 Query.Types[0] == v8s16) &&
726 (Query.Types[1] == s32 || Query.Types[1] == s64 ||
727 Query.Types[1] == v4s16 || Query.Types[1] == v8s16);
736 [=](const LegalityQuery &Query) {
737 return Query.Types[1].getScalarSizeInBits() <= 64 &&
738 Query.Types[0].getScalarSizeInBits() <
739 Query.Types[1].getScalarSizeInBits();
743 [=](const LegalityQuery &Query) {
744 return Query.Types[0].getScalarSizeInBits() <= 64 &&
745 Query.Types[0].getScalarSizeInBits() >
746 Query.Types[1].getScalarSizeInBits();
790 .unsupportedIf([&](const LegalityQuery &Query) {
791 return Query.Types[0].getSizeInBits() != Query.Types[1].getSizeInBits();
802 .lowerIf([=](const LegalityQuery &Query) {
803 return Query.Types[0].isVector() != Query.Types[1].isVector();
824 LegalityPredicate UseOutlineAtomics = [&ST](const LegalityQuery &Query) {
832 .customIf([UseOutlineAtomics](const LegalityQuery &Query) {
833 return Query.Types[0].getSizeInBits() == 128 &&
834 !UseOutlineAtomics(Query);
889 .unsupportedIf([=](const LegalityQuery &Query) {
890 const LLT &EltTy = Query.Types[1].getElementType();
891 return Query.Types[0] != EltTy;
894 .customIf([=](const LegalityQuery &Query) {
895 const LLT &VecTy = Query.Types[1];
901 [=](const LegalityQuery &Query) {
904 return Query.Types[1].getNumElements() <= 2;
908 [=](const LegalityQuery &Query) {
909 return Query.Types[1].getNumElements() <= 4;
913 [=](const LegalityQuery &Query) {
914 return Query.Types[1].getNumElements() <= 8;
918 [=](const LegalityQuery &Query) {
919 return Query.Types[1].getNumElements() <= 16;
980 .legalIf([=](const LegalityQuery &Query) {
981 return (HasCSSC && typeInSet(0, {s32, s64})(Query));
983 .customIf([=](const LegalityQuery &Query) {
984 return (!HasCSSC && typeInSet(0, {s32, s64})(Query));
988 .legalIf([=](const LegalityQuery &Query) {
989 const LLT &DstTy = Query.Types[0];
990 const LLT &SrcTy = Query.Types[1];
1000 .lowerIf([=](const LegalityQuery &Query) {
1001 return !Query.Types[1].isVector();
1004 [](const LegalityQuery &Query) {
1005 return Query.Types[0].isVector() && Query.Types[1].isVector() &&
1006 Query.Types[0].getNumElements() >
1007 Query.Types[1].getNumElements();
1012 [](const LegalityQuery &Query) {
1013 return Query.Types[0].isVector() && Query.Types[1].isVector() &&
1014 Query.Types[0].getNumElements() <
1015 Query.Types[1].getNumElements();
1027 [=](const LegalityQuery &Query) {
1028 return Query.Types[0].getSizeInBits() <= 128 &&
1029 Query.Types[1].getSizeInBits() <= 64;
1031 [=](const LegalityQuery &Query) {
1032 const LLT DstTy = Query.Types[0];
1033 const LLT SrcTy = Query.Types[1];
1084 [=](const LegalityQuery &Query) { return Query.Types[0] == v4s8; },
1085 [=](const LegalityQuery &Query) { return std::make_pair(0, v4s16); })
1087 [=](const LegalityQuery &Query) { return Query.Types[0] == v2s16; },
1088 [=](const LegalityQuery &Query) { return std::make_pair(0, v2s32); })
1101 .legalIf([=](const LegalityQuery &Query) {
1102 const auto &Ty = Query.Types[1];
1145 .legalIf([=](const LegalityQuery &Query) {
1146 const auto &Ty = Query.Types[1];
1147 return Query.Types[0] == s16 && (Ty == v8s16 || Ty == v4s16) && HasFP16;
1171 [=](const LegalityQuery &Query) {
1172 return Query.Types[1].isVector() &&
1173 Query.Types[1].getElementType() != s8 &&
1174 Query.Types[1].getNumElements() & 1;
1273 [](const LegalityQuery &Query) { return Query.Types[0].isScalar(); },
1274 [=](const LegalityQuery &Query) {
1275 const LLT Ty = Query.Types[0];