Home | History | Annotate | Download | only in SelectionDAG

Lines Matching refs:MVT

265     assert((VT == MVT::f64 || VT == MVT::f32) && "Invalid type expansion");
267 (VT == MVT::f64) ? MVT::i64 : MVT::i32);
272 while (SVT != MVT::f32) {
273 SVT = (MVT::SimpleValueType)(SVT.getSimpleVT().SimpleTy - 1);
331 MVT RegVT =
387 DAG.getNode(ISD::TokenFactor, dl, MVT::Other, &Stores[0],
420 DAG.getNode(ISD::TokenFactor, dl, MVT::Other, Store1, Store2);
457 MVT RegVT = TLI.getRegisterType(*DAG.getContext(), intVT);
504 SDValue TF = DAG.getNode(ISD::TokenFactor, dl, MVT::Other, &Stores[0],
520 // integer MVT.
564 SDValue TF = DAG.getNode(ISD::TokenFactor, dl, MVT::Other, Lo.getValue(1),
660 if (CFP->getValueType(0) == MVT::f32 &&
661 TLI.isTypeLegal(MVT::i32)) {
664 MVT::i32);
669 if (CFP->getValueType(0) == MVT::f64) {
671 if (TLI.isTypeLegal(MVT::i64)) {
673 zextOrTrunc(64), MVT::i64);
678 if (TLI.isTypeLegal(MVT::i32) && !ST->isVolatile()) {
683 SDValue Lo = DAG.getConstant(IntVal.trunc(32), MVT::i32);
684 SDValue Hi = DAG.getConstant(IntVal.lshr(32).trunc(32), MVT::i32);
695 return DAG.getNode(ISD::TokenFactor, dl, MVT::Other, Lo, Hi);
720 MVT VT = Value.getSimpleValueType();
741 MVT NVT = TLI.getTypeToPromoteTo(ISD::STORE, VT);
825 SDValue Result = DAG.getNode(ISD::TokenFactor, dl, MVT::Other, Lo, Hi);
874 MVT VT = Node->getSimpleValueType(0);
901 MVT NVT = TLI.getTypeToPromoteTo(Node->getOpcode(), VT);
936 (SrcVT != MVT::i1 ||
937 TLI.getLoadExtAction(ExtType, MVT::i1) == TargetLowering::Promote)) {
1003 Ch = DAG.getNode(ISD::TokenFactor, dl, MVT::Other, Lo.getValue(1),
1033 Ch = DAG.getNode(ISD::TokenFactor, dl, MVT::Other, Lo.getValue(1),
1164 Action = TLI.getOperationAction(Node->getOpcode(), MVT::Other);
1170 Action = TLI.getOperationAction(Node->getOpcode(), MVT::Other);
1195 MVT OpVT = Node->getOperand(CompareOperand).getSimpleValueType();
1490 StoreChain = DAG.getNode(ISD::TokenFactor, dl, MVT::Other,
1515 MVT LoadTy = TLI.getPointerTy();
1604 MVT OpVT = LHS.getSimpleValueType();
1974 case MVT::f32: LC = Call_F32; break;
1975 case MVT::f64: LC = Call_F64; break;
1976 case MVT::f80: LC = Call_F80; break;
1977 case MVT::f128: LC = Call_F128; break;
1978 case MVT::ppcf128: LC = Call_PPCF128; break;
1992 case MVT::i8: LC = Call_I8; break;
1993 case MVT::i16: LC = Call_I16; break;
1994 case MVT::i32: LC = Call_I32; break;
1995 case MVT::i64: LC = Call_I64; break;
1996 case MVT::i128: LC = Call_I128; break;
2007 case MVT::i8: LC= isSigned ? RTLIB::SDIVREM_I8 : RTLIB::UDIVREM_I8; break;
2008 case MVT::i16: LC= isSigned ? RTLIB::SDIVREM_I16 : RTLIB::UDIVREM_I16; break;
2009 case MVT::i32: LC= isSigned ? RTLIB::SDIVREM_I32 : RTLIB::UDIVREM_I32; break;
2010 case MVT::i64: LC= isSigned ? RTLIB::SDIVREM_I64 : RTLIB::UDIVREM_I64; break;
2011 case MVT::i128: LC= isSigned ? RTLIB::SDIVREM_I128:RTLIB::UDIVREM_I128; break;
2054 case MVT::i8: LC= isSigned ? RTLIB::SDIVREM_I8 : RTLIB::UDIVREM_I8; break;
2055 case MVT::i16: LC= isSigned ? RTLIB::SDIVREM_I16 : RTLIB::UDIVREM_I16; break;
2056 case MVT::i32: LC= isSigned ? RTLIB::SDIVREM_I32 : RTLIB::UDIVREM_I32; break;
2057 case MVT::i64: LC= isSigned ? RTLIB::SDIVREM_I64 : RTLIB::UDIVREM_I64; break;
2058 case MVT::i128: LC= isSigned ? RTLIB::SDIVREM_I128:RTLIB::UDIVREM_I128; break;
2111 case MVT::f32: LC = RTLIB::SINCOS_F32; break;
2112 case MVT::f64: LC = RTLIB::SINCOS_F64; break;
2113 case MVT::f80: LC = RTLIB::SINCOS_F80; break;
2114 case MVT::f128: LC = RTLIB::SINCOS_F128; break;
2115 case MVT::ppcf128: LC = RTLIB::SINCOS_PPCF128; break;
2161 case MVT::f32: LC = RTLIB::SINCOS_F32; break;
2162 case MVT::f64: LC = RTLIB::SINCOS_F64; break;
2163 case MVT::f80: LC = RTLIB::SINCOS_F80; break;
2164 case MVT::f128: LC = RTLIB::SINCOS_F128; break;
2165 case MVT::ppcf128: LC = RTLIB::SINCOS_PPCF128; break;
2228 if (Op0.getValueType() == MVT::i32 && TLI.isTypeLegal(MVT::f64)) {
2232 SDValue StackSlot = DAG.CreateStackTemporary(MVT::f64);
2247 SDValue SignBit = DAG.getConstant(0x80000000u, MVT::i32);
2248 Op0Mapped = DAG.getNode(ISD::XOR, dl, MVT::i32, Op0, SignBit);
2257 SDValue InitialHi = DAG.getConstant(0x43300000u, MVT::i32);
2263 SDValue Load = DAG.getLoad(MVT::f64, dl, Store2, StackSlot,
2269 MVT::f64);
2271 SDValue Sub = DAG.getNode(ISD::FSUB, dl, MVT::f64, Load, Bias);
2275 if (DestVT == MVT::f64) {
2278 } else if (DestVT.bitsLT(MVT::f64)) {
2281 } else if (DestVT.bitsGT(MVT::f64)) {
2294 if (Op0.getValueType() == MVT::i64 && DestVT == MVT::f64) {
2296 DAG.getConstant(UINT64_C(0x4330000000000000), MVT::i64);
2298 DAG.getConstantFP(BitsToDouble(UINT64_C(0x4530000000100000)), MVT::f64);
2300 DAG.getConstant(UINT64_C(0x4530000000000000), MVT::i64);
2302 SDValue Lo = DAG.getZeroExtendInReg(Op0, dl, MVT::i32);
2303 SDValue Hi = DAG.getNode(ISD::SRL, dl, MVT::i64, Op0,
2304 DAG.getConstant(32, MVT::i64));
2305 SDValue LoOr = DAG.getNode(ISD::OR, dl, MVT::i64, Lo, TwoP52);
2306 SDValue HiOr = DAG.getNode(ISD::OR, dl, MVT::i64, Hi, TwoP84);
2307 SDValue LoFlt = DAG.getNode(ISD::BITCAST, dl, MVT::f64, LoOr);
2308 SDValue HiFlt = DAG.getNode(ISD::BITCAST, dl, MVT::f64, HiOr);
2309 SDValue HiSub = DAG.getNode(ISD::FSUB, dl, MVT::f64, HiFlt,
2311 return DAG.getNode(ISD::FADD, dl, MVT::f64, LoFlt, HiSub);
2316 if (Op0.getValueType() == MVT::i64 && DestVT == MVT::f32) {
2320 SDValue Fast = DAG.getNode(ISD::SINT_TO_FP, dl, MVT::f32, Op0);
2324 SDValue Shr = DAG.getNode(ISD::SRL, dl, MVT::i64, Op0, ShiftConst);
2325 SDValue AndConst = DAG.getConstant(1, MVT::i64);
2326 SDValue And = DAG.getNode(ISD::AND, dl, MVT::i64, Op0, AndConst);
2327 SDValue Or = DAG.getNode(ISD::OR, dl, MVT::i64, And, Shr);
2329 SDValue SignCvt = DAG.getNode(ISD::SINT_TO_FP, dl, MVT::f32, Or);
2330 MVT::f32, SignCvt, SignCvt);
2336 SDValue SignBitTest = DAG.getSetCC(dl, getSetCCResultType(MVT::i64),
2337 Op0, DAG.getConstant(0, MVT::i64), ISD::SETLT);
2338 return DAG.getSelect(dl, MVT::f32, SignBitTest, Slow, Fast);
2343 SDValue And = DAG.getNode(ISD::AND, dl, MVT::i64, Op0,
2344 DAG.getConstant(UINT64_C(0xfffffffffffff800), MVT::i64));
2345 SDValue Or = DAG.getNode(ISD::OR, dl, MVT::i64, And,
2346 DAG.getConstant(UINT64_C(0x800), MVT::i64));
2347 SDValue And2 = DAG.getNode(ISD::AND, dl, MVT::i64, Op0,
2348 DAG.getConstant(UINT64_C(0x7ff), MVT::i64));
2349 SDValue Ne = DAG.getSetCC(dl, getSetCCResultType(MVT::i64),
2350 And2, DAG.getConstant(UINT64_C(0), MVT::i64), ISD::SETNE);
2351 SDValue Sel = DAG.getSelect(dl, MVT::i64, Ne, Or, Op0);
2352 SDValue Ge = DAG.getSetCC(dl, getSetCCResultType(MVT::i64),
2353 Op0, DAG.getConstant(UINT64_C(0x0020000000000000), MVT::i64),
2355 SDValue Sel2 = DAG.getSelect(dl, MVT::i64, Ge, Sel, Op0);
2358 SDValue Sh = DAG.getNode(ISD::SRL, dl, MVT::i64, Sel2,
2360 SDValue Trunc = DAG.getNode(ISD::TRUNCATE, dl, MVT::i32, Sh);
2361 SDValue Fcvt = DAG.getNode(ISD::UINT_TO_FP, dl, MVT::f64, Trunc);
2363 DAG.getConstantFP(BitsToDouble(UINT64_C(0x41f0000000000000)), MVT::f64);
2364 SDValue Fmul = DAG.getNode(ISD::FMUL, dl, MVT::f64, TwoP32, Fcvt);
2365 SDValue Lo = DAG.getNode(ISD::TRUNCATE, dl, MVT::i32, Sel2);
2366 SDValue Fcvt2 = DAG.getNode(ISD::UINT_TO_FP, dl, MVT::f64, Lo);
2367 SDValue Fadd = DAG.getNode(ISD::FADD, dl, MVT::f64, Fmul, Fcvt2);
2368 return DAG.getNode(ISD::FP_ROUND, dl, MVT::f32, Fadd,
2387 case MVT::i8 : FF = 0x43800000ULL; break; // 2^8 (as a float)
2388 case MVT::i16: FF = 0x47800000ULL; break; // 2^16 (as a float)
2389 case MVT::i32: FF = 0x4F800000ULL; break; // 2^32 (as a float)
2390 case MVT::i64: FF = 0x5F800000ULL; break; // 2^64 (as a float)
2401 if (DestVT == MVT::f32)
2402 FudgeInReg = DAG.getLoad(MVT::f32, dl, DAG.getEntryNode(), CPIdx,
2409 MVT::f32, false, false, Alignment);
2434 NewInTy = (MVT::SimpleValueType)(NewInTy.getSimpleVT().SimpleTy+1);
2476 NewOutTy = (MVT::SimpleValueType)(NewOutTy.getSimpleVT().SimpleTy+1);
2509 case MVT::i16:
2513 case MVT::i32:
2523 case MVT::i64:
2646 MVT VT = cast<AtomicSDNode>(Node)->getMemoryVT().getSimpleVT();
2655 case MVT::i8: LC = RTLIB::SYNC_LOCK_TEST_AND_SET_1; break;
2656 case MVT::i16: LC = RTLIB::SYNC_LOCK_TEST_AND_SET_2; break;
2657 case MVT::i32: LC = RTLIB::SYNC_LOCK_TEST_AND_SET_4; break;
2658 case MVT::i64: LC = RTLIB::SYNC_LOCK_TEST_AND_SET_8; break;
2664 case MVT::i8: LC = RTLIB::SYNC_VAL_COMPARE_AND_SWAP_1; break;
2665 case MVT::i16: LC = RTLIB::SYNC_VAL_COMPARE_AND_SWAP_2; break;
2666 case MVT::i32: LC = RTLIB::SYNC_VAL_COMPARE_AND_SWAP_4; break;
2667 case MVT::i64: LC = RTLIB::SYNC_VAL_COMPARE_AND_SWAP_8; break;
2673 case MVT::i8: LC = RTLIB::SYNC_FETCH_AND_ADD_1; break;
2674 case MVT::i16: LC = RTLIB::SYNC_FETCH_AND_ADD_2; break;
2675 case MVT::i32: LC = RTLIB::SYNC_FETCH_AND_ADD_4; break;
2676 case MVT::i64: LC = RTLIB::SYNC_FETCH_AND_ADD_8; break;
2682 case MVT::i8: LC = RTLIB::SYNC_FETCH_AND_SUB_1; break;
2683 case MVT::i16: LC = RTLIB::SYNC_FETCH_AND_SUB_2; break;
2684 case MVT::i32: LC = RTLIB::SYNC_FETCH_AND_SUB_4; break;
2685 case MVT::i64: LC = RTLIB::SYNC_FETCH_AND_SUB_8; break;
2691 case MVT
2692 case MVT::i16: LC = RTLIB::SYNC_FETCH_AND_AND_2; break;
2693 case MVT::i32: LC = RTLIB::SYNC_FETCH_AND_AND_4; break;
2694 case MVT::i64: LC = RTLIB::SYNC_FETCH_AND_AND_8; break;
2700 case MVT::i8: LC = RTLIB::SYNC_FETCH_AND_OR_1; break;
2701 case MVT::i16: LC = RTLIB::SYNC_FETCH_AND_OR_2; break;
2702 case MVT::i32: LC = RTLIB::SYNC_FETCH_AND_OR_4; break;
2703 case MVT::i64: LC = RTLIB::SYNC_FETCH_AND_OR_8; break;
2709 case MVT::i8: LC = RTLIB::SYNC_FETCH_AND_XOR_1; break;
2710 case MVT::i16: LC = RTLIB::SYNC_FETCH_AND_XOR_2; break;
2711 case MVT::i32: LC = RTLIB::SYNC_FETCH_AND_XOR_4; break;
2712 case MVT::i64: LC = RTLIB::SYNC_FETCH_AND_XOR_8; break;
2718 case MVT::i8: LC = RTLIB::SYNC_FETCH_AND_NAND_1; break;
2719 case MVT::i16: LC = RTLIB::SYNC_FETCH_AND_NAND_2; break;
2720 case MVT::i32: LC = RTLIB::SYNC_FETCH_AND_NAND_4; break;
2721 case MVT::i64: LC = RTLIB::SYNC_FETCH_AND_NAND_8; break;
2765 Results.push_back(DAG.getConstant(0, MVT::i32));
3484 if (WideVT == MVT::i16)
3486 else if (WideVT == MVT::i32)
3488 else if (WideVT == MVT::i64)
3490 else if (WideVT == MVT::i128)
3584 Tmp1 = DAG.getNode(ISD::BRIND, dl, MVT::Other, LD.getValue(1), Addr);
3594 Tmp1 = DAG.getNode(ISD::BR_CC, dl, MVT::Other,
3603 Tmp1 = DAG.getNode(ISD::BR_CC, dl, MVT::Other, Tmp1,
3727 MVT OVT = Node->getSimpleValueType(0);
3733 MVT NVT = TLI.getTypeToPromoteTo(Node->getOpcode(), OVT);