Lines Matching refs:TLI

52   const TargetLowering &TLI;
62 return TLI.getSetCCResultType(*DAG.getContext(), VT);
211 assert(TLI.isShuffleMaskLegal(NewMask, NVT) && "Shuffle not legal?");
217 TM(dag.getTarget()), TLI(dag.getTargetLoweringInfo()),
277 TLI.isLoadExtLegal(ISD::EXTLOAD, SVT) &&
278 TLI.ShouldShrinkFPConstant(OrigVT)) {
286 SDValue CPIdx = DAG.getConstantPool(LLVMC, TLI.getPointerTy());
305 const TargetLowering &TLI,
320 if (TLI.isTypeLegal(intVT)) {
334 TLI.getRegisterType(*DAG.getContext(),
348 SDValue Increment = DAG.getConstant(RegBytes, TLI.getPointerTy(AS));
405 TLI.getShiftAmountTy(Val.getValueType()));
411 Store1 = DAG.getTruncStore(Chain, dl, TLI.isLittleEndian()?Lo:Hi, Ptr,
416 DAG.getConstant(IncrementSize, TLI.getPointerTy(AS)));
418 Store2 = DAG.getTruncStore(Chain, dl, TLI.isLittleEndian()?Hi:Lo, Ptr,
431 const TargetLowering &TLI,
442 if (TLI.isTypeLegal(intVT) && TLI.isTypeLegal(LoadedVT)) {
459 MVT RegVT = TLI.getRegisterType(*DAG.getContext(), intVT);
467 SDValue Increment = DAG.getConstant(RegBytes, TLI.getPointerTy());
540 if (TLI.isLittleEndian()) {
566 TLI.getShiftAmountTy(Hi.getValueType()));
597 EVT PtrVT = TLI.getPointerTy();
668 TLI.isTypeLegal(MVT::i32)) {
678 if (TLI.isTypeLegal(MVT::i64)) {
685 if (TLI.isTypeLegal(MVT::i32) && !ST->isVolatile()) {
692 if (TLI.isBigEndian()) std::swap(Lo, Hi);
730 switch (TLI.getOperationAction(ISD::STORE, VT)) {
735 if (!TLI.allowsUnalignedMemoryAccesses(ST->getMemoryVT())) {
737 unsigned ABIAlignment= TLI.getDataLayout()->getABITypeAlignment(Ty);
740 DAG, TLI, this);
744 SDValue Res = TLI.LowerOperation(SDValue(Node, 0), DAG);
750 MVT NVT = TLI.getTypeToPromoteTo(ISD::STORE, VT);
796 if (TLI.isLittleEndian()) {
810 TLI.getShiftAmountTy(Value.getValueType())));
821 TLI.getShiftAmountTy(Value.getValueType())));
840 switch (TLI.getTruncStoreAction(ST->getValue().getSimpleValueType(),
846 if (!TLI.allowsUnalignedMemoryAccesses(ST->getMemoryVT())) {
848 unsigned ABIAlignment= TLI.getDataLayout()->getABITypeAlignment(Ty);
850 ExpandUnalignedStore(cast<StoreSDNode>(Node), DAG, TLI, this);
854 SDValue Res = TLI.LowerOperation(SDValue(Node, 0), DAG);
864 assert(TLI.isTypeLegal(StVT) &&
890 switch (TLI.getOperationAction(Node->getOpcode(), VT)) {
895 if (!TLI.allowsUnalignedMemoryAccesses(LD->getMemoryVT())) {
898 TLI.getDataLayout()->getABITypeAlignment(Ty);
900 ExpandUnalignedLoad(cast<LoadSDNode>(Node), DAG, TLI, RVal, RChain);
905 SDValue Res = TLI.LowerOperation(RVal, DAG);
913 MVT NVT = TLI.getTypeToPromoteTo(Node->getOpcode(), VT);
948 TLI.getLoadExtAction(ExtType, MVT::i1) == TargetLowering::Promote)) {
995 if (TLI.isLittleEndian()) {
1020 TLI.getShiftAmountTy(Hi.getValueType())));
1050 TLI.getShiftAmountTy(Hi.getValueType())));
1059 switch (TLI.getLoadExtAction(ExtType, SrcVT.getSimpleVT())) {
1069 SDValue Res = TLI.LowerOperation(SDValue(Node, 0), DAG);
1077 if (!TLI.allowsUnalignedMemoryAccesses(LD->getMemoryVT())) {
1081 TLI.getDataLayout()->getABITypeAlignment(Ty);
1084 DAG, TLI, Value, Chain);
1091 if (!TLI.isLoadExtLegal(ISD::EXTLOAD, SrcVT) && TLI.isTypeLegal(SrcVT)) {
1153 assert(TLI.getTypeAction(*DAG.getContext(), Node->getValueType(i)) ==
1158 assert((TLI.getTypeAction(*DAG.getContext(),
1172 Action = TLI.getOperationAction(Node->getOpcode(), MVT::Other);
1175 Action = TLI.getOperationAction(Node->getOpcode(),
1178 Action = TLI.getOperationAction(Node->getOpcode(), MVT::Other);
1183 Action = TLI.getOperationAction(Node->getOpcode(),
1189 Action = TLI.getOperationAction(Node->getOpcode(), InnerType);
1193 Action = TLI.getOperationAction(Node->getOpcode(),
1206 Action = TLI.getCondCodeAction(CCCode, OpVT);
1209 Action = TLI.getOperationAction(Node->getOpcode(),
1212 Action = TLI.getOperationAction(Node->getOpcode(), OpVT);
1245 Action = TLI.getOperationAction(Node->getOpcode(), Node->getValueType(0));
1255 Action = TLI.getOperationAction(Node->getOpcode(), Node->getValueType(0));
1260 Action = TLI.getOperationAction(Node->getOpcode(), Node->getValueType(0));
1276 Action = TLI.getOperationAction(Node->getOpcode(), Node->getValueType(0));
1333 SDValue Res = TLI.LowerOperation(SDValue(Node, 0), DAG);
1397 Idx = DAG.getZExtOrTrunc(Idx, dl, TLI.getPointerTy());
1435 Idx = DAG.getZExtOrTrunc(Idx, dl, TLI.getPointerTy());
1510 if (TLI.isTypeLegal(IVT)) {
1515 MVT LoadTy = TLI.getPointerTy();
1522 if (TLI.isBigEndian()) {
1546 TLI.getShiftAmountTy(SignBit.getValueType())));
1564 unsigned SPReg = TLI.getStackPointerRegisterToSaveRestore();
1624 switch (TLI.getCondCodeAction(CCCode, OpVT)) {
1631 if (TLI.isCondCodeLegal(InvCC, OpVT)) {
1641 assert(TLI.getCondCodeAction(ISD::SETOEQ, OpVT)
1646 assert(TLI.getCondCodeAction(ISD::SETUNE, OpVT)
1683 if (TLI.isCondCodeLegal(InvCC, OpVT)) {
1723 TLI.getDataLayout()->getPrefTypeAlignment(SrcOp.getValueType().
1735 unsigned DestAlign = TLI.getDataLayout()->getPrefTypeAlignment(DestType);
1846 SDValue CPIdx = DAG.getConstantPool(CP, TLI.getPointerTy());
1861 if (TLI.isShuffleMaskLegal(ShuffleVec, Node->getValueType(0))) {
1895 SDValue Callee = DAG.getExternalSymbol(TLI.getLibcallName(LC),
1896 TLI.getPointerTy());
1902 // TLI.isUsedByReturnOnly will change it to the right chain if the return
1909 bool isTailCall = TLI.isInTailCallPosition(DAG, Node, TCChain);
1915 0, TLI.getLibcallCallingConv(LC), isTailCall,
1918 std::pair<SDValue, SDValue> CallInfo = TLI.LowerCallTo(CLI);
1944 SDValue Callee = DAG.getExternalSymbol(TLI.getLibcallName(LC),
1945 TLI.getPointerTy());
1950 false, 0, TLI.getLibcallCallingConv(LC),
1954 std::pair<SDValue,SDValue> CallInfo = TLI.LowerCallTo(CLI);
1978 SDValue Callee = DAG.getExternalSymbol(TLI.getLibcallName(LC),
1979 TLI.getPointerTy());
1984 0, TLI.getLibcallCallingConv(LC), /*isTailCall=*/false,
1987 std::pair<SDValue, SDValue> CallInfo = TLI.LowerCallTo(CLI);
2030 const TargetLowering &TLI) {
2041 return TLI.getLibcallName(LC) != 0;
2115 SDValue Callee = DAG.getExternalSymbol(TLI.getLibcallName(LC),
2116 TLI.getPointerTy());
2121 0, TLI.getLibcallCallingConv(LC), /*isTailCall=*/false,
2124 std::pair<SDValue, SDValue> CallInfo = TLI.LowerCallTo(CLI);
2134 static bool isSinCosLibcallAvailable(SDNode *Node, const TargetLowering &TLI) {
2144 return TLI.getLibcallName(LC) != 0;
2149 static bool canCombineSinCosLibcall(SDNode *Node, const TargetLowering &TLI,
2151 if (!isSinCosLibcallAvailable(Node, TLI))
2229 SDValue Callee = DAG.getExternalSymbol(TLI.getLibcallName(LC),
2230 TLI.getPointerTy());
2236 0, TLI.getLibcallCallingConv(LC), /*isTailCall=*/false,
2239 std::pair<SDValue, SDValue> CallInfo = TLI.LowerCallTo(CLI);
2255 if (Op0.getValueType() == MVT::i32 && TLI.isTypeLegal(MVT::f64)) {
2267 if (TLI.isLittleEndian())
2350 DAG.getConstant(1, TLI.getShiftAmountTy(Op0.getValueType()));
2383 EVT SHVT = TLI.getShiftAmountTy(Sel2.getValueType());
2419 if (TLI.isLittleEndian()) FF <<= 32;
2423 SDValue CPIdx = DAG.getConstantPool(FudgeFactor, TLI.getPointerTy());
2465 if (TLI.isOperationLegalOrCustom(ISD::SINT_TO_FP, NewInTy)) {
2472 if (TLI.isOperationLegalOrCustom(ISD::UINT_TO_FP, NewInTy)) {
2506 if (TLI.isOperationLegalOrCustom(ISD::FP_TO_SINT, NewOutTy)) {
2511 if (TLI.isOperationLegalOrCustom(ISD::FP_TO_UINT, NewOutTy)) {
2532 EVT SHVT = TLI.getShiftAmountTy(VT);
2583 EVT ShVT = TLI.getShiftAmountTy(VT);
2637 EVT ShVT = TLI.getShiftAmountTy(VT);
2661 if (!TLI.isOperationLegalOrCustom(ISD::CTPOP, VT) &&
2662 TLI.isOperationLegalOrCustom(ISD::CTLZ, VT))
2855 TLI.getPointerTy()),
2857 std::pair<SDValue, SDValue> CallResult = TLI.LowerCallTo(CLI);
2934 DAG.getExternalSymbol("abort", TLI.getPointerTy()),
2936 std::pair<SDValue, SDValue> CallResult = TLI.LowerCallTo(CLI);
2958 EVT ShiftAmountTy = TLI.getShiftAmountTy(VT);
3018 SDValue VAListLoad = DAG.getLoad(TLI.getPointerTy(), dl, Tmp1, Tmp2,
3023 if (Align > TLI.getMinStackArgumentAlignment()) {
3037 DAG.getConstant(TLI.getDataLayout()->
3054 Tmp1 = DAG.getLoad(TLI.getPointerTy(), dl, Node->getOperand(0),
3097 if (!TLI.isTypeLegal(EltVT)) {
3099 EVT NewEltVT = TLI.getTypeToTransformTo(*DAG.getContext(), EltVT);
3150 DAG.getConstant(Idx, TLI.getVectorIdxTy())));
3155 TLI.getVectorIdxTy())));
3170 TLI.getShiftAmountTy(Node->getOperand(0).getValueType())));
3183 if (unsigned SP = TLI.getStackPointerRegisterToSaveRestore()) {
3195 if (unsigned SP = TLI.getStackPointerRegisterToSaveRestore()) {
3235 if ((TLI.isOperationLegalOrCustom(ISD::FSINCOS, VT) ||
3236 canCombineSinCosLibcall(Node, TLI, TM))
3352 if (!TLI.isFPImmLegal(CFP->getValueAPF(), Node->getValueType(0)))
3358 assert(TLI.isOperationLegalOrCustom(ISD::FADD, VT) &&
3359 TLI.isOperationLegalOrCustom(ISD::FNEG, VT) &&
3368 assert(TLI.isOperationLegalOrCustom(ISD::ADD, VT) &&
3369 TLI.isOperationLegalOrCustom(ISD::XOR, VT) &&
3385 if (TLI.isOperationLegalOrCustom(DivRemOpc, VT) ||
3386 (isDivRemLibcallAvailable(Node, isSigned, TLI) &&
3388 !TLI.isOperationLegalOrCustom(DivOpc, Node->getValueType(0)) &&
3392 } else if (TLI.isOperationLegalOrCustom(DivOpc, VT)) {
3416 if (TLI.isOperationLegalOrCustom(DivRemOpc, VT) ||
3417 (isDivRemLibcallAvailable(Node, isSigned, TLI) &&
3440 assert(TLI.isOperationLegalOrCustom(ExpandOpcode, VT) &&
3460 bool HasSMUL_LOHI = TLI.isOperationLegalOrCustom(ISD::SMUL_LOHI, VT);
3461 bool HasUMUL_LOHI = TLI.isOperationLegalOrCustom(ISD::UMUL_LOHI, VT);
3462 bool HasMULHS = TLI.isOperationLegalOrCustom(ISD::MULHS, VT);
3463 bool HasMULHU = TLI.isOperationLegalOrCustom(ISD::MULHU, VT);
3545 if (TLI.isOperationLegalOrCustom(Ops[isSigned][0], VT)) {
3548 } else if (TLI.isOperationLegalOrCustom(Ops[isSigned][1], VT)) {
3552 } else if (TLI.isTypeLegal(EVT::getIntegerVT(*DAG.getContext(),
3581 DAG.getConstant(LoSize-1, TLI.getPointerTy()));
3583 DAG.getConstant(LoSize-1, TLI.getPointerTy()));
3603 TLI.getShiftAmountTy(BottomHalf.getValueType()));
3621 TLI.getShiftAmountTy(PairTy)));
3645 EVT PTy = TLI.getPointerTy();
3647 const DataLayout &TD = *TLI.getDataLayout();
3666 TLI.getPICJumpTableRelocBase(Table, DAG));
3721 switch (TLI.getBooleanContents(VT.isVector())) {
3749 if (TLI.isCondCodeLegal(InvCC, Tmp1.getSimpleValueType())) {
3757 if (TLI.isCondCodeLegal(SwapInvCC, Tmp1.getSimpleValueType())) {
3831 assert(TLI.isTypeLegal(VT.getScalarType())&& "Element type must be legal");
3839 TLI.getVectorIdxTy()));
3843 TLI.getVectorIdxTy()));
3879 MVT NVT = TLI.getTypeToPromoteTo(Node->getOpcode(), OVT);
3914 DAG.getConstant(DiffBits, TLI.getShiftAmountTy(NVT)));