Lines Matching refs:Query

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