Lines Matching refs:DestTy
333 auto *DestTy = dyn_cast<FixedVectorType>(Ty); in commonCastTransforms() local
334 if (SrcTy && DestTy && in commonCastTransforms()
335 SrcTy->getNumElements() == DestTy->getNumElements() && in commonCastTransforms()
336 SrcTy->getPrimitiveSizeInBits() == DestTy->getPrimitiveSizeInBits()) { in commonCastTransforms()
337 Value *CastX = Builder.CreateCast(CI.getOpcode(), X, DestTy); in commonCastTransforms()
547 Type *DestTy = Trunc.getType(); in narrowFunnelShift() local
548 unsigned NarrowWidth = DestTy->getScalarSizeInBits(); in narrowFunnelShift()
629 Value *NarrowShAmt = Builder.CreateTrunc(ShAmt, DestTy); in narrowFunnelShift()
631 X = Y = Builder.CreateTrunc(ShVal0, DestTy); in narrowFunnelShift()
633 Y = Builder.CreateTrunc(ShVal1, DestTy); in narrowFunnelShift()
635 Function *F = Intrinsic::getDeclaration(Trunc.getModule(), IID, DestTy); in narrowFunnelShift()
643 Type *DestTy = Trunc.getType(); in narrowBinOp() local
645 unsigned DestWidth = DestTy->getScalarSizeInBits(); in narrowBinOp()
647 if (!isa<VectorType>(SrcTy) && !shouldChangeType(SrcTy, DestTy)) in narrowBinOp()
666 Constant *NarrowC = ConstantExpr::getTrunc(C, DestTy); in narrowBinOp()
667 Value *TruncX = Builder.CreateTrunc(BinOp1, DestTy); in narrowBinOp()
672 Constant *NarrowC = ConstantExpr::getTrunc(C, DestTy); in narrowBinOp()
673 Value *TruncX = Builder.CreateTrunc(BinOp0, DestTy); in narrowBinOp()
677 if (match(BinOp0, m_ZExtOrSExt(m_Value(X))) && X->getType() == DestTy) { in narrowBinOp()
679 Value *NarrowOp1 = Builder.CreateTrunc(BinOp1, DestTy); in narrowBinOp()
682 if (match(BinOp1, m_ZExtOrSExt(m_Value(X))) && X->getType() == DestTy) { in narrowBinOp()
684 Value *NarrowOp0 = Builder.CreateTrunc(BinOp0, DestTy); in narrowBinOp()
708 return CastInst::CreateTruncOrBitCast(Shift, DestTy); in narrowBinOp()
755 Type *DestTy = Trunc.getType(); in shrinkInsertElt() local
756 Type *DestScalarTy = DestTy->getScalarType(); in shrinkInsertElt()
764 UndefValue *NarrowUndef = UndefValue::get(DestTy); in shrinkInsertElt()
777 Type *DestTy = Trunc.getType(), *SrcTy = Src->getType(); in visitTrunc() local
778 unsigned DestWidth = DestTy->getScalarSizeInBits(); in visitTrunc()
785 if ((DestTy->isVectorTy() || shouldChangeType(SrcTy, DestTy)) && in visitTrunc()
786 canEvaluateTruncated(Src, DestTy, *this, &Trunc)) { in visitTrunc()
794 Value *Res = EvaluateInDifferentType(Src, DestTy, false); in visitTrunc()
795 assert(Res->getType() == DestTy); in visitTrunc()
803 if (auto *DestITy = dyn_cast<IntegerType>(DestTy)) { in visitTrunc()
813 return new TruncInst(Res, DestTy); in visitTrunc()
834 if (DestTy->isIntegerTy()) { in visitTrunc()
879 if (A->getType() == DestTy) { in visitTrunc()
894 return CastInst::CreateIntegerCast(Shift, DestTy, true); in visitTrunc()
910 (isa<VectorType>(SrcTy) || shouldChangeType(SrcTy, DestTy))) { in visitTrunc()
919 Value *NewTrunc = Builder.CreateTrunc(A, DestTy, A->getName() + ".tr"); in visitTrunc()
921 ConstantExpr::getTrunc(C, DestTy)); in visitTrunc()
954 VectorType::get(DestTy, BitCastNumElts, VecElts.isScalable()); in visitTrunc()
979 Value *VScale = Builder.CreateVScale(ConstantInt::get(DestTy, 1)); in visitTrunc()
1249 Type *SrcTy = Src->getType(), *DestTy = CI.getType(); in visitZExt() local
1253 if (shouldChangeType(SrcTy, DestTy) && in visitZExt()
1254 canEvaluateZExtd(Src, DestTy, BitsToClear, *this, &CI)) { in visitZExt()
1263 Value *Res = EvaluateInDifferentType(Src, DestTy, false); in visitZExt()
1264 assert(Res->getType() == DestTy); in visitZExt()
1272 uint32_t DestBitSize = DestTy->getScalarSizeInBits(); in visitZExt()
1351 Value *VScale = Builder.CreateVScale(ConstantInt::get(DestTy, 1)); in visitZExt()
1509 Type *SrcTy = Src->getType(), *DestTy = CI.getType(); in visitSExt() local
1511 unsigned DestBitSize = DestTy->getScalarSizeInBits(); in visitSExt()
1515 return CastInst::Create(Instruction::ZExt, Src, DestTy); in visitSExt()
1518 if (shouldChangeType(SrcTy, DestTy) && canEvaluateSExtd(Src, DestTy)) { in visitSExt()
1524 Value *Res = EvaluateInDifferentType(Src, DestTy, true); in visitSExt()
1525 assert(Res->getType() == DestTy); in visitSExt()
1533 Value *ShAmt = ConstantInt::get(DestTy, DestBitSize-SrcBitSize); in visitSExt()
1544 return CastInst::CreateIntegerCast(X, DestTy, /* isSigned */ true); in visitSExt()
1547 if (Src->hasOneUse() && X->getType() == DestTy) { in visitSExt()
1549 Constant *ShAmt = ConstantInt::get(DestTy, DestBitSize - SrcBitSize); in visitSExt()
1562 return CastInst::CreateIntegerCast(Ashr, DestTy, /* isSigned */ true); in visitSExt()
1587 BA->isElementWiseEqual(CA) && A->getType() == DestTy) { in visitSExt()
1588 Constant *WideCurrShAmt = ConstantExpr::getSExt(CA, DestTy); in visitSExt()
1590 ConstantInt::get(DestTy, SrcTy->getScalarSizeInBits()), WideCurrShAmt); in visitSExt()
1592 ConstantInt::get(DestTy, DestTy->getScalarSizeInBits()), in visitSExt()
1609 if (XTy == DestTy) in visitSExt()
1614 return CastInst::CreateIntegerCast(Ashr, DestTy, /* isSigned */ true); in visitSExt()
1624 Value *VScale = Builder.CreateVScale(ConstantInt::get(DestTy, 1)); in visitSExt()
2137 optimizeVectorResizeWithIntegerBitCasts(Value *InVal, VectorType *DestTy, in optimizeVectorResizeWithIntegerBitCasts() argument
2144 if (SrcTy->getElementType() != DestTy->getElementType()) { in optimizeVectorResizeWithIntegerBitCasts()
2150 DestTy->getElementType()->getPrimitiveSizeInBits()) in optimizeVectorResizeWithIntegerBitCasts()
2154 FixedVectorType::get(DestTy->getElementType(), in optimizeVectorResizeWithIntegerBitCasts()
2161 unsigned DestElts = cast<FixedVectorType>(DestTy)->getNumElements(); in optimizeVectorResizeWithIntegerBitCasts()
2394 Type *DestTy = BitCast.getType(); in foldBitCastBitwiseLogic() local
2404 if (!DestTy->isVectorTy() || !BO->getType()->isVectorTy()) in foldBitCastBitwiseLogic()
2407 if (DestTy->isFPOrFPVectorTy()) { in foldBitCastBitwiseLogic()
2417 return CastInst::CreateBitOrPointerCast(NewBO, DestTy); in foldBitCastBitwiseLogic()
2424 return CastInst::CreateBitOrPointerCast(NewBO, DestTy); in foldBitCastBitwiseLogic()
2430 if (!DestTy->isIntOrIntVectorTy()) in foldBitCastBitwiseLogic()
2435 X->getType() == DestTy && !isa<Constant>(X)) { in foldBitCastBitwiseLogic()
2437 Value *CastedOp1 = Builder.CreateBitCast(BO->getOperand(1), DestTy); in foldBitCastBitwiseLogic()
2442 X->getType() == DestTy && !isa<Constant>(X)) { in foldBitCastBitwiseLogic()
2444 Value *CastedOp0 = Builder.CreateBitCast(BO->getOperand(0), DestTy); in foldBitCastBitwiseLogic()
2455 Value *CastedOp0 = Builder.CreateBitCast(BO->getOperand(0), DestTy); in foldBitCastBitwiseLogic()
2456 Value *CastedC = Builder.CreateBitCast(C, DestTy); in foldBitCastBitwiseLogic()
2473 Type *DestTy = BitCast.getType(); in foldBitCastSelect() local
2475 if (!DestTy->isVectorTy() || in foldBitCastSelect()
2477 cast<VectorType>(DestTy)->getElementCount()) in foldBitCastSelect()
2484 if (DestTy->isVectorTy() != TVal->getType()->isVectorTy()) in foldBitCastSelect()
2489 if (match(TVal, m_OneUse(m_BitCast(m_Value(X)))) && X->getType() == DestTy && in foldBitCastSelect()
2492 Value *CastedVal = Builder.CreateBitCast(FVal, DestTy); in foldBitCastSelect()
2496 if (match(FVal, m_OneUse(m_BitCast(m_Value(X)))) && X->getType() == DestTy && in foldBitCastSelect()
2499 Value *CastedVal = Builder.CreateBitCast(TVal, DestTy); in foldBitCastSelect()
2531 Type *DestTy = CI.getType(); // Type A in optimizeBitCastFromPhi() local
2560 if (DestTy->isX86_AMXTy()) in optimizeBitCastFromPhi()
2583 if (TyA != DestTy || TyB != SrcTy) in optimizeBitCastFromPhi()
2599 if (TyA != DestTy || TyB != SrcTy) in optimizeBitCastFromPhi()
2617 PHINode *NewPN = Builder.CreatePHI(DestTy, OldPN->getNumOperands()); in optimizeBitCastFromPhi()
2628 NewV = ConstantExpr::getBitCast(C, DestTy); in optimizeBitCastFromPhi()
2633 NewV = combineLoadToNewType(*LI, DestTy); in optimizeBitCastFromPhi()
2673 assert(TyA == DestTy && TyB == SrcTy); in optimizeBitCastFromPhi()
2747 Type *DestTy = CI.getType(); in visitBitCast() local
2751 if (DestTy == Src->getType()) in visitBitCast()
2754 if (isa<PointerType>(SrcTy) && isa<PointerType>(DestTy)) { in visitBitCast()
2767 if (FixedVectorType *DestVTy = dyn_cast<FixedVectorType>(DestTy)) { in visitBitCast()
2771 return InsertElementInst::Create(PoisonValue::get(DestTy), Elem, in visitBitCast()
2784 BCIn->getOperand(0), cast<VectorType>(DestTy), *this)) in visitBitCast()
2800 if (!DestTy->isVectorTy()) { in visitBitCast()
2804 return CastInst::Create(Instruction::BitCast, Elem, DestTy); in visitBitCast()
2811 return new BitCastInst(InsElt->getOperand(1), DestTy); in visitBitCast()
2815 unsigned BitWidth = DestTy->getScalarSizeInBits(); in visitBitCast()
2820 DestTy->isIntegerTy() && X->getType() == DestTy && in visitBitCast()
2833 Value *ZextY = Builder.CreateZExt(Y, DestTy); in visitBitCast()
2846 if (Shuf->hasOneUse() && DestTy->isVectorTy() && in visitBitCast()
2847 cast<VectorType>(DestTy)->getElementCount() == ShufElts && in visitBitCast()
2854 Tmp->getOperand(0)->getType() == DestTy) || in visitBitCast()
2856 Tmp->getOperand(0)->getType() == DestTy)) { in visitBitCast()
2857 Value *LHS = Builder.CreateBitCast(ShufOp0, DestTy); in visitBitCast()
2858 Value *RHS = Builder.CreateBitCast(ShufOp1, DestTy); in visitBitCast()
2869 if (DestTy->isIntegerTy() && in visitBitCast()
2870 DL.isLegalInteger(DestTy->getScalarSizeInBits()) && in visitBitCast()
2877 Intrinsic::getDeclaration(CI.getModule(), Intrinsic::bswap, DestTy); in visitBitCast()
2878 Value *ScalarX = Builder.CreateBitCast(ShufOp0, DestTy); in visitBitCast()
2908 PointerType *DestTy = cast<PointerType>(CI.getType()->getScalarType()); in visitAddrSpaceCast() local
2910 if (!SrcTy->hasSameElementTypeAs(DestTy)) { in visitAddrSpaceCast()
2912 PointerType::getWithSamePointeeType(DestTy, SrcTy->getAddressSpace()); in visitAddrSpaceCast()