Lines Matching defs:ConstantFP
44 cl::desc("Use ConstantFP's native fixed-length vector splat support."));
50 cl::desc("Use ConstantFP's native scalable vector splat support."));
58 if (const ConstantFP *CFP = dyn_cast<ConstantFP>(this))
63 if (const auto *SplatCFP = dyn_cast_or_null<ConstantFP>(getSplatValue()))
78 if (const ConstantFP *CFP = dyn_cast<ConstantFP>(this))
83 if (const auto *SplatCFP = dyn_cast_or_null<ConstantFP>(getSplatValue()))
96 if (const ConstantFP *CFP = dyn_cast<ConstantFP>(this))
113 if (const ConstantFP *CFP = dyn_cast<ConstantFP>(this))
130 if (const ConstantFP *CFP = dyn_cast<ConstantFP>(this))
147 if (const ConstantFP *CFP = dyn_cast<ConstantFP>(this))
175 if (const ConstantFP *CFP = dyn_cast<ConstantFP>(this))
192 if (const ConstantFP *CFP = dyn_cast<ConstantFP>(this))
215 if (auto *CFP = dyn_cast<ConstantFP>(this))
220 auto *CFP = dyn_cast_or_null<ConstantFP>(getAggregateElement(I));
228 if (const auto *SplatCFP = dyn_cast_or_null<ConstantFP>(getSplatValue()))
236 if (auto *CFP = dyn_cast<ConstantFP>(this))
241 auto *CFP = dyn_cast_or_null<ConstantFP>(getAggregateElement(I));
249 if (const auto *SplatCFP = dyn_cast_or_null<ConstantFP>(getSplatValue()))
257 if (auto *CFP = dyn_cast<ConstantFP>(this))
262 auto *CFP = dyn_cast_or_null<ConstantFP>(getAggregateElement(I));
270 if (const auto *SplatCFP = dyn_cast_or_null<ConstantFP>(getSplatValue()))
278 if (auto *CFP = dyn_cast<ConstantFP>(this))
283 auto *CFP = dyn_cast_or_null<ConstantFP>(getAggregateElement(I));
291 if (const auto *SplatCFP = dyn_cast_or_null<ConstantFP>(getSplatValue()))
361 if (isa<ConstantInt>(this) || isa<ConstantFP>(this))
384 return ConstantFP::get(Ty->getContext(),
427 return ConstantFP::get(Ty->getContext(), FL);
454 if (const auto *CFP = dyn_cast<ConstantFP>(this))
458 ? ConstantFP::get(getContext(), CFP->getValue())
535 delete static_cast<ConstantFP *>(C);
980 // ConstantFP
983 Constant *ConstantFP::get(Type *Ty, double V) {
999 Constant *ConstantFP::get(Type *Ty, const APFloat &V) {
1000 ConstantFP *C = get(Ty->getContext(), V);
1002 "ConstantFP type doesn't match the type implied by its value!");
1011 Constant *ConstantFP::get(Type *Ty, StringRef Str) {
1024 Constant *ConstantFP::getNaN(Type *Ty, bool Negative, uint64_t Payload) {
1035 Constant *ConstantFP::getQNaN(Type *Ty, bool Negative, APInt *Payload) {
1046 Constant *ConstantFP::getSNaN(Type *Ty, bool Negative, APInt *Payload) {
1057 Constant *ConstantFP::getZero(Type *Ty, bool Negative) {
1069 // ConstantFP accessors.
1070 ConstantFP* ConstantFP::get(LLVMContext &Context, const APFloat& V) {
1073 std::unique_ptr<ConstantFP> &Slot = pImpl->FPConstants[V];
1077 Slot.reset(new ConstantFP(Ty, V));
1083 // Get a ConstantFP vector with each lane set to the same APFloat.
1084 ConstantFP *ConstantFP::get(LLVMContext &Context, ElementCount EC,
1087 std::unique_ptr<ConstantFP> &Slot =
1092 Slot.reset(new ConstantFP(VTy, V));
1103 Constant *ConstantFP::getInfinity(Type *Ty, bool Negative) {
1113 ConstantFP::ConstantFP(Type *Ty, const APFloat &V)
1119 bool ConstantFP::isExactlyValue(const APFloat &V) const {
1124 void ConstantFP::destroyConstantImpl() {
1125 llvm_unreachable("You can't ConstantFP->destroyConstantImpl()!");
1255 if (auto *CFP = dyn_cast<ConstantFP>(C))
1277 } else if (ConstantFP *CFP = dyn_cast<ConstantFP>(C)) {
1342 // Check to see if all of the elements are ConstantFP or ConstantInt and if
1438 bool isSplatFP = UseConstantFPForFixedLengthSplat && isa<ConstantFP>(C);
1456 return ConstantFP::get(C->getContext(), T->getElementCount(),
1457 cast<ConstantFP>(C)->getValue());
1462 // Check to see if all of the elements are ConstantFP or ConstantInt and if
1479 if (UseConstantFPForFixedLengthSplat && isa<ConstantFP>(V))
1480 return ConstantFP::get(V->getContext(), EC,
1481 cast<ConstantFP>(V)->getValue());
1486 if ((isa<ConstantFP>(V) || isa<ConstantInt>(V)) &&
1499 if (UseConstantFPForScalableSplat && isa<ConstantFP>(V))
1500 return ConstantFP::get(V->getContext(), EC,
1501 cast<ConstantFP>(V)->getValue());
1611 bool ConstantFP::isValueValidForType(Type *Ty, const APFloat& Val) {
1714 if (auto *CFP = dyn_cast<ConstantFP>(this))
1715 return ConstantFP::get(getContext(), CFP->getValue());
2708 return ConstantFP::getZero(Ty, !NSZ);
2710 return ConstantFP::get(Ty, 1.0);
2731 return ConstantFP::get(Ty, 1.0);
3089 if (ConstantFP *CFP = dyn_cast<ConstantFP>(V)) {
3203 return ConstantFP::get(getContext(), getElementAsAPFloat(Elt));