Lines Matching defs:TLI

71     const TargetLowering &TLI;
331 : DAG(D), TLI(D.getTargetLoweringInfo()), Level(BeforeLegalizeTypes),
352 return LegalTypes ? TLI.getScalarShiftAmountTy(LHSTy)
353 : TLI.getPointerTy();
360 return TLI.isTypeLegal(VT);
366 return TLI.getSetCCResultType(*DAG.getContext(), VT);
428 const TargetLowering &TLI,
452 !TLI.isOperationLegalOrCustom(ISD::FSUB, Op.getValueType()))
456 if (char V = isNegatibleForFree(Op.getOperand(0), LegalOperations, TLI,
460 return isNegatibleForFree(Op.getOperand(1), LegalOperations, TLI, Options,
474 if (char V = isNegatibleForFree(Op.getOperand(0), LegalOperations, TLI,
478 return isNegatibleForFree(Op.getOperand(1), LegalOperations, TLI, Options,
484 return isNegatibleForFree(Op.getOperand(0), LegalOperations, TLI, Options,
720 if (!TLI.SimplifyDemandedBits(Op, Demanded, KnownZero, KnownOne, TLO))
762 ? (TLI.isLoadExtLegal(ISD::ZEXTLOAD, MemVT) ? ISD::ZEXTLOAD
789 if (!TLI.isOperationLegal(ISD::ANY_EXTEND, PVT))
795 if (!TLI.isOperationLegal(ISD::SIGN_EXTEND_INREG, PVT))
839 if (TLI.isTypeDesirableForOp(Opc, VT))
845 if (TLI.IsDesirableToPromoteOp(Op, PVT)) {
897 if (TLI.isTypeDesirableForOp(Opc, VT))
903 if (TLI.IsDesirableToPromoteOp(Op, PVT)) {
941 if (TLI.isTypeDesirableForOp(Opc, VT))
947 if (TLI.IsDesirableToPromoteOp(Op, PVT)) {
970 if (TLI.isTypeDesirableForOp(Opc, VT))
976 if (TLI.IsDesirableToPromoteOp(Op, PVT)) {
984 ? (TLI.isLoadExtLegal(ISD::ZEXTLOAD, MemVT) ? ISD::ZEXTLOAD
1209 TLI.hasTargetDAGCombine((ISD::NodeType)N->getOpcode())) {
1215 RV = TLI.PerformDAGCombine(N, DagCombineInfo);
1436 if (!LegalOperations && TLI.isOffsetFoldingLegal(GA) && N1C &&
1562 !TLI.isOperationLegal(ISD::SIGN_EXTEND, MVT::i1)) {
1633 static SDValue tryFoldToZero(SDLoc DL, const TargetLowering &TLI, EVT VT,
1638 if (!LegalOperations || TLI.isOperationLegal(ISD::BUILD_VECTOR, VT))
1665 return tryFoldToZero(SDLoc(N), TLI, VT, DAG, LegalOperations, LegalTypes);
1720 if (!LegalOperations && TLI.isOffsetFoldingLegal(GA)) {
1953 if (TLI.isPow2DivCheap())
1986 if (N1C && !N1C->isNullValue() && !TLI.isIntDivCheap()) {
2038 if (N1C && !N1C->isNullValue() && !TLI.isIntDivCheap()) {
2173 if (TLI.isOperationLegal(ISD::MUL, NewVT)) {
2209 if (TLI.isOperationLegal(ISD::MUL, NewVT)) {
2232 TLI.isOperationLegal(LoOp, N->getValueType(0)))) {
2242 TLI.isOperationLegal(HiOp, N->getValueType(1)))) {
2260 TLI.isOperationLegal(LoOpt.getOpcode(), LoOpt.getValueType())))
2271 TLI.isOperationLegal(HiOpt.getOpcode(), HiOpt.getValueType())))
2291 if (TLI.isOperationLegal(ISD::MUL, NewVT)) {
2321 if (TLI.isOperationLegal(ISD::MUL, NewVT)) {
2395 (!LegalTypes || TLI.isTypeDesirableForOp(N->getOpcode(), Op0VT))) ||
2397 (!TLI.isZExtFree(VT, Op0VT) ||
2398 !TLI.isTruncateFree(Op0VT, VT)) &&
2399 TLI.isTypeLegal(Op0VT))) &&
2402 (!LegalOperations || TLI.isOperationLegal(N->getOpcode(), Op0VT))) {
2617 bool CanZextLoadProfitably = TLI.isLoadExtLegal(ISD::ZEXTLOAD,
2714 (TLI.isCondCodeLegal(Result, LL.getSimpleValueType()) &&
2715 TLI.isOperationLegal(ISD::SETCC,
2744 TLI.isLoadExtLegal(ISD::ZEXTLOAD, MemVT))) {
2764 TLI.isLoadExtLegal(ISD::ZEXTLOAD, MemVT))) {
2792 (!LegalOperations || TLI.isLoadExtLegal(ISD::ZEXTLOAD, ExtVT))) {
2808 (!LegalOperations || TLI.isLoadExtLegal(ISD::ZEXTLOAD, ExtVT))) {
2817 if (TLI.isBigEndian()) {
2847 if (!TLI.isLegalAddImmediate(ADDC.getSExtValue())) {
2857 if (TLI.isLegalAddImmediate(ADDC.getSExtValue())) {
2891 if (!TLI.isOperationLegal(ISD::BSWAP, VT))
3067 if (!TLI.isOperationLegal(ISD::BSWAP, VT))
3121 if (TLI.isOperationLegalOrCustom(ISD::ROTL, VT))
3123 if (TLI.isOperationLegalOrCustom(ISD::ROTR, VT))
3237 (TLI.isCondCodeLegal(Result, LL.getSimpleValueType()) &&
3238 TLI.isOperationLegal(ISD::SETCC,
3311 if (!TLI.isTypeLegal(VT)) return 0;
3314 bool HasROTL = TLI.isOperationLegalOrCustom(ISD::ROTL, VT);
3315 bool HasROTR = TLI.isOperationLegalOrCustom(ISD::ROTR, VT);
3473 TLI.isCondCodeLegal(NotCC, LHS.getSimpleValueType())) {
3544 return tryFoldToZero(SDLoc(N), TLI, VT, DAG, LegalOperations, LegalTypes);
3825 TLI.isOperationLegal(ISD::SIGN_EXTEND_INREG, ExtVT)))
3861 TLI.isOperationLegalOrCustom(ISD::SIGN_EXTEND, TruncVT) &&
3862 TLI.isOperationLegalOrCustom(ISD::TRUNCATE, VT) &&
3863 TLI.isTruncateFree(VT, TruncVT)) {
4016 if (!LegalTypes || TLI.isTypeDesirableForOp(ISD::SRL, SmallVT)) {
4215 TLI.getBooleanContents(false) ==
4263 if (TLI.isOperationLegalOrCustom(ISD::SELECT_CC, MVT::Other) &&
4264 TLI.isOperationLegalOrCustom(ISD::SELECT_CC, VT))
4336 if (TLI.getTypeAction(*DAG.getContext(), VT) !=
4412 const TargetLowering &TLI) {
4414 bool isTruncFree = TLI.isTruncateFree(N->getValueType(0), N0.getValueType());
4545 if (!LegalOperations || TLI.isOperationLegal(ISD::SIGN_EXTEND_INREG,
4562 TLI.isLoadExtLegal(ISD::SEXTLOAD, N0.getValueType()))) {
4566 DoXform = ExtendUsesToFormExtLoad(N, N0, ISD::SIGN_EXTEND, SetCCs, TLI);
4590 TLI.isLoadExtLegal(ISD::SEXTLOAD, MemVT)) {
4610 TLI.isLoadExtLegal(ISD::SEXTLOAD, N0.getValueType()) &&
4611 (!LegalOperations && TLI.isOperationLegal(N0.getOpcode(), VT))) {
4618 SetCCs, TLI);
4644 TLI.getBooleanContents(true) ==
4685 TLI.isOperationLegal(ISD::SETCC, getSetCCResultType(VT)))) {
4696 if ((!LegalOperations || TLI.isOperationLegal(ISD::ZERO_EXTEND, VT)) &&
4795 (!LegalOperations || TLI.isOperationLegal(ISD::AND, VT))) {
4827 (!TLI.isTruncateFree(N0.getOperand(0).getOperand(0).getValueType(),
4829 !TLI.isZExtFree(N0.getValueType(), VT))) {
4848 TLI.isLoadExtLegal(ISD::ZEXTLOAD, N0.getValueType()))) {
4852 DoXform = ExtendUsesToFormExtLoad(N, N0, ISD::ZERO_EXTEND, SetCCs, TLI);
4876 TLI.isLoadExtLegal(ISD::ZEXTLOAD, N0.getValueType()) &&
4877 (!LegalOperations && TLI.isOperationLegal(N0.getOpcode(), VT))) {
4884 SetCCs, TLI);
4913 TLI.isLoadExtLegal(ISD::ZEXTLOAD, MemVT)) {
5051 !TLI.isTruncateFree(N0.getOperand(0).getOperand(0).getValueType(),
5071 TLI.isLoadExtLegal(ISD::EXTLOAD, N0.getValueType()))) {
5075 DoXform = ExtendUsesToFormExtLoad(N, N0, ISD::ANY_EXTEND, SetCCs, TLI);
5229 if (LegalOperations && !TLI.isLoadExtLegal(ExtType, ExtVT))
5272 ExtVT == VT && TLI.isNarrowingProfitable(N0.getValueType(), VT)) {
5316 if (TLI.isBigEndian()) {
5394 (!LegalOperations || TLI.isOperationLegal(ISD::SIGN_EXTEND, VT)))
5433 TLI.isLoadExtLegal(ISD::SEXTLOAD, EVT))) {
5449 TLI.isLoadExtLegal(ISD::SEXTLOAD, EVT))) {
5475 bool isLE = TLI.isLittleEndian();
5528 EVT IndexTy = TLI.getVectorIdxTy();
5586 if (!LegalTypes || TLI.isTypeDesirableForOp(N0.getOpcode(), VT)) {
5670 unsigned NewAlign = TLI.getDataLayout()->
5674 (!LegalOperations || TLI.isOperationLegal(ISD::LOAD, VT)))
5715 TLI.isOperationLegal(Res.getNode()->getOpcode(), VT))
5737 (!LegalOperations || TLI.isOperationLegal(ISD::LOAD, VT)) &&
5738 TLI.isLoadBitCastBeneficial(N0.getValueType(), VT)) {
5740 unsigned Align = TLI.getDataLayout()->
5762 if (((N0.getOpcode() == ISD::FNEG && !TLI.isFNegFree(N0.getValueType())) ||
5763 (N0.getOpcode() == ISD::FABS && !TLI.isFAbsFree(N0.getValueType()))) &&
5912 bool isLE = TLI.isLittleEndian();
5966 if (TLI.isBigEndian())
5998 if ((!LegalOperations || TLI.isOperationLegalOrCustom(ISD::FSUB, VT)) &&
5999 isNegatibleForFree(N1, LegalOperations, TLI, &DAG.getTarget().Options) == 2)
6003 if ((!LegalOperations || TLI.isOperationLegalOrCustom(ISD::FSUB, VT)) &&
6004 isNegatibleForFree(N0, LegalOperations, TLI, &DAG.getTarget().Options) == 2)
6041 TLI.isOperationLegalOrCustom(ISD::FMUL, VT) &&
6167 (!LegalOperations || TLI.isOperationLegalOrCustom(ISD::FMA, VT))) {
6208 if (isNegatibleForFree(N1, LegalOperations, TLI, &DAG.getTarget().Options))
6210 if (!LegalOperations || TLI.isOperationLegal(ISD::FNEG, VT))
6214 if (isNegatibleForFree(N1, LegalOperations, TLI, &DAG.getTarget().Options))
6230 if (N10 == N0 && isNegatibleForFree(N11, LegalOperations, TLI,
6234 if (N11 == N0 && isNegatibleForFree(N10, LegalOperations, TLI,
6244 (!LegalOperations || TLI.isOperationLegalOrCustom(ISD::FMA, VT))) {
6281 const TargetLowering &TLI = DAG.getTargetLoweringInfo();
6311 if (!LegalOperations || TLI.isOperationLegal(ISD::FNEG, VT))
6315 if (char LHSNeg = isNegatibleForFree(N0, LegalOperations, TLI,
6317 if (char RHSNeg = isNegatibleForFree(N1, LegalOperations, TLI,
6390 (!LegalOperations || TLI.isOperationLegal(ISD::FNEG, VT))) {
6420 const TargetLowering &TLI = DAG.getTargetLoweringInfo();
6444 // TLI.isOperationLegalOrCustom(llvm::ISD::ConstantFP, VT) ||
6445 TLI.isOperationLegal(llvm::ISD::ConstantFP, VT) ||
6446 TLI.isFPImmLegal(Recip, VT)))
6452 if (char LHSNeg = isNegatibleForFree(N0, LegalOperations, TLI,
6454 if (char RHSNeg = isNegatibleForFree(N1, LegalOperations, TLI,
6497 if (!LegalOperations || TLI.isOperationLegal(ISD::FABS, VT))
6500 if (!LegalOperations || TLI.isOperationLegal(ISD::FNEG, VT))
6542 TLI.isOperationLegalOrCustom(llvm::ISD::ConstantFP, VT)))
6547 if (!TLI.isOperationLegalOrCustom(ISD::SINT_TO_FP, OpVT) &&
6548 TLI.isOperationLegalOrCustom(ISD::UINT_TO_FP, OpVT)) {
6559 if (TLI.isOperationLegalOrCustom(ISD::SELECT_CC, MVT::Other)) {
6564 TLI.isOperationLegalOrCustom(llvm::ISD::ConstantFP, VT))) {
6577 TLI.isOperationLegalOrCustom(llvm::ISD::ConstantFP, VT))) {
6599 TLI.isOperationLegalOrCustom(llvm::ISD::ConstantFP, VT)))
6604 if (!TLI.isOperationLegalOrCustom(ISD::UINT_TO_FP, OpVT) &&
6605 TLI.isOperationLegalOrCustom(ISD::SINT_TO_FP, OpVT)) {
6616 if (TLI.isOperationLegalOrCustom(ISD::SELECT_CC, MVT::Other)) {
6621 TLI.isOperationLegalOrCustom(llvm::ISD::ConstantFP, VT))) {
6736 TLI.isLoadExtLegal(ISD::EXTLOAD, N0.getValueType()))) {
6768 if (!TLI.isFNegFree(VT) && N0.getOpcode() == ISD::BITCAST &&
6855 if (!TLI.isFAbsFree(VT) &&
6887 TLI.isOperationLegalOrCustom(ISD::BR_CC,
7057 const TargetLowering &TLI) {
7090 return TLI.isLegalAddressingMode(AM, VT.getTypeForEVT(*DAG.getContext()));
7110 if (!TLI.isIndexedLoadLegal(ISD::PRE_INC, VT) &&
7111 !TLI.isIndexedLoadLegal(ISD::PRE_DEC, VT))
7118 if (!TLI.isIndexedStoreLegal(ISD::PRE_INC, VT) &&
7119 !TLI.isIndexedStoreLegal(ISD::PRE_DEC, VT))
7137 if (!TLI.getPreIndexedAddressParts(N, BasePtr, Offset, AM, DAG))
7233 if (!canFoldInAddressingMode(Ptr.getNode(), Use, DAG, TLI))
7341 if (!TLI.isIndexedLoadLegal(ISD::POST_INC, VT) &&
7342 !TLI.isIndexedLoadLegal(ISD::POST_DEC, VT))
7349 if (!TLI.isIndexedStoreLegal(ISD::POST_INC, VT) &&
7350 !TLI.isIndexedStoreLegal(ISD::POST_DEC, VT))
7371 if (TLI.getPostIndexedAddressParts(N, Op, BasePtr, Offset, AM, DAG)) {
7402 if (!canFoldInAddressingMode(Use, UseUse, DAG, TLI))
7539 TLI.getTargetMachine().getSubtarget<TargetSubtargetInfo>().useAA();
7630 const TargetLowering &TLI = LS.DAG->getTargetLoweringInfo();
7631 if (!TLI.isTruncateFree(LS.Inst->getValueType(0),
7750 const TargetLowering &TLI = DAG->getTargetLoweringInfo();
7754 if (!TLI.isTypeLegal(SliceType))
7758 if (!TLI.isOperationLegal(ISD::LOAD, SliceType))
7768 if (!TLI.isLegalAddImmediate(getOffsetFromBase()))
7772 if (!TLI.isOperationLegal(ISD::ADD, PtrType))
7778 !TLI.isOperationLegal(ISD::ZERO_EXTEND, TruncateType))
7854 const TargetLowering &TLI = DAG->getTargetLoweringInfo();
7856 const TargetRegisterClass *ResRC = TLI.getRegClassFor(ResVT.getSimpleVT());
7858 TLI.getRegClassFor(Use->getOperand(0).getValueType().getSimpleVT());
7859 if (ArgRC == ResRC || !TLI.isOperationLegal(ISD::LOAD, ResVT))
7864 const TargetRegisterInfo *TRI = TLI.getTargetMachine().getRegisterInfo();
7872 unsigned RequiredAlignment = TLI.getDataLayout()->getABITypeAlignment(
7879 if (!TLI.isOperationLegal(ISD::LOAD, ResVT))
7943 const TargetLowering &TLI = LoadedSlices[0].DAG->getTargetLoweringInfo();
7967 if (!TLI.hasPairedLoad(LoadedType, RequiredAlignment)) {
8330 !(TLI.isOperationLegalOrCustom(Opc, NewVT) &&
8331 TLI.isNarrowingProfitable(VT, NewVT))) {
8351 if (TLI.isBigEndian())
8356 if (NewAlign < TLI.getDataLayout()->getABITypeAlignment(NewVTTy))
8410 if (!TLI.isOperationLegal(ISD::LOAD, IntVT) ||
8411 !TLI.isOperationLegal(ISD::STORE, IntVT) ||
8412 !TLI.isDesirableToTransformToIntegerOp(ISD::LOAD, VT) ||
8413 !TLI.isDesirableToTransformToIntegerOp(ISD::STORE, VT))
8419 unsigned ABIAlign = TLI.getDataLayout()->getABITypeAlignment(IntVTTy);
8730 if (TLI.isTypeLegal(StoreTy))
8733 else if (TLI.getTypeAction(*DAG.getContext(), StoreTy) ==
8736 TLI.getTypeToTransformTo(*DAG.getContext(), StoredVal.getValueType());
8737 if (TLI.isTruncStoreLegal(LegalizedStoredValueTy, StoreTy))
8743 if (TLI.isTypeLegal(Ty))
8781 assert(TLI.isTypeLegal(Ty) && "Illegal vector store");
8789 bool IsLE = TLI.isLittleEndian();
8915 if (TLI.isTypeLegal(StoreTy))
8921 if (TLI.isTypeLegal(StoreTy))
8924 else if (TLI.getTypeAction(*DAG.getContext(), StoreTy) ==
8927 TLI.getTypeToTransformTo(*DAG.getContext(), StoreTy);
8928 if (TLI.isTruncStoreLegal(LegalizedStoredValueTy, StoreTy) &&
8929 TLI.isLoadExtLegal(ISD::ZEXTLOAD, StoreTy) &&
8930 TLI.isLoadExtLegal(ISD::SEXTLOAD, StoreTy) &&
8931 TLI.isLoadExtLegal(ISD::EXTLOAD, StoreTy))
9028 unsigned Align = TLI.getDataLayout()->
9032 TLI.isOperationLegalOrCustom(ISD::STORE, SVT)))
9060 TLI.isOperationLegalOrCustom(ISD::STORE, MVT::i32)) {
9068 if ((TLI.isTypeLegal(MVT::i64) && !LegalOperations &&
9070 TLI.isOperationLegalOrCustom(ISD::STORE, MVT::i64)) {
9078 TLI.isOperationLegalOrCustom(ISD::STORE, MVT::i32)) {
9085 if (TLI.isBigEndian()) std::swap(Lo, Hi);
9130 TLI.getTargetMachine().getSubtarget<TargetSubtargetInfo>().useAA();
9206 TLI.isTruncStoreLegal(Value.getOperand(0).getValueType(),
9246 if (LegalOperations && !TLI.isOperationLegal(ISD::BUILD_VECTOR, VT))
9333 EVT IndexTy = TLI.getVectorIdxTy();
9355 if (NVT.bitsLT(LVT) && !TLI.isTruncateFree(LVT, NVT))
9431 TLI.getDataLayout()
9434 if (NewAlign > Align || !TLI.isOperationLegalOrCustom(ISD::LOAD, LVT))
9446 if (TLI.isBigEndian())
9463 ISD::LoadExtType ExtType = TLI.isLoadExtLegal(ISD::ZEXTLOAD, LVT)
9564 bool isLE = TLI.isLittleEndian();
9655 if (!TLI.isOperationLegalOrCustom(Opcode, NVT))
9697 !TLI.isOperationLegalOrCustom(ISD::VECTOR_SHUFFLE, VT))
9833 if (!TLI.isTypeLegal(NVT) || !TLI.isTypeLegal(Scalar.getValueType()))
10178 if (!TLI.isVectorClearMaskLegal(Indices, RVT))
10370 !TLI.isOperationLegalOrCustom(TheSelect->getOpcode(),
10495 if (TLI.isTypeLegal(N2.getValueType()) &&
10496 (TLI.getOperationAction(ISD::ConstantFP, N2.getValueType()) !=
10506 const DataLayout &TD = *TLI.getDataLayout();
10510 SDValue CPIdx = DAG.getConstantPool(CA, TLI.getPointerTy(),
10612 TLI.getBooleanContents(N0.getValueType().isVector()) ==
10623 TLI.isOperationLegal(ISD::SETCC,
10662 TLI.isOperationLegal(ISD::SETCC, getSetCCResultType(XType))) {
10672 TLI.isOperationLegal(ISD::CTLZ, XType))) {
10737 return TLI.SimplifySetCC(VT, N0, N1, Cond, foldBooleans, DagCombineInfo, DL);
10746 SDValue S = TLI.BuildSDIV(N, DAG, LegalOperations, &Built);
10760 SDValue S = TLI.BuildUDIV(N, DAG, LegalOperations, &Built);
10867 TLI.getTargetMachine().getSubtarget<TargetSubtargetInfo>().useAA();