Home | History | Annotate | Download | only in SelectionDAG

Lines Matching refs:TLI

51   const TargetLowering &TLI;
188 assert(TLI.isShuffleMaskLegal(NewMask, NVT) && "Shuffle not legal?");
193 : TM(dag.getTarget()), TLI(dag.getTargetLoweringInfo()),
336 SelectionDAG &DAG, const TargetLowering &TLI) {
361 TLI.isLoadExtLegal(ISD::EXTLOAD, SVT) &&
362 TLI.ShouldShrinkFPConstant(OrigVT)) {
370 SDValue CPIdx = DAG.getConstantPool(LLVMC, TLI.getPointerTy());
385 const TargetLowering &TLI) {
395 if (TLI.isTypeLegal(intVT)) {
407 TLI.getRegisterType(*DAG.getContext(),
421 SDValue Increment = DAG.getConstant(RegBytes, TLI.getPointerTy());
474 TLI.getShiftAmountTy(Val.getValueType()));
480 Store1 = DAG.getTruncStore(Chain, dl, TLI.isLittleEndian()?Lo:Hi, Ptr,
484 DAG.getConstant(IncrementSize, TLI.getPointerTy()));
486 Store2 = DAG.getTruncStore(Chain, dl, TLI.isLittleEndian()?Hi:Lo, Ptr,
497 const TargetLowering &TLI) {
505 if (TLI.isTypeLegal(intVT)) {
521 EVT RegVT = TLI.getRegisterType(*DAG.getContext(), intVT);
529 SDValue Increment = DAG.getConstant(RegBytes, TLI.getPointerTy());
598 if (TLI.isLittleEndian()) {
603 DAG.getConstant(IncrementSize, TLI.getPointerTy()));
613 DAG.getConstant(IncrementSize, TLI.getPointerTy()));
622 TLI.getShiftAmountTy(Hi.getValueType()));
653 EVT PtrVT = TLI.getPointerTy();
723 TLI.isTypeLegal(MVT::i32)) {
733 if (TLI.isTypeLegal(MVT::i64)) {
740 if (TLI
747 if (TLI.isBigEndian()) std::swap(Lo, Hi);
774 assert(TLI.getTypeAction(*DAG.getContext(), Node->getValueType(i)) ==
779 assert((TLI.getTypeAction(*DAG.getContext(),
803 Action = TLI.getOperationAction(Node->getOpcode(), MVT::Other);
808 Action = TLI.getOperationAction(Node->getOpcode(),
814 Action = TLI.getOperationAction(Node->getOpcode(), InnerType);
818 Action = TLI.getOperationAction(Node->getOpcode(),
831 Action = TLI.getCondCodeAction(CCCode, OpVT);
834 Action = TLI.getOperationAction(Node->getOpcode(),
837 Action = TLI.getOperationAction(Node->getOpcode(), OpVT);
871 Action = TLI.getOperationAction(Node->getOpcode(), Node->getValueType(0));
881 Action = TLI.getOperationAction(Node->getOpcode(), Node->getValueType(0));
900 Action = TLI.getOperationAction(Node->getOpcode(), Node->getValueType(0));
954 Tmp1 = TLI.LowerOperation(Result, DAG);
998 assert(TLI.isTypeLegal(VT.getScalarType())&& "Element type must be legal");
1018 switch (TLI.getOperationAction(ISD::BUILD_VECTOR, Node->getValueType(0))) {
1021 Tmp3 = TLI.LowerOperation(Result, DAG);
1142 switch (TLI.getOperationAction(Node->getOpcode(), VT)) {
1147 if (!TLI.allowsUnalignedMemoryAccesses(LD->getMemoryVT())) {
1149 unsigned ABIAlignment = TLI.getTargetData()->getABITypeAlignment(Ty);
1152 DAG, TLI);
1161 Tmp1 = TLI.LowerOperation(Tmp3, DAG);
1171 EVT NVT = TLI.getTypeToPromoteTo(Node->getOpcode(), VT);
1203 TLI.getLoadExtAction(ExtType, MVT::i1) == TargetLowering::Promote)) {
1249 if (TLI.isLittleEndian()) {
1274 TLI.getShiftAmountTy(Hi.getValueType())));
1304 TLI.getShiftAmountTy(Hi.getValueType())));
1313 switch (TLI.getLoadExtAction(ExtType, SrcVT)) {
1326 Tmp3 = TLI.LowerOperation(Result, DAG);
1334 if (!TLI.allowsUnalignedMemoryAccesses(LD->getMemoryVT())) {
1338 TLI.getTargetData()->getABITypeAlignment(Ty);
1341 DAG, TLI);
1351 if (!TLI.isLoadExtLegal(ISD::EXTLOAD, SrcVT) && TLI.isTypeLegal(SrcVT)) {
1428 switch (TLI.getOperationAction(ISD::STORE, VT)) {
1433 if (!TLI.allowsUnalignedMemoryAccesses(ST->getMemoryVT())) {
1435 unsigned ABIAlignment= TLI.getTargetData()->getABITypeAlignment(Ty);
1438 DAG, TLI);
1442 Tmp1 = TLI.LowerOperation(Result, DAG);
1448 TLI.getTypeToPromoteTo(ISD::STORE, VT), Tmp3);
1485 if (TLI.isLittleEndian()) {
1498 TLI.getShiftAmountTy(Tmp3.getValueType())));
1509 TLI.getShiftAmountTy(Tmp3.getValueType())));
1533 switch (TLI.getTruncStoreAction(ST->getValue().getValueType(), StVT)) {
1538 if (!TLI.allowsUnalignedMemoryAccesses(ST->getMemoryVT())) {
1540 unsigned ABIAlignment= TLI.getTargetData()->getABITypeAlignment(Ty);
1543 DAG, TLI);
1547 Result = TLI.LowerOperation(Result, DAG);
1554 assert(TLI.isTypeLegal(StVT) && "Do not know how to expand this store!");
1593 if (Idx.getValueType().bitsGT(TLI.getPointerTy()))
1594 Idx = DAG.getNode(ISD::TRUNCATE, dl, TLI.getPointerTy(), Idx);
1596 Idx = DAG.getNode(ISD::ZERO_EXTEND, dl, TLI.getPointerTy(), Idx);
1636 if (Idx.getValueType().bitsGT(TLI.getPointerTy()))
1637 Idx = DAG.getNode(ISD::TRUNCATE, dl, TLI.getPointerTy(), Idx);
1639 Idx = DAG.getNode(ISD::ZERO_EXTEND, dl, TLI.getPointerTy(), Idx);
1713 if (TLI.isTypeLegal(IVT)) {
1718 MVT LoadTy = TLI.getPointerTy();
1725 if (TLI.isBigEndian()) {
1748 TLI.getShiftAmountTy(SignBit.getValueType())));
1752 SignBit = DAG.getSetCC(dl, TLI.getSetCCResultType(SignBit.getValueType()),
1766 unsigned SPReg = TLI.getStackPointerRegisterToSaveRestore();
1807 switch (TLI.getCondCodeAction(CCCode, OpVT)) {
1852 TLI.getTargetData()->getPrefTypeAlignment(SrcOp.getValueType().
1864 unsigned DestAlign = TLI
1975 SDValue CPIdx = DAG.getConstantPool(CP, TLI.getPointerTy());
1990 if (TLI.isShuffleMaskLegal(ShuffleVec, Node->getValueType(0))) {
2030 SDValue Callee = DAG.getExternalSymbol(TLI.getLibcallName(LC),
2031 TLI.getPointerTy());
2038 bool isTailCall = isInTailCallPosition(DAG, Node, TLI);
2040 TLI.LowerCallTo(InChain, RetTy, isSigned, !isSigned, false, false,
2041 0, TLI.getLibcallCallingConv(LC), isTailCall,
2072 SDValue Callee = DAG.getExternalSymbol(TLI.getLibcallName(LC),
2073 TLI.getPointerTy());
2077 TLI.LowerCallTo(DAG.getEntryNode(), RetTy, isSigned, !isSigned, false,
2078 false, 0, TLI.getLibcallCallingConv(LC), false,
2110 SDValue Callee = DAG.getExternalSymbol(TLI.getLibcallName(LC),
2111 TLI.getPointerTy());
2116 TLI.LowerCallTo(InChain, RetTy, isSigned, !isSigned, false, false,
2117 0, TLI.getLibcallCallingConv(LC), /*isTailCall=*/false,
2164 const TargetLowering &TLI) {
2175 return TLI.getLibcallName(LC) != 0;
2247 SDValue Callee = DAG.getExternalSymbol(TLI.getLibcallName(LC),
2248 TLI.getPointerTy());
2253 TLI.LowerCallTo(InChain, RetTy, isSigned, !isSigned, false, false,
2254 0, TLI.getLibcallCallingConv(LC), /*isTailCall=*/false,
2284 SDValue WordOff = DAG.getConstant(sizeof(int), TLI.getPointerTy());
2288 TLI.getPointerTy(), StackSlot, WordOff);
2289 if (TLI.isLittleEndian())
2372 DAG.getConstant(1, TLI.getShiftAmountTy(Op0.getValueType()));
2385 SDValue SignBitTest = DAG.getSetCC(dl, TLI.getSetCCResultType(MVT::i64),
2398 SDValue Ne = DAG.getSetCC(dl, TLI.getSetCCResultType(MVT::i64),
2401 SDValue Ge = DAG.getSetCC(dl, TLI.getSetCCResultType(MVT::i64),
2405 EVT SHVT = TLI.getShiftAmountTy(Sel2.getValueType());
2423 SDValue SignSet = DAG.getSetCC(dl, TLI.getSetCCResultType(Op0.getValueType()),
2441 if (TLI.isLittleEndian()) FF <<= 32;
2445 SDValue CPIdx = DAG.getConstantPool(FudgeFactor, TLI.getPointerTy());
2447 CPIdx = DAG.getNode(ISD::ADD, dl, TLI.getPointerTy(), CPIdx, CstOffset);
2485 if (TLI.isOperationLegalOrCustom(ISD::SINT_TO_FP, NewInTy)) {
2492 if (TLI.isOperationLegalOrCustom(ISD::UINT_TO_FP, NewInTy)) {
2526 if (TLI.isOperationLegalOrCustom(ISD::FP_TO_SINT, NewOutTy)) {
2531 if (TLI.isOperationLegalOrCustom(ISD::FP_TO_UINT, NewOutTy)) {
2552 EVT SHVT = TLI.getShiftAmountTy(VT);
2615 EVT ShVT = TLI.getShiftAmountTy(VT);
2666 EVT ShVT = TLI.getShiftAmountTy(VT);
2687 if (!TLI.isOperationLegalOrCustom(ISD::CTPOP, VT) &&
2688 TLI.isOperationLegalOrCustom(ISD::CTLZ, VT))
2827 TLI.LowerCallTo(Node->getOperand(0), Type::getVoidTy(*DAG.getContext()),
2832 TLI.getPointerTy()),
2904 TLI.LowerCallTo(Node->getOperand(0), Type::getVoidTy(*DAG.getContext()),
2908 DAG.getExternalSymbol("abort", TLI.getPointerTy()),
2930 EVT ShiftAmountTy = TLI.getShiftAmountTy(VT);
2969 Tmp2 = DAG.getSetCC(dl, TLI.getSetCCResultType(VT),
2989 SDValue VAListLoad = DAG.getLoad(TLI.getPointerTy(), dl, Tmp1, Tmp2,
2993 if (Align > TLI.getMinStackArgumentAlignment()) {
2996 VAList = DAG.getNode(ISD::ADD, dl, TLI.getPointerTy(), VAList,
2998 TLI.getPointerTy()));
3000 VAList = DAG.getNode(ISD::AND, dl, TLI.getPointerTy(), VAList,
3002 TLI.getPointerTy()));
3006 Tmp3 = DAG.getNode(ISD::ADD, dl, TLI.getPointerTy(), VAList,
3007 DAG.getConstant(TLI
3009 TLI.getPointerTy()));
3024 Tmp1 = DAG.getLoad(TLI.getPointerTy(), dl, Node->getOperand(0),
3065 if (!TLI.isTypeLegal(EltVT))
3066 EltVT = TLI.getTypeToTransformTo(*DAG.getContext(), EltVT);
3094 TLI.getShiftAmountTy(Node->getOperand(0).getValueType())));
3107 if (unsigned SP = TLI.getStackPointerRegisterToSaveRestore()) {
3119 if (unsigned SP = TLI.getStackPointerRegisterToSaveRestore()) {
3141 Tmp2 = DAG.getSetCC(dl, TLI.getSetCCResultType(Tmp1.getValueType()),
3232 if (TLI.isFPImmLegal(CFP->getValueAPF(), Node->getValueType(0)))
3235 Results.push_back(ExpandConstantFP(CFP, true, DAG, TLI));
3239 unsigned Reg = TLI.getExceptionSelectorRegister();
3247 unsigned Reg = TLI.getExceptionAddressRegister();
3256 assert(TLI.isOperationLegalOrCustom(ISD::ADD, VT) &&
3257 TLI.isOperationLegalOrCustom(ISD::XOR, VT) &&
3274 if (TLI.isOperationLegalOrCustom(DivRemOpc, VT) ||
3275 (isDivRemLibcallAvailable(Node, isSigned, TLI) &&
3278 } else if (TLI.isOperationLegalOrCustom(DivOpc, VT)) {
3302 if (TLI.isOperationLegalOrCustom(DivRemOpc, VT) ||
3303 (isDivRemLibcallAvailable(Node, isSigned, TLI) &&
3326 assert(TLI.isOperationLegalOrCustom(ExpandOpcode, VT) &&
3346 bool HasSMUL_LOHI = TLI.isOperationLegalOrCustom(ISD::SMUL_LOHI, VT);
3347 bool HasUMUL_LOHI = TLI.isOperationLegalOrCustom(ISD::UMUL_LOHI, VT);
3348 bool HasMULHS = TLI.isOperationLegalOrCustom(ISD::MULHS, VT);
3349 bool HasMULHU = TLI.isOperationLegalOrCustom(ISD::MULHU, VT);
3431 if (TLI.isOperationLegalOrCustom(Ops[isSigned][0], VT)) {
3434 } else if (TLI.isOperationLegalOrCustom(Ops[isSigned][1], VT)) {
3438 } else if (TLI.isTypeLegal(EVT::getIntegerVT(*DAG.getContext(),
3467 DAG.getConstant(LoSize-1, TLI.getPointerTy()));
3469 DAG.getConstant(LoSize-1, TLI.getPointerTy()));
3485 TLI.getShiftAmountTy(BottomHalf.getValueType()));
3487 TopHalf = DAG.getSetCC(dl, TLI.getSetCCResultType(VT), TopHalf, Tmp1,
3490 TopHalf = DAG.getSetCC(dl, TLI.getSetCCResultType(VT), TopHalf,
3503 TLI.getShiftAmountTy(PairTy)));
3527 EVT PTy = TLI.getPointerTy();
3529 const TargetData &TD = *TLI.getTargetData();
3547 TLI.getPICJumpTableRelocBase(Table, DAG));
3602 LegalizeSetCCCondCode(TLI.getSetCCResultType(Tmp1.getValueType()),
3619 LegalizeSetCCCondCode(TLI.getSetCCResultType(Tmp2.getValueType()),
3654 EVT NVT = TLI.getTypeToPromoteTo(Node->getOpcode(), OVT);
3667 Tmp2 = DAG.getSetCC(dl, TLI.getSetCCResultType(NVT),
3685 DAG.getConstant(DiffBits, TLI.getShiftAmountTy(NVT)));