Lines Matching defs:DstTy
312 Value *EmitConversionToBool(Value *Src, QualType DstTy);
318 llvm::Type *DstTy, SourceLocation Loc);
362 llvm::Type *SrcTy, llvm::Type *DstTy,
365 EmitScalarConversion(Value *Src, QualType SrcTy, QualType DstTy,
371 Value *EmitFixedPointConversion(Value *Src, QualType SrcTy, QualType DstTy,
377 QualType SrcTy, QualType DstTy,
959 QualType DstType, llvm::Type *DstTy, SourceLocation Loc) {
961 if (!isa<llvm::IntegerType>(DstTy))
1032 llvm::Type *DstTy = Dst->getType();
1033 (void)DstTy; // Only used in assert()
1038 assert(isa<llvm::IntegerType>(SrcTy) && isa<llvm::IntegerType>(DstTy) &&
1143 llvm::Type *DstTy = Dst->getType();
1145 assert(isa<llvm::IntegerType>(SrcTy) && isa<llvm::IntegerType>(DstTy) &&
1153 unsigned DstBits = DstTy->getScalarSizeInBits();
1185 llvm::Type *DstTy = Dst->getType();
1196 unsigned DstBits = DstTy->getScalarSizeInBits();
1393 llvm::Type *DstTy,
1402 DstElementTy = cast<llvm::VectorType>(DstTy)->getElementType();
1409 DstElementTy = DstTy;
1421 return Builder.CreateIntCast(Src, DstTy, InputSigned, "conv");
1423 return Builder.CreateSIToFP(Src, DstTy, "conv");
1424 return Builder.CreateUIToFP(Src, DstTy, "conv");
1437 return Builder.CreateCall(CGF.CGM.getIntrinsic(IID, {DstTy, SrcTy}), Src);
1441 return Builder.CreateFPToSI(Src, DstTy, "conv");
1442 return Builder.CreateFPToUI(Src, DstTy, "conv");
1446 return Builder.CreateFPTrunc(Src, DstTy, "conv");
1447 return Builder.CreateFPExt(Src, DstTy, "conv");
1503 llvm::Type *DstTy = ConvertType(DstType);
1508 if (DstTy->isFloatingPointTy()) {
1511 CGF.CGM.getIntrinsic(llvm::Intrinsic::convert_from_fp16, DstTy),
1531 if (SrcTy == DstTy) {
1542 if (auto DstPT = dyn_cast<llvm::PointerType>(DstTy)) {
1555 return Builder.CreateIntToPtr(IntResult, DstTy, "conv");
1560 assert(isa<llvm::IntegerType>(DstTy) && "not ptr->int?");
1561 return Builder.CreatePtrToInt(Src, DstTy, "conv");
1573 unsigned NumElements = cast<llvm::FixedVectorType>(DstTy)->getNumElements();
1578 return EmitScalarCast(Src, SrcType, DstType, SrcTy, DstTy, Opts);
1580 if (isa<llvm::VectorType>(SrcTy) || isa<llvm::VectorType>(DstTy)) {
1583 llvm::TypeSize DstSize = DstTy->getPrimitiveSizeInBits();
1585 return Builder.CreateBitCast(Src, DstTy, "conv");
1595 llvm::Type *DstElementTy = cast<llvm::VectorType>(DstTy)->getElementType();
1607 return Builder.CreateIntCast(Src, DstTy, false, "conv");
1611 return Builder.CreateFPTrunc(Src, DstTy, "conv");
1614 return Builder.CreateFPExt(Src, DstTy, "conv");
1619 llvm::Type *ResTy = DstTy;
1628 EmitFloatConversionCheck(OrigSrc, OrigSrcType, Src, SrcType, DstType, DstTy,
1641 return Builder.CreateFPTrunc(Src, DstTy);
1643 DstTy = CGF.FloatTy;
1646 Res = EmitScalarCast(Src, SrcType, DstType, SrcTy, DstTy, Opts);
1648 if (DstTy != ResTy) {
1671 QualType DstTy,
1677 CGF.getContext().getFixedPointSemantics(DstTy));
1678 else if (DstTy->isRealFloatingType())
1681 ConvertType(DstTy));
1684 auto DstFPSema = CGF.getContext().getFixedPointSemantics(DstTy);
1686 if (DstTy->isIntegerType())
1702 CodeGenFunction::ComplexPairTy Src, QualType SrcTy, QualType DstTy,
1708 if (DstTy->isBooleanType()) {
1710 Src.first = EmitScalarConversion(Src.first, SrcTy, DstTy, Loc);
1711 Src.second = EmitScalarConversion(Src.second, SrcTy, DstTy, Loc);
1719 return EmitScalarConversion(Src.first, SrcTy, DstTy, Loc);
1877 llvm::Type *DstTy = ConvertType(DstType);
1880 if (SrcTy == DstTy)
1888 assert(DstTy->isVectorTy() &&
1892 *DstEltTy = cast<llvm::VectorType>(DstTy)->getElementType();
1912 Res = Builder.CreateIntCast(Src, DstTy, InputSigned, "conv");
1914 Res = Builder.CreateSIToFP(Src, DstTy, "conv");
1916 Res = Builder.CreateUIToFP(Src, DstTy, "conv");
1920 Res = Builder.CreateFPToSI(Src, DstTy, "conv");
1922 Res = Builder.CreateFPToUI(Src, DstTy, "conv");
1927 Res = Builder.CreateFPTrunc(Src, DstTy, "conv");
1929 Res = Builder.CreateFPExt(Src, DstTy, "conv");
2263 llvm::Type *DstTy = ConvertType(DestTy);
2265 (!SrcTy->isPtrOrPtrVectorTy() || !DstTy->isPtrOrPtrVectorTy() ||
2266 SrcTy->getPointerAddressSpace() == DstTy->getPointerAddressSpace()) &&
2315 if (auto *ScalableDstTy = dyn_cast<llvm::ScalableVectorType>(DstTy)) {
2330 if (Result->getType() != DstTy)
2331 Result = Builder.CreateBitCast(Result, DstTy);
2341 if (auto *FixedDstTy = dyn_cast<llvm::FixedVectorType>(DstTy)) {
2354 return Builder.CreateExtractVector(DstTy, Src, Zero, "cast.fixed");
2366 isa<llvm::ScalableVectorType>(DstTy)) ||
2368 isa<llvm::FixedVectorType>(DstTy))) {
2378 llvm::Value *Result = Builder.CreateBitCast(Src, DstTy);
2558 llvm::Type *DstTy = ConvertType(DestTy);
2562 cast<llvm::VectorType>(DstTy)->getElementCount();
5394 // DstTy. \p Src has the same size as \p DstTy. Both are single value types
5411 Value *Src, llvm::Type *DstTy,
5416 if (!SrcTy->isPointerTy() && !DstTy->isPointerTy())
5417 return Builder.CreateBitCast(Src, DstTy, Name);
5420 if (SrcTy->isPointerTy() && DstTy->isPointerTy())
5421 return Builder.CreatePointerBitCastOrAddrSpaceCast(Src, DstTy, Name);
5424 if (SrcTy->isPointerTy() && !DstTy->isPointerTy()) {
5426 if (!DstTy->isIntegerTy())
5429 return Builder.CreateBitOrPointerCast(Src, DstTy, Name);
5434 Src = Builder.CreateBitCast(Src, DL.getIntPtrType(DstTy));
5436 return Builder.CreateIntToPtr(Src, DstTy, Name);
5441 llvm::Type *DstTy = ConvertType(E->getType());
5449 isa<llvm::VectorType>(DstTy)
5450 ? cast<llvm::FixedVectorType>(DstTy)->getNumElements()
5462 DstTy);
5473 cast<llvm::VectorType>(DstTy)->getElementType(), 4);
5483 Src, DstTy, "astype");
5507 QualType DstTy,
5509 assert(hasScalarEvaluationKind(SrcTy) && hasScalarEvaluationKind(DstTy) &&
5511 return ScalarExprEmitter(*this).EmitScalarConversion(Src, SrcTy, DstTy, Loc);
5518 QualType DstTy,
5520 assert(SrcTy->isAnyComplexType() && hasScalarEvaluationKind(DstTy) &&
5523 .EmitComplexToScalarConversion(Src, SrcTy, DstTy, Loc);