Lines Matching refs:Ty

698 Constant *llvm::ConstantFoldLoadFromConst(Constant *C, Type *Ty,  in ConstantFoldLoadFromConst()  argument
702 if (Constant *Result = ConstantFoldLoadThroughBitcast(AtOffset, Ty, DL)) in ConstantFoldLoadFromConst()
709 return UndefValue::get(Ty); in ConstantFoldLoadFromConst()
712 if (Constant *Result = ConstantFoldLoadFromUniformValue(C, Ty)) in ConstantFoldLoadFromConst()
718 FoldReinterpretLoadFromConst(C, Ty, Offset.getSExtValue(), DL)) in ConstantFoldLoadFromConst()
724 Constant *llvm::ConstantFoldLoadFromConst(Constant *C, Type *Ty, in ConstantFoldLoadFromConst() argument
726 return ConstantFoldLoadFromConst(C, Ty, APInt(64, 0), DL); in ConstantFoldLoadFromConst()
729 Constant *llvm::ConstantFoldLoadFromConstPtr(Constant *C, Type *Ty, in ConstantFoldLoadFromConstPtr() argument
737 if (Constant *Result = ConstantFoldLoadFromConst(GV->getInitializer(), Ty, in ConstantFoldLoadFromConstPtr()
746 ConstantFoldLoadFromUniformValue(GV->getInitializer(), Ty)) in ConstantFoldLoadFromConstPtr()
754 Constant *llvm::ConstantFoldLoadFromConstPtr(Constant *C, Type *Ty, in ConstantFoldLoadFromConstPtr() argument
757 return ConstantFoldLoadFromConstPtr(C, Ty, Offset, DL); in ConstantFoldLoadFromConstPtr()
760 Constant *llvm::ConstantFoldLoadFromUniformValue(Constant *C, Type *Ty) { in ConstantFoldLoadFromUniformValue() argument
762 return PoisonValue::get(Ty); in ConstantFoldLoadFromUniformValue()
764 return UndefValue::get(Ty); in ConstantFoldLoadFromUniformValue()
765 if (C->isNullValue() && !Ty->isX86_MMXTy() && !Ty->isX86_AMXTy()) in ConstantFoldLoadFromUniformValue()
766 return Constant::getNullValue(Ty); in ConstantFoldLoadFromUniformValue()
768 (Ty->isIntOrIntVectorTy() || Ty->isFPOrFPVectorTy())) in ConstantFoldLoadFromUniformValue()
769 return Constant::getAllOnesValue(Ty); in ConstantFoldLoadFromUniformValue()
1362 Type *Ty = CFP->getType(); in FlushFPConstant() local
1364 I->getFunction()->getDenormalMode(Ty->getFltSemantics()); in FlushFPConstant()
1376 Ty->getContext(), in FlushFPConstant()
1377 APFloat::getZero(Ty->getFltSemantics(), APF.isNegative())); in FlushFPConstant()
1382 return ConstantFP::get(Ty->getContext(), in FlushFPConstant()
1383 APFloat::getZero(Ty->getFltSemantics(), false)); in FlushFPConstant()
1733 Constant *GetConstantFoldFPValue(double V, Type *Ty) { in GetConstantFoldFPValue() argument
1734 if (Ty->isHalfTy() || Ty->isFloatTy()) { in GetConstantFoldFPValue()
1737 APF.convert(Ty->getFltSemantics(), APFloat::rmNearestTiesToEven, &unused); in GetConstantFoldFPValue()
1738 return ConstantFP::get(Ty->getContext(), APF); in GetConstantFoldFPValue()
1740 if (Ty->isDoubleTy()) in GetConstantFoldFPValue()
1741 return ConstantFP::get(Ty->getContext(), APFloat(V)); in GetConstantFoldFPValue()
1766 Type *Ty) { in ConstantFoldFP() argument
1774 return GetConstantFoldFPValue(Result, Ty); in ConstantFoldFP()
1778 const APFloat &V, const APFloat &W, Type *Ty) { in ConstantFoldBinaryFP() argument
1786 return GetConstantFoldFPValue(Result, Ty); in ConstantFoldBinaryFP()
1858 Type *Ty, bool IsSigned) { in ConstantFoldSSEConvertToInt() argument
1860 unsigned ResultWidth = Ty->getIntegerBitWidth(); in ConstantFoldSSEConvertToInt()
1874 return ConstantInt::get(Ty, UIntVal, IsSigned); in ConstantFoldSSEConvertToInt()
1878 Type *Ty = Op->getType(); in getValueAsDouble() local
1880 if (Ty->isBFloatTy() || Ty->isHalfTy() || Ty->isFloatTy() || Ty->isDoubleTy()) in getValueAsDouble()
1946 Type *Ty, in ConstantFoldScalarCall1() argument
1957 return ConstantInt::getTrue(Ty->getContext()); in ConstantFoldScalarCall1()
1968 return Constant::getNullValue(Ty); in ConstantFoldScalarCall1()
2001 return ConstantInt::get(Ty->getContext(), Val.bitcastToAPInt()); in ConstantFoldScalarCall1()
2013 unsigned Width = Ty->getIntegerBitWidth(); in ConstantFoldScalarCall1()
2020 return ConstantInt::get(Ty, Int); in ConstantFoldScalarCall1()
2028 APSInt Int(Ty->getIntegerBitWidth(), in ConstantFoldScalarCall1()
2032 return ConstantInt::get(Ty, Int); in ConstantFoldScalarCall1()
2035 if (!Ty->isHalfTy() && !Ty->isFloatTy() && !Ty->isDoubleTy()) in ConstantFoldScalarCall1()
2042 return ConstantFP::get(Ty->getContext(), U); in ConstantFoldScalarCall1()
2047 return ConstantFP::get(Ty->getContext(), U); in ConstantFoldScalarCall1()
2052 return ConstantFP::get(Ty->getContext(), U); in ConstantFoldScalarCall1()
2057 return ConstantFP::get(Ty->getContext(), U); in ConstantFoldScalarCall1()
2062 return ConstantFP::get(Ty->getContext(), U); in ConstantFoldScalarCall1()
2067 return ConstantFP::get(Ty->getContext(), U); in ConstantFoldScalarCall1()
2072 return ConstantFP::get(Ty->getContext(), U); in ConstantFoldScalarCall1()
2085 return ConstantFP::get(Ty->getContext(), minimum(FractU, AlmostOne)); in ConstantFoldScalarCall1()
2132 return ConstantFP::get(Ty->getContext(), U); in ConstantFoldScalarCall1()
2150 return ConstantFoldFP(log, APF, Ty); in ConstantFoldScalarCall1()
2153 return ConstantFoldFP(Log2, APF, Ty); in ConstantFoldScalarCall1()
2156 return ConstantFoldFP(log10, APF, Ty); in ConstantFoldScalarCall1()
2158 return ConstantFoldFP(exp, APF, Ty); in ConstantFoldScalarCall1()
2161 return ConstantFoldBinaryFP(pow, APFloat(2.0), APF, Ty); in ConstantFoldScalarCall1()
2163 return ConstantFoldFP(sin, APF, Ty); in ConstantFoldScalarCall1()
2165 return ConstantFoldFP(cos, APF, Ty); in ConstantFoldScalarCall1()
2167 return ConstantFoldFP(sqrt, APF, Ty); in ConstantFoldScalarCall1()
2188 return GetConstantFoldFPValue(V, Ty); in ConstantFoldScalarCall1()
2207 return ConstantFoldFP(acos, APF, Ty); in ConstantFoldScalarCall1()
2214 return ConstantFoldFP(asin, APF, Ty); in ConstantFoldScalarCall1()
2219 return ConstantFoldFP(atan, APF, Ty); in ConstantFoldScalarCall1()
2225 return ConstantFP::get(Ty->getContext(), U); in ConstantFoldScalarCall1()
2231 return ConstantFoldFP(cos, APF, Ty); in ConstantFoldScalarCall1()
2238 return ConstantFoldFP(cosh, APF, Ty); in ConstantFoldScalarCall1()
2245 return ConstantFoldFP(exp, APF, Ty); in ConstantFoldScalarCall1()
2253 return ConstantFoldBinaryFP(pow, APFloat(2.0), APF, Ty); in ConstantFoldScalarCall1()
2259 return ConstantFP::get(Ty->getContext(), U); in ConstantFoldScalarCall1()
2266 return ConstantFP::get(Ty->getContext(), U); in ConstantFoldScalarCall1()
2274 return ConstantFoldFP(log, APF, Ty); in ConstantFoldScalarCall1()
2282 return ConstantFoldFP(Log2, APF, Ty); in ConstantFoldScalarCall1()
2290 return ConstantFoldFP(log10, APF, Ty); in ConstantFoldScalarCall1()
2298 return ConstantFP::get(Ty->getContext(), U); in ConstantFoldScalarCall1()
2305 return ConstantFP::get(Ty->getContext(), U); in ConstantFoldScalarCall1()
2311 return ConstantFoldFP(sin, APF, Ty); in ConstantFoldScalarCall1()
2318 return ConstantFoldFP(sinh, APF, Ty); in ConstantFoldScalarCall1()
2323 return ConstantFoldFP(sqrt, APF, Ty); in ConstantFoldScalarCall1()
2328 return ConstantFoldFP(tan, APF, Ty); in ConstantFoldScalarCall1()
2333 return ConstantFoldFP(tanh, APF, Ty); in ConstantFoldScalarCall1()
2339 return ConstantFP::get(Ty->getContext(), U); in ConstantFoldScalarCall1()
2349 return ConstantInt::get(Ty->getContext(), Op->getValue().byteSwap()); in ConstantFoldScalarCall1()
2351 return ConstantInt::get(Ty, Op->getValue().countPopulation()); in ConstantFoldScalarCall1()
2353 return ConstantInt::get(Ty->getContext(), Op->getValue().reverseBits()); in ConstantFoldScalarCall1()
2359 Ty->getFltSemantics(), APFloat::rmNearestTiesToEven, &lost); in ConstantFoldScalarCall1()
2366 return ConstantFP::get(Ty->getContext(), Val); in ConstantFoldScalarCall1()
2402 /*roundTowardZero=*/false, Ty, in ConstantFoldScalarCall1()
2412 /*roundTowardZero=*/true, Ty, in ConstantFoldScalarCall1()
2441 Type *Ty, in ConstantFoldScalarCall2() argument
2447 if (Ty->isFloatingPointTy()) { in ConstantFoldScalarCall2()
2502 return ConstantFP::get(Ty->getContext(), Res); in ConstantFoldScalarCall2()
2510 return ConstantFP::get(Ty->getContext(), APFloat::copySign(Op1V, Op2V)); in ConstantFoldScalarCall2()
2512 return ConstantFP::get(Ty->getContext(), minnum(Op1V, Op2V)); in ConstantFoldScalarCall2()
2514 return ConstantFP::get(Ty->getContext(), maxnum(Op1V, Op2V)); in ConstantFoldScalarCall2()
2516 return ConstantFP::get(Ty->getContext(), minimum(Op1V, Op2V)); in ConstantFoldScalarCall2()
2518 return ConstantFP::get(Ty->getContext(), maximum(Op1V, Op2V)); in ConstantFoldScalarCall2()
2521 if (!Ty->isHalfTy() && !Ty->isFloatTy() && !Ty->isDoubleTy()) in ConstantFoldScalarCall2()
2528 return ConstantFoldBinaryFP(pow, Op1V, Op2V, Ty); in ConstantFoldScalarCall2()
2533 return ConstantFP::getNullValue(Ty); in ConstantFoldScalarCall2()
2534 return ConstantFP::get(Ty->getContext(), Op1V * Op2V); in ConstantFoldScalarCall2()
2552 return ConstantFoldBinaryFP(pow, Op1V, Op2V, Ty); in ConstantFoldScalarCall2()
2559 return ConstantFP::get(Ty->getContext(), V); in ConstantFoldScalarCall2()
2567 return ConstantFP::get(Ty->getContext(), V); in ConstantFoldScalarCall2()
2575 return ConstantFoldBinaryFP(atan2, Op1V, Op2V, Ty); in ConstantFoldScalarCall2()
2579 if (!Ty->isHalfTy() && !Ty->isFloatTy() && !Ty->isDoubleTy()) in ConstantFoldScalarCall2()
2581 if (IntrinsicID == Intrinsic::powi && Ty->isHalfTy()) in ConstantFoldScalarCall2()
2583 Ty->getContext(), in ConstantFoldScalarCall2()
2586 if (IntrinsicID == Intrinsic::powi && Ty->isFloatTy()) in ConstantFoldScalarCall2()
2588 Ty->getContext(), in ConstantFoldScalarCall2()
2591 if (IntrinsicID == Intrinsic::powi && Ty->isDoubleTy()) in ConstantFoldScalarCall2()
2593 Ty->getContext(), in ConstantFoldScalarCall2()
2604 return ConstantFP::get(Ty->getContext(), Result); in ConstantFoldScalarCall2()
2626 return PoisonValue::get(Ty); in ConstantFoldScalarCall2()
2629 return UndefValue::get(Ty); in ConstantFoldScalarCall2()
2631 return MinMaxIntrinsic::getSaturationPoint(IntrinsicID, Ty); in ConstantFoldScalarCall2()
2633 Ty, ICmpInst::compare(*C0, *C1, in ConstantFoldScalarCall2()
2643 return Constant::getNullValue(Ty); in ConstantFoldScalarCall2()
2651 cast<StructType>(Ty), in ConstantFoldScalarCall2()
2652 {Constant::getAllOnesValue(Ty->getStructElementType(0)), in ConstantFoldScalarCall2()
2653 Constant::getNullValue(Ty->getStructElementType(1))}); in ConstantFoldScalarCall2()
2661 return Constant::getNullValue(Ty); in ConstantFoldScalarCall2()
2687 ConstantInt::get(Ty->getContext(), Res), in ConstantFoldScalarCall2()
2688 ConstantInt::get(Type::getInt1Ty(Ty->getContext()), Overflow) in ConstantFoldScalarCall2()
2690 return ConstantStruct::get(cast<StructType>(Ty), Ops); in ConstantFoldScalarCall2()
2697 return PoisonValue::get(Ty); in ConstantFoldScalarCall2()
2700 return UndefValue::get(Ty); in ConstantFoldScalarCall2()
2702 return Constant::getAllOnesValue(Ty); in ConstantFoldScalarCall2()
2704 return ConstantInt::get(Ty, C0->uadd_sat(*C1)); in ConstantFoldScalarCall2()
2706 return ConstantInt::get(Ty, C0->sadd_sat(*C1)); in ConstantFoldScalarCall2()
2712 return PoisonValue::get(Ty); in ConstantFoldScalarCall2()
2715 return UndefValue::get(Ty); in ConstantFoldScalarCall2()
2717 return Constant::getNullValue(Ty); in ConstantFoldScalarCall2()
2719 return ConstantInt::get(Ty, C0->usub_sat(*C1)); in ConstantFoldScalarCall2()
2721 return ConstantInt::get(Ty, C0->ssub_sat(*C1)); in ConstantFoldScalarCall2()
2728 return PoisonValue::get(Ty); in ConstantFoldScalarCall2()
2730 return Constant::getNullValue(Ty); in ConstantFoldScalarCall2()
2732 return ConstantInt::get(Ty, C0->countTrailingZeros()); in ConstantFoldScalarCall2()
2734 return ConstantInt::get(Ty, C0->countLeadingZeros()); in ConstantFoldScalarCall2()
2742 return UndefValue::get(Ty); in ConstantFoldScalarCall2()
2746 return Constant::getNullValue(Ty); in ConstantFoldScalarCall2()
2748 return ConstantInt::get(Ty, C0->abs()); in ConstantFoldScalarCall2()
2771 /*roundTowardZero=*/false, Ty, in ConstantFoldScalarCall2()
2781 /*roundTowardZero=*/false, Ty, in ConstantFoldScalarCall2()
2791 /*roundTowardZero=*/true, Ty, in ConstantFoldScalarCall2()
2801 /*roundTowardZero=*/true, Ty, in ConstantFoldScalarCall2()
2865 Type *Ty) { in ConstantFoldAMDGCNPermIntrinsic() argument
2873 return UndefValue::get(Ty); in ConstantFoldAMDGCNPermIntrinsic()
2899 return UndefValue::get(Ty); in ConstantFoldAMDGCNPermIntrinsic()
2901 return ConstantInt::get(Ty, Val); in ConstantFoldAMDGCNPermIntrinsic()
2906 Type *Ty, in ConstantFoldScalarCall3() argument
2933 return ConstantFP::get(Ty->getContext(), Res); in ConstantFoldScalarCall3()
2945 return ConstantFP::get(Ty->getContext(), APFloat(0.0f) + C3); in ConstantFoldScalarCall3()
2953 return ConstantFP::get(Ty->getContext(), V); in ConstantFoldScalarCall3()
2960 return ConstantFP::get(Ty->getContext(), V); in ConstantFoldScalarCall3()
2972 return PoisonValue::get(Ty); in ConstantFoldScalarCall3()
2982 return Constant::getNullValue(Ty); in ConstantFoldScalarCall3()
3002 return ConstantInt::get(Ty->getContext(), Product.sextOrTrunc(Width)); in ConstantFoldScalarCall3()
3016 return UndefValue::get(Ty); in ConstantFoldScalarCall3()
3029 return ConstantInt::get(Ty, C1->lshr(LshrAmt)); in ConstantFoldScalarCall3()
3031 return ConstantInt::get(Ty, C0->shl(ShlAmt)); in ConstantFoldScalarCall3()
3032 return ConstantInt::get(Ty, C0->shl(ShlAmt) | C1->lshr(LshrAmt)); in ConstantFoldScalarCall3()
3036 return ConstantFoldAMDGCNPermIntrinsic(Operands, Ty); in ConstantFoldScalarCall3()
3043 Type *Ty, in ConstantFoldScalarCall() argument
3048 return ConstantFoldScalarCall1(Name, IntrinsicID, Ty, Operands, TLI, Call); in ConstantFoldScalarCall()
3051 return ConstantFoldScalarCall2(Name, IntrinsicID, Ty, Operands, TLI, Call); in ConstantFoldScalarCall()
3054 return ConstantFoldScalarCall3(Name, IntrinsicID, Ty, Operands, TLI, Call); in ConstantFoldScalarCall()
3065 Type *Ty = FVTy->getElementType(); in ConstantFoldFixedVectorCall() local
3117 NCs.push_back(ConstantInt::getTrue(Ty)); in ConstantFoldFixedVectorCall()
3119 NCs.push_back(ConstantInt::getFalse(Ty)); in ConstantFoldFixedVectorCall()
3136 NCs.push_back(ConstantInt::getTrue(Ty)); in ConstantFoldFixedVectorCall()
3138 NCs.push_back(ConstantInt::getFalse(Ty)); in ConstantFoldFixedVectorCall()
3166 ConstantFoldScalarCall(Name, IntrinsicID, Ty, Lane, TLI, Call); in ConstantFoldFixedVectorCall()
3213 Type *Ty = F->getReturnType(); in ConstantFoldCall() local
3214 if (auto *FVTy = dyn_cast<FixedVectorType>(Ty)) in ConstantFoldCall()
3219 if (auto *SVTy = dyn_cast<ScalableVectorType>(Ty)) in ConstantFoldCall()
3227 return ConstantFoldScalarCall(Name, F->getIntrinsicID(), Ty, Operands, TLI, in ConstantFoldCall()
3293 Type *Ty = OpC->getType(); in isMathLibCallNoop() local
3294 if (Ty->isDoubleTy() || Ty->isFloatTy() || Ty->isHalfTy()) in isMathLibCallNoop()
3295 return ConstantFoldFP(tan, OpC->getValueAPF(), Ty) != nullptr; in isMathLibCallNoop()
3347 Type *Ty = Op0C->getType(); in isMathLibCallNoop() local
3348 if (Ty->isDoubleTy() || Ty->isFloatTy() || Ty->isHalfTy()) { in isMathLibCallNoop()
3349 if (Ty == Op1C->getType()) in isMathLibCallNoop()
3350 return ConstantFoldBinaryFP(pow, Op0, Op1, Ty) != nullptr; in isMathLibCallNoop()