Lines Matching refs:DstTySize

828 ConstantRange ConstantRange::zeroExtend(uint32_t DstTySize) const {  in zeroExtend()
829 if (isEmptySet()) return getEmpty(DstTySize); in zeroExtend()
832 assert(SrcTySize < DstTySize && "Not a value extension"); in zeroExtend()
835 APInt LowerExt(DstTySize, 0); in zeroExtend()
837 LowerExt = Lower.zext(DstTySize); in zeroExtend()
839 APInt::getOneBitSet(DstTySize, SrcTySize)); in zeroExtend()
842 return ConstantRange(Lower.zext(DstTySize), Upper.zext(DstTySize)); in zeroExtend()
845 ConstantRange ConstantRange::signExtend(uint32_t DstTySize) const { in signExtend()
846 if (isEmptySet()) return getEmpty(DstTySize); in signExtend()
849 assert(SrcTySize < DstTySize && "Not a value extension"); in signExtend()
853 return ConstantRange(Lower.sext(DstTySize), Upper.zext(DstTySize)); in signExtend()
856 return ConstantRange(APInt::getHighBitsSet(DstTySize,DstTySize-SrcTySize+1), in signExtend()
857 APInt::getLowBitsSet(DstTySize, SrcTySize-1) + 1); in signExtend()
860 return ConstantRange(Lower.sext(DstTySize), Upper.sext(DstTySize)); in signExtend()
863 ConstantRange ConstantRange::truncate(uint32_t DstTySize) const { in truncate()
864 assert(getBitWidth() > DstTySize && "Not a value truncation"); in truncate()
866 return getEmpty(DstTySize); in truncate()
868 return getFull(DstTySize); in truncate()
871 ConstantRange Union(DstTySize, /*isFullSet=*/false); in truncate()
879 if (Upper.getActiveBits() > DstTySize || Upper.countr_one() == DstTySize) in truncate()
880 return getFull(DstTySize); in truncate()
882 Union = ConstantRange(APInt::getMaxValue(DstTySize),Upper.trunc(DstTySize)); in truncate()
892 if (LowerDiv.getActiveBits() > DstTySize) { in truncate()
894 APInt Adjust = LowerDiv & APInt::getBitsSetFrom(getBitWidth(), DstTySize); in truncate()
900 if (UpperDivWidth <= DstTySize) in truncate()
901 return ConstantRange(LowerDiv.trunc(DstTySize), in truncate()
902 UpperDiv.trunc(DstTySize)).unionWith(Union); in truncate()
905 if (UpperDivWidth == DstTySize + 1) { in truncate()
907 UpperDiv.clearBit(DstTySize); in truncate()
909 return ConstantRange(LowerDiv.trunc(DstTySize), in truncate()
910 UpperDiv.trunc(DstTySize)).unionWith(Union); in truncate()
913 return getFull(DstTySize); in truncate()
916 ConstantRange ConstantRange::zextOrTrunc(uint32_t DstTySize) const { in zextOrTrunc()
918 if (SrcTySize > DstTySize) in zextOrTrunc()
919 return truncate(DstTySize); in zextOrTrunc()
920 if (SrcTySize < DstTySize) in zextOrTrunc()
921 return zeroExtend(DstTySize); in zextOrTrunc()
925 ConstantRange ConstantRange::sextOrTrunc(uint32_t DstTySize) const { in sextOrTrunc()
927 if (SrcTySize > DstTySize) in sextOrTrunc()
928 return truncate(DstTySize); in sextOrTrunc()
929 if (SrcTySize < DstTySize) in sextOrTrunc()
930 return signExtend(DstTySize); in sextOrTrunc()