Lines Matching refs:DestTy

217     auto *DestTy = dyn_cast<FixedVectorType>(Ty);  in commonCastTransforms()  local
218 if (SrcTy && DestTy && in commonCastTransforms()
219 SrcTy->getNumElements() == DestTy->getNumElements() && in commonCastTransforms()
220 SrcTy->getPrimitiveSizeInBits() == DestTy->getPrimitiveSizeInBits()) { in commonCastTransforms()
221 Value *CastX = Builder.CreateCast(CI.getOpcode(), X, DestTy); in commonCastTransforms()
448 Type *DestTy = Trunc.getType(); in narrowFunnelShift() local
449 unsigned NarrowWidth = DestTy->getScalarSizeInBits(); in narrowFunnelShift()
531 Value *NarrowShAmt = Builder.CreateZExtOrTrunc(ShAmt, DestTy); in narrowFunnelShift()
534 X = Y = Builder.CreateTrunc(ShVal0, DestTy); in narrowFunnelShift()
536 Y = Builder.CreateTrunc(ShVal1, DestTy); in narrowFunnelShift()
538 Function *F = Intrinsic::getDeclaration(Trunc.getModule(), IID, DestTy); in narrowFunnelShift()
546 Type *DestTy = Trunc.getType(); in narrowBinOp() local
548 unsigned DestWidth = DestTy->getScalarSizeInBits(); in narrowBinOp()
550 if (!isa<VectorType>(SrcTy) && !shouldChangeType(SrcTy, DestTy)) in narrowBinOp()
569 Constant *NarrowC = ConstantExpr::getTrunc(C, DestTy); in narrowBinOp()
570 Value *TruncX = Builder.CreateTrunc(BinOp1, DestTy); in narrowBinOp()
575 Constant *NarrowC = ConstantExpr::getTrunc(C, DestTy); in narrowBinOp()
576 Value *TruncX = Builder.CreateTrunc(BinOp0, DestTy); in narrowBinOp()
580 if (match(BinOp0, m_ZExtOrSExt(m_Value(X))) && X->getType() == DestTy) { in narrowBinOp()
582 Value *NarrowOp1 = Builder.CreateTrunc(BinOp1, DestTy); in narrowBinOp()
585 if (match(BinOp1, m_ZExtOrSExt(m_Value(X))) && X->getType() == DestTy) { in narrowBinOp()
587 Value *NarrowOp0 = Builder.CreateTrunc(BinOp0, DestTy); in narrowBinOp()
612 return CastInst::CreateTruncOrBitCast(Shift, DestTy); in narrowBinOp()
660 Type *DestTy = Trunc.getType(); in shrinkInsertElt() local
661 Type *DestScalarTy = DestTy->getScalarType(); in shrinkInsertElt()
669 UndefValue *NarrowUndef = UndefValue::get(DestTy); in shrinkInsertElt()
682 Type *DestTy = Trunc.getType(), *SrcTy = Src->getType(); in visitTrunc() local
683 unsigned DestWidth = DestTy->getScalarSizeInBits(); in visitTrunc()
690 if ((DestTy->isVectorTy() || shouldChangeType(SrcTy, DestTy)) && in visitTrunc()
691 canEvaluateTruncated(Src, DestTy, *this, &Trunc)) { in visitTrunc()
699 Value *Res = EvaluateInDifferentType(Src, DestTy, false); in visitTrunc()
700 assert(Res->getType() == DestTy); in visitTrunc()
708 if (auto *DestITy = dyn_cast<IntegerType>(DestTy)) { in visitTrunc()
718 return new TruncInst(Res, DestTy); in visitTrunc()
805 if (A->getType() == DestTy) { in visitTrunc()
816 return CastInst::CreateIntegerCast(Shift, DestTy, true); in visitTrunc()
832 (isa<VectorType>(SrcTy) || shouldChangeType(SrcTy, DestTy))) { in visitTrunc()
841 Value *NewTrunc = Builder.CreateTrunc(A, DestTy, A->getName() + ".tr"); in visitTrunc()
843 ConstantExpr::getTrunc(C, DestTy)); in visitTrunc()
876 VectorType::get(DestTy, BitCastNumElts, VecElts.isScalable()); in visitTrunc()
901 Value *VScale = Builder.CreateVScale(ConstantInt::get(DestTy, 1)); in visitTrunc()
1150 Type *SrcTy = Src->getType(), *DestTy = Zext.getType(); in visitZExt() local
1158 if (shouldChangeType(SrcTy, DestTy) && in visitZExt()
1159 canEvaluateZExtd(Src, DestTy, BitsToClear, *this, &Zext)) { in visitZExt()
1168 Value *Res = EvaluateInDifferentType(Src, DestTy, false); in visitZExt()
1169 assert(Res->getType() == DestTy); in visitZExt()
1177 uint32_t DestBitSize = DestTy->getScalarSizeInBits(); in visitZExt()
1204 unsigned DstSize = DestTy->getScalarSizeInBits(); in visitZExt()
1213 return new ZExtInst(And, DestTy); in visitZExt()
1222 Value *Trunc = Builder.CreateTrunc(A, DestTy); in visitZExt()
1237 X->getType() == DestTy) in visitZExt()
1238 return BinaryOperator::CreateAnd(X, Builder.CreateZExt(C, DestTy)); in visitZExt()
1244 X->getType() == DestTy) { in visitZExt()
1245 Value *ZC = Builder.CreateZExt(C, DestTy); in visitZExt()
1255 X->getType() == DestTy) { in visitZExt()
1256 Value *ZextC = Builder.CreateZExt(C, DestTy); in visitZExt()
1268 Value *VScale = Builder.CreateVScale(ConstantInt::get(DestTy, 1)); in visitZExt()
1279 Log2_64_Ceil(DestTy->getScalarSizeInBits()) && in visitZExt()
1438 Type *SrcTy = Src->getType(), *DestTy = Sext.getType(); in visitSExt() local
1440 unsigned DestBitSize = DestTy->getScalarSizeInBits(); in visitSExt()
1444 auto CI = CastInst::Create(Instruction::ZExt, Src, DestTy); in visitSExt()
1450 if (shouldChangeType(SrcTy, DestTy) && canEvaluateSExtd(Src, DestTy)) { in visitSExt()
1456 Value *Res = EvaluateInDifferentType(Src, DestTy, true); in visitSExt()
1457 assert(Res->getType() == DestTy); in visitSExt()
1465 Value *ShAmt = ConstantInt::get(DestTy, DestBitSize-SrcBitSize); in visitSExt()
1476 return CastInst::CreateIntegerCast(X, DestTy, /* isSigned */ true); in visitSExt()
1479 if (Src->hasOneUse() && X->getType() == DestTy) { in visitSExt()
1481 Constant *ShAmt = ConstantInt::get(DestTy, DestBitSize - SrcBitSize); in visitSExt()
1494 return CastInst::CreateIntegerCast(Ashr, DestTy, /* isSigned */ true); in visitSExt()
1519 BA->isElementWiseEqual(CA) && A->getType() == DestTy) { in visitSExt()
1521 ConstantFoldCastOperand(Instruction::SExt, CA, DestTy, DL); in visitSExt()
1524 ConstantInt::get(DestTy, SrcTy->getScalarSizeInBits()), WideCurrShAmt); in visitSExt()
1526 ConstantInt::get(DestTy, DestTy->getScalarSizeInBits()), in visitSExt()
1543 if (XTy == DestTy) in visitSExt()
1548 return CastInst::CreateIntegerCast(Ashr, DestTy, /* isSigned */ true); in visitSExt()
1559 Value *VScale = Builder.CreateVScale(ConstantInt::get(DestTy, 1)); in visitSExt()
2112 optimizeVectorResizeWithIntegerBitCasts(Value *InVal, VectorType *DestTy, in optimizeVectorResizeWithIntegerBitCasts() argument
2119 if (SrcTy->getElementType() != DestTy->getElementType()) { in optimizeVectorResizeWithIntegerBitCasts()
2125 DestTy->getElementType()->getPrimitiveSizeInBits()) in optimizeVectorResizeWithIntegerBitCasts()
2129 FixedVectorType::get(DestTy->getElementType(), in optimizeVectorResizeWithIntegerBitCasts()
2136 unsigned DestElts = cast<FixedVectorType>(DestTy)->getNumElements(); in optimizeVectorResizeWithIntegerBitCasts()
2372 Type *DestTy = BitCast.getType(); in foldBitCastBitwiseLogic() local
2382 if (!DestTy->isVectorTy() || !BO->getType()->isVectorTy()) in foldBitCastBitwiseLogic()
2385 if (DestTy->isFPOrFPVectorTy()) { in foldBitCastBitwiseLogic()
2395 return CastInst::CreateBitOrPointerCast(NewBO, DestTy); in foldBitCastBitwiseLogic()
2402 return CastInst::CreateBitOrPointerCast(NewBO, DestTy); in foldBitCastBitwiseLogic()
2408 if (!DestTy->isIntOrIntVectorTy()) in foldBitCastBitwiseLogic()
2413 X->getType() == DestTy && !isa<Constant>(X)) { in foldBitCastBitwiseLogic()
2415 Value *CastedOp1 = Builder.CreateBitCast(BO->getOperand(1), DestTy); in foldBitCastBitwiseLogic()
2420 X->getType() == DestTy && !isa<Constant>(X)) { in foldBitCastBitwiseLogic()
2422 Value *CastedOp0 = Builder.CreateBitCast(BO->getOperand(0), DestTy); in foldBitCastBitwiseLogic()
2433 Value *CastedOp0 = Builder.CreateBitCast(BO->getOperand(0), DestTy); in foldBitCastBitwiseLogic()
2434 Value *CastedC = Builder.CreateBitCast(C, DestTy); in foldBitCastBitwiseLogic()
2451 Type *DestTy = BitCast.getType(); in foldBitCastSelect() local
2453 if (!DestTy->isVectorTy() || in foldBitCastSelect()
2455 cast<VectorType>(DestTy)->getElementCount()) in foldBitCastSelect()
2462 if (DestTy->isVectorTy() != TVal->getType()->isVectorTy()) in foldBitCastSelect()
2467 if (match(TVal, m_OneUse(m_BitCast(m_Value(X)))) && X->getType() == DestTy && in foldBitCastSelect()
2470 Value *CastedVal = Builder.CreateBitCast(FVal, DestTy); in foldBitCastSelect()
2474 if (match(FVal, m_OneUse(m_BitCast(m_Value(X)))) && X->getType() == DestTy && in foldBitCastSelect()
2477 Value *CastedVal = Builder.CreateBitCast(TVal, DestTy); in foldBitCastSelect()
2509 Type *DestTy = CI.getType(); // Type A in optimizeBitCastFromPhi() local
2538 if (DestTy->isX86_AMXTy()) in optimizeBitCastFromPhi()
2561 if (TyA != DestTy || TyB != SrcTy) in optimizeBitCastFromPhi()
2577 if (TyA != DestTy || TyB != SrcTy) in optimizeBitCastFromPhi()
2595 PHINode *NewPN = Builder.CreatePHI(DestTy, OldPN->getNumOperands()); in optimizeBitCastFromPhi()
2606 NewV = ConstantExpr::getBitCast(C, DestTy); in optimizeBitCastFromPhi()
2611 NewV = combineLoadToNewType(*LI, DestTy); in optimizeBitCastFromPhi()
2651 assert(TyA == DestTy && TyB == SrcTy); in optimizeBitCastFromPhi()
2674 Type *DestTy = CI.getType(); in visitBitCast() local
2678 if (DestTy == Src->getType()) in visitBitCast()
2681 if (FixedVectorType *DestVTy = dyn_cast<FixedVectorType>(DestTy)) { in visitBitCast()
2685 return InsertElementInst::Create(PoisonValue::get(DestTy), Elem, in visitBitCast()
2698 BCIn->getOperand(0), cast<VectorType>(DestTy), *this)) in visitBitCast()
2714 if (!DestTy->isVectorTy()) { in visitBitCast()
2718 return CastInst::Create(Instruction::BitCast, Elem, DestTy); in visitBitCast()
2725 return new BitCastInst(InsElt->getOperand(1), DestTy); in visitBitCast()
2729 unsigned BitWidth = DestTy->getScalarSizeInBits(); in visitBitCast()
2734 DestTy->isIntegerTy() && X->getType() == DestTy && in visitBitCast()
2747 Value *ZextY = Builder.CreateZExt(Y, DestTy); in visitBitCast()
2760 if (Shuf->hasOneUse() && DestTy->isVectorTy() && in visitBitCast()
2761 cast<VectorType>(DestTy)->getElementCount() == ShufElts && in visitBitCast()
2768 Tmp->getOperand(0)->getType() == DestTy) || in visitBitCast()
2770 Tmp->getOperand(0)->getType() == DestTy)) { in visitBitCast()
2771 Value *LHS = Builder.CreateBitCast(ShufOp0, DestTy); in visitBitCast()
2772 Value *RHS = Builder.CreateBitCast(ShufOp1, DestTy); in visitBitCast()
2783 if (DestTy->isIntegerTy() && ShufElts.getKnownMinValue() % 2 == 0 && in visitBitCast()
2786 if (DL.isLegalInteger(DestTy->getScalarSizeInBits()) && in visitBitCast()
2796 Intrinsic::getDeclaration(CI.getModule(), IntrinsicNum, DestTy); in visitBitCast()
2797 Value *ScalarX = Builder.CreateBitCast(ShufOp0, DestTy); in visitBitCast()