reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

References

include/llvm/ADT/APFloat.h
  619   bool needsCleanup() const { return Floats != nullptr; }
  621   APFloat &getFirst() { return Floats[0]; }
  622   const APFloat &getFirst() const { return Floats[0]; }
  623   APFloat &getSecond() { return Floats[1]; }
  624   const APFloat &getSecond() const { return Floats[1]; }
lib/Support/APFloat.cpp
 3917   assert(&Floats[0].getSemantics() == &semIEEEdouble);
 3918   assert(&Floats[1].getSemantics() == &semIEEEdouble);
 3923       Floats(RHS.Floats ? new APFloat[2]{APFloat(RHS.Floats[0]),
 3923       Floats(RHS.Floats ? new APFloat[2]{APFloat(RHS.Floats[0]),
 3924                                          APFloat(RHS.Floats[1])}
 3930     : Semantics(RHS.Semantics), Floats(std::move(RHS.Floats)) {
 3936   if (Semantics == RHS.Semantics && RHS.Floats) {
 3937     Floats[0] = RHS.Floats[0];
 3937     Floats[0] = RHS.Floats[0];
 3938     Floats[1] = RHS.Floats[1];
 3938     Floats[1] = RHS.Floats[1];
 3957       Floats[0] = std::move(z);
 3958       Floats[1].makeZero(/* Neg = */ false);
 3975       Floats[0] = std::move(z);
 3976       Floats[1].makeZero(/* Neg = */ false);
 3979     Floats[0] = z;
 3984       Floats[1] = a;
 3985       Status |= Floats[1].subtract(z, RM);
 3986       Status |= Floats[1].add(c, RM);
 3987       Status |= Floats[1].add(zz, RM);
 3990       Floats[1] = c;
 3991       Status |= Floats[1].subtract(z, RM);
 3992       Status |= Floats[1].add(a, RM);
 3993       Status |= Floats[1].add(zz, RM);
 4011       Floats[0] = std::move(z);
 4012       Floats[1].makeZero(/* Neg = */ false);
 4015     Floats[0] = z;
 4016     Status |= Floats[0].add(zz, RM);
 4017     if (!Floats[0].isFinite()) {
 4018       Floats[1].makeZero(/* Neg = */ false);
 4021     Floats[1] = std::move(z);
 4022     Status |= Floats[1].subtract(Floats[0], RM);
 4022     Status |= Floats[1].subtract(Floats[0], RM);
 4023     Status |= Floats[1].add(zz, RM);
 4063   APFloat A(LHS.Floats[0]), AA(LHS.Floats[1]), C(RHS.Floats[0]),
 4063   APFloat A(LHS.Floats[0]), AA(LHS.Floats[1]), C(RHS.Floats[0]),
 4063   APFloat A(LHS.Floats[0]), AA(LHS.Floats[1]), C(RHS.Floats[0]),
 4064       CC(RHS.Floats[1]);
 4069   assert(&Out.Floats[0].getSemantics() == &semIEEEdouble);
 4070   assert(&Out.Floats[1].getSemantics() == &semIEEEdouble);
 4131   APFloat A = Floats[0], B = Floats[1], C = RHS.Floats[0], D = RHS.Floats[1];
 4131   APFloat A = Floats[0], B = Floats[1], C = RHS.Floats[0], D = RHS.Floats[1];
 4131   APFloat A = Floats[0], B = Floats[1], C = RHS.Floats[0], D = RHS.Floats[1];
 4131   APFloat A = Floats[0], B = Floats[1], C = RHS.Floats[0], D = RHS.Floats[1];
 4136     Floats[0] = T;
 4137     Floats[1].makeZero(/* Neg = */ false);
 4161   Floats[0] = U;
 4163     Floats[1].makeZero(/* Neg = */ false);
 4168     Floats[1] = T;
 4222   Floats[0].changeSign();
 4223   Floats[1].changeSign();
 4228   auto Result = Floats[0].compareAbsoluteValue(RHS.Floats[0]);
 4228   auto Result = Floats[0].compareAbsoluteValue(RHS.Floats[0]);
 4231   Result = Floats[1].compareAbsoluteValue(RHS.Floats[1]);
 4231   Result = Floats[1].compareAbsoluteValue(RHS.Floats[1]);
 4233     auto Against = Floats[0].isNegative() ^ Floats[1].isNegative();
 4233     auto Against = Floats[0].isNegative() ^ Floats[1].isNegative();
 4234     auto RHSAgainst = RHS.Floats[0].isNegative() ^ RHS.Floats[1].isNegative();
 4234     auto RHSAgainst = RHS.Floats[0].isNegative() ^ RHS.Floats[1].isNegative();
 4248   return Floats[0].getCategory();
 4251 bool DoubleAPFloat::isNegative() const { return Floats[0].isNegative(); }
 4254   Floats[0].makeInf(Neg);
 4255   Floats[1].makeZero(/* Neg = */ false);
 4259   Floats[0].makeZero(Neg);
 4260   Floats[1].makeZero(/* Neg = */ false);
 4265   Floats[0] = APFloat(semIEEEdouble, APInt(64, 0x7fefffffffffffffull));
 4266   Floats[1] = APFloat(semIEEEdouble, APInt(64, 0x7c8ffffffffffffeull));
 4273   Floats[0].makeSmallest(Neg);
 4274   Floats[1].makeZero(/* Neg = */ false);
 4279   Floats[0] = APFloat(semIEEEdouble, APInt(64, 0x0360000000000000ull));
 4281     Floats[0].changeSign();
 4282   Floats[1].makeZero(/* Neg = */ false);
 4286   Floats[0].makeNaN(SNaN, Neg, fill);
 4287   Floats[1].makeZero(/* Neg = */ false);
 4291   auto Result = Floats[0].compare(RHS.Floats[0]);
 4291   auto Result = Floats[0].compare(RHS.Floats[0]);
 4294     return Floats[1].compare(RHS.Floats[1]);
 4294     return Floats[1].compare(RHS.Floats[1]);
 4299   return Floats[0].bitwiseIsEqual(RHS.Floats[0]) &&
 4299   return Floats[0].bitwiseIsEqual(RHS.Floats[0]) &&
 4300          Floats[1].bitwiseIsEqual(RHS.Floats[1]);
 4300          Floats[1].bitwiseIsEqual(RHS.Floats[1]);
 4304   if (Arg.Floats)
 4305     return hash_combine(hash_value(Arg.Floats[0]), hash_value(Arg.Floats[1]));
 4305     return hash_combine(hash_value(Arg.Floats[0]), hash_value(Arg.Floats[1]));
 4312       Floats[0].bitcastToAPInt().getRawData()[0],
 4313       Floats[1].bitcastToAPInt().getRawData()[0],
 4387          (Floats[0].isDenormal() || Floats[1].isDenormal() ||
 4387          (Floats[0].isDenormal() || Floats[1].isDenormal() ||
 4389           Floats[0].compare(Floats[0] + Floats[1]) != cmpEqual);
 4389           Floats[0].compare(Floats[0] + Floats[1]) != cmpEqual);
 4389           Floats[0].compare(Floats[0] + Floats[1]) != cmpEqual);
 4410   return Floats[0].isInteger() && Floats[1].isInteger();
 4410   return Floats[0].isInteger() && Floats[1].isInteger();
 4435   return DoubleAPFloat(semPPCDoubleDouble, scalbn(Arg.Floats[0], Exp, RM),
 4436                        scalbn(Arg.Floats[1], Exp, RM));
 4442   APFloat First = frexp(Arg.Floats[0], Exp, RM);
 4443   APFloat Second = Arg.Floats[1];