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

Declarations

include/llvm/ADT/APFloat.h
   38 class APFloat;
include/llvm/CodeGen/GlobalISel/InstructionSelector.h
   33 class APFloat;
include/llvm/CodeGen/GlobalISel/Utils.h
   39 class APFloat;
include/llvm/Transforms/Utils/FunctionComparator.h
   30 class APFloat;
tools/clang/include/clang/Serialization/ASTWriter.h
   52 class APFloat;

References

gen/lib/Target/AArch64/AArch64GenDAGISel.inc
115097     const APFloat & Imm = cast<ConstantFPSDNode>(Node)->getValueAPF();
115394     const APFloat & Imm = cast<ConstantFPSDNode>(Node)->getValueAPF();
115401     const APFloat & Imm = cast<ConstantFPSDNode>(Node)->getValueAPF();
115408     const APFloat & Imm = cast<ConstantFPSDNode>(Node)->getValueAPF();
115415     const APFloat & Imm = cast<ConstantFPSDNode>(Node)->getValueAPF();
115736       APFloat InVal = N->getValueAPF();
115744       APFloat InVal = N->getValueAPF();
115759       APFloat InVal = N->getValueAPF();
115767       APFloat InVal = N->getValueAPF();
gen/lib/Target/AArch64/AArch64GenGlobalISel.inc
   23   bool testImmPredicate_APFloat(unsigned PredicateID, const APFloat &Imm) const override;
  797 bool AArch64InstructionSelector::testImmPredicate_APFloat(unsigned PredicateID, const APFloat & Imm) const {
gen/lib/Target/AMDGPU/AMDGPUGenGlobalISel.inc
   23   bool testImmPredicate_APFloat(unsigned PredicateID, const APFloat &Imm) const override;
  364 bool AMDGPUInstructionSelector::testImmPredicate_APFloat(unsigned PredicateID, const APFloat & Imm) const {
gen/lib/Target/ARM/ARMGenDAGISel.inc
55193       APFloat InVal = N->getValueAPF();
55201       APFloat InVal = N->getValueAPF();
55209       APFloat InVal = N->getValueAPF();
gen/lib/Target/ARM/ARMGenGlobalISel.inc
   23   bool testImmPredicate_APFloat(unsigned PredicateID, const APFloat &Imm) const override;
  716 bool ARMInstructionSelector::testImmPredicate_APFloat(unsigned PredicateID, const APFloat & Imm) const {
gen/lib/Target/Mips/MipsGenGlobalISel.inc
   23   bool testImmPredicate_APFloat(unsigned PredicateID, const APFloat &Imm) const override;
  602 bool MipsInstructionSelector::testImmPredicate_APFloat(unsigned PredicateID, const APFloat & Imm) const {
gen/lib/Target/NVPTX/NVPTXGenDAGISel.inc
72295   return &N->getValueAPF().getSemantics() == &llvm::APFloat::IEEEdouble() &&
72304   return &N->getValueAPF().getSemantics() == &llvm::APFloat::IEEEsingle() &&
gen/lib/Target/RISCV/RISCVGenGlobalISel.inc
   23   bool testImmPredicate_APFloat(unsigned PredicateID, const APFloat &Imm) const override;
  248 bool RISCVInstructionSelector::testImmPredicate_APFloat(unsigned PredicateID, const APFloat & Imm) const {
gen/lib/Target/X86/X86GenDAGISel.inc
254444     const APFloat & Imm = cast<ConstantFPSDNode>(Node)->getValueAPF();
254451     const APFloat & Imm = cast<ConstantFPSDNode>(Node)->getValueAPF();
254458     const APFloat & Imm = cast<ConstantFPSDNode>(Node)->getValueAPF();
254465     const APFloat & Imm = cast<ConstantFPSDNode>(Node)->getValueAPF();
gen/lib/Target/X86/X86GenGlobalISel.inc
   23   bool testImmPredicate_APFloat(unsigned PredicateID, const APFloat &Imm) const override;
  711 bool X86InstructionSelector::testImmPredicate_APFloat(unsigned PredicateID, const APFloat & Imm) const {
include/llvm/ADT/APFloat.h
  434   bool getExactInverse(APFloat *inv) const;
  592   std::unique_ptr<APFloat[]> Floats;
  594   opStatus addImpl(const APFloat &a, const APFloat &aa, const APFloat &c,
  594   opStatus addImpl(const APFloat &a, const APFloat &aa, const APFloat &c,
  594   opStatus addImpl(const APFloat &a, const APFloat &aa, const APFloat &c,
  595                    const APFloat &cc, roundingMode RM);
  605   DoubleAPFloat(const fltSemantics &S, APFloat &&First, APFloat &&Second);
  605   DoubleAPFloat(const fltSemantics &S, APFloat &&First, APFloat &&Second);
  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]; }
  675   bool getExactInverse(APFloat *inv) const;
  840   cmpResult compareAbsoluteValue(const APFloat &RHS) const {
  860   APFloat(const APFloat &RHS) = default;
  861   APFloat(APFloat &&RHS) = default;
  870   static APFloat getZero(const fltSemantics &Sem, bool Negative = false) {
  871     APFloat Val(Sem, uninitialized);
  879   static APFloat getInf(const fltSemantics &Sem, bool Negative = false) {
  880     APFloat Val(Sem, uninitialized);
  890   static APFloat getNaN(const fltSemantics &Sem, bool Negative = false,
  901   static APFloat getQNaN(const fltSemantics &Sem, bool Negative = false,
  903     APFloat Val(Sem, uninitialized);
  909   static APFloat getSNaN(const fltSemantics &Sem, bool Negative = false,
  911     APFloat Val(Sem, uninitialized);
  919   static APFloat getLargest(const fltSemantics &Sem, bool Negative = false) {
  920     APFloat Val(Sem, uninitialized);
  929   static APFloat getSmallest(const fltSemantics &Sem, bool Negative = false) {
  930     APFloat Val(Sem, uninitialized);
  939   static APFloat getSmallestNormalized(const fltSemantics &Sem,
  941     APFloat Val(Sem, uninitialized);
  950   static APFloat getAllOnesValue(unsigned BitWidth, bool isIEEE = false);
  956   opStatus add(const APFloat &RHS, roundingMode RM) {
  965   opStatus subtract(const APFloat &RHS, roundingMode RM) {
  974   opStatus multiply(const APFloat &RHS, roundingMode RM) {
  983   opStatus divide(const APFloat &RHS, roundingMode RM) {
  992   opStatus remainder(const APFloat &RHS) {
 1001   opStatus mod(const APFloat &RHS) {
 1010   opStatus fusedMultiplyAdd(const APFloat &Multiplicand, const APFloat &Addend,
 1010   opStatus fusedMultiplyAdd(const APFloat &Multiplicand, const APFloat &Addend,
 1035   APFloat operator+(const APFloat &RHS) const {
 1035   APFloat operator+(const APFloat &RHS) const {
 1036     APFloat Result(*this);
 1043   APFloat operator-(const APFloat &RHS) const {
 1043   APFloat operator-(const APFloat &RHS) const {
 1044     APFloat Result(*this);
 1051   APFloat operator*(const APFloat &RHS) const {
 1051   APFloat operator*(const APFloat &RHS) const {
 1052     APFloat Result(*this);
 1059   APFloat operator/(const APFloat &RHS) const {
 1059   APFloat operator/(const APFloat &RHS) const {
 1060     APFloat Result(*this);
 1070   void copySign(const APFloat &RHS) {
 1077   static APFloat copySign(APFloat Value, const APFloat &Sign) {
 1077   static APFloat copySign(APFloat Value, const APFloat &Sign) {
 1077   static APFloat copySign(APFloat Value, const APFloat &Sign) {
 1115   bool operator==(const APFloat &) const = delete;
 1117   cmpResult compare(const APFloat &RHS) const {
 1127   bool bitwiseIsEqual(const APFloat &RHS) const {
 1147     APFloat Tmp(V);
 1148     Tmp.convert(getSemantics(), APFloat::rmNearestTiesToEven, &ignored);
 1179   APFloat &operator=(const APFloat &RHS) = default;
 1179   APFloat &operator=(const APFloat &RHS) = default;
 1180   APFloat &operator=(APFloat &&RHS) = default;
 1180   APFloat &operator=(APFloat &&RHS) = default;
 1191   bool getExactInverse(APFloat *inv) const {
 1195   friend hash_code hash_value(const APFloat &Arg);
 1196   friend int ilogb(const APFloat &Arg) { return ilogb(Arg.getIEEE()); }
 1197   friend APFloat scalbn(APFloat X, int Exp, roundingMode RM);
 1197   friend APFloat scalbn(APFloat X, int Exp, roundingMode RM);
 1198   friend APFloat frexp(const APFloat &X, int &Exp, roundingMode RM);
 1198   friend APFloat frexp(const APFloat &X, int &Exp, roundingMode RM);
 1207 hash_code hash_value(const APFloat &Arg);
 1208 inline APFloat scalbn(APFloat X, int Exp, APFloat::roundingMode RM) {
 1208 inline APFloat scalbn(APFloat X, int Exp, APFloat::roundingMode RM) {
 1208 inline APFloat scalbn(APFloat X, int Exp, APFloat::roundingMode RM) {
 1209   if (APFloat::usesLayout<detail::IEEEFloat>(X.getSemantics()))
 1211   if (APFloat::usesLayout<detail::DoubleAPFloat>(X.getSemantics()))
 1220 inline APFloat frexp(const APFloat &X, int &Exp, APFloat::roundingMode RM) {
 1220 inline APFloat frexp(const APFloat &X, int &Exp, APFloat::roundingMode RM) {
 1220 inline APFloat frexp(const APFloat &X, int &Exp, APFloat::roundingMode RM) {
 1221   if (APFloat::usesLayout<detail::IEEEFloat>(X.getSemantics()))
 1223   if (APFloat::usesLayout<detail::DoubleAPFloat>(X.getSemantics()))
 1228 inline APFloat abs(APFloat X) {
 1228 inline APFloat abs(APFloat X) {
 1234 inline APFloat neg(APFloat X) {
 1234 inline APFloat neg(APFloat X) {
 1242 inline APFloat minnum(const APFloat &A, const APFloat &B) {
 1242 inline APFloat minnum(const APFloat &A, const APFloat &B) {
 1242 inline APFloat minnum(const APFloat &A, const APFloat &B) {
 1247   return (B.compare(A) == APFloat::cmpLessThan) ? B : A;
 1253 inline APFloat maxnum(const APFloat &A, const APFloat &B) {
 1253 inline APFloat maxnum(const APFloat &A, const APFloat &B) {
 1253 inline APFloat maxnum(const APFloat &A, const APFloat &B) {
 1258   return (A.compare(B) == APFloat::cmpLessThan) ? B : A;
 1264 inline APFloat minimum(const APFloat &A, const APFloat &B) {
 1264 inline APFloat minimum(const APFloat &A, const APFloat &B) {
 1264 inline APFloat minimum(const APFloat &A, const APFloat &B) {
 1271   return (B.compare(A) == APFloat::cmpLessThan) ? B : A;
 1277 inline APFloat maximum(const APFloat &A, const APFloat &B) {
 1277 inline APFloat maximum(const APFloat &A, const APFloat &B) {
 1277 inline APFloat maximum(const APFloat &A, const APFloat &B) {
 1284   return (A.compare(B) == APFloat::cmpLessThan) ? B : A;
include/llvm/ADT/DenseMap.h
   40 struct DenseMapPair : public std::pair<KeyT, ValueT> {
   43   KeyT &getFirst() { return std::pair<KeyT, ValueT>::first; }
   44   const KeyT &getFirst() const { return std::pair<KeyT, ValueT>::first; }
   65   using key_type = KeyT;
   69   using iterator = DenseMapIterator<KeyT, ValueT, KeyInfoT, BucketT>;
   71       DenseMapIterator<KeyT, ValueT, KeyInfoT, BucketT, true>;
  121     const KeyT EmptyKey = getEmptyKey(), TombstoneKey = getTombstoneKey();
  122     if (is_trivially_copyable<KeyT>::value &&
  145   size_type count(const_arg_type_t<KeyT> Val) const {
  150   iterator find(const_arg_type_t<KeyT> Val) {
  156   const_iterator find(const_arg_type_t<KeyT> Val) const {
  185   ValueT lookup(const_arg_type_t<KeyT> Val) const {
  195   std::pair<iterator, bool> insert(const std::pair<KeyT, ValueT> &KV) {
  202   std::pair<iterator, bool> insert(std::pair<KeyT, ValueT> &&KV) {
  210   std::pair<iterator, bool> try_emplace(KeyT &&Key, Ts &&... Args) {
  229   std::pair<iterator, bool> try_emplace(const KeyT &Key, Ts &&... Args) {
  249   std::pair<iterator, bool> insert_as(std::pair<KeyT, ValueT> &&KV,
  272   bool erase(const KeyT &Val) {
  291   value_type& FindAndConstruct(const KeyT &Key) {
  299   ValueT &operator[](const KeyT &Key) {
  303   value_type& FindAndConstruct(KeyT &&Key) {
  311   ValueT &operator[](KeyT &&Key) {
  334     const KeyT EmptyKey = getEmptyKey(), TombstoneKey = getTombstoneKey();
  349     const KeyT EmptyKey = getEmptyKey();
  351       ::new (&B->getFirst()) KeyT(EmptyKey);
  369     const KeyT EmptyKey = getEmptyKey();
  370     const KeyT TombstoneKey = getTombstoneKey();
  392       const DenseMapBase<OtherBaseT, KeyT, ValueT, KeyInfoT, BucketT> &other) {
  414   static unsigned getHashValue(const KeyT &Val) {
  419   static unsigned getHashValue(const LookupKeyT &Val) {
  423   static const KeyT getEmptyKey() {
  429   static const KeyT getTombstoneKey() {
  515   BucketT *InsertIntoBucket(BucketT *TheBucket, KeyArg &&Key,
  525   BucketT *InsertIntoBucketWithLookup(BucketT *TheBucket, KeyT &&Key,
  535   BucketT *InsertIntoBucketImpl(const KeyT &Key, const LookupKeyT &Lookup,
  535   BucketT *InsertIntoBucketImpl(const KeyT &Key, const LookupKeyT &Lookup,
  566     const KeyT EmptyKey = getEmptyKey();
  578   bool LookupBucketFor(const LookupKeyT &Val,
  590     const KeyT EmptyKey = getEmptyKey();
  591     const KeyT TombstoneKey = getTombstoneKey();
  629   bool LookupBucketFor(const LookupKeyT &Val, BucketT *&FoundBucket) {
  684 class DenseMap : public DenseMapBase<DenseMap<KeyT, ValueT, KeyInfoT, BucketT>,
  685                                      KeyT, ValueT, KeyInfoT, BucketT> {
  690   using BaseT = DenseMapBase<DenseMap, KeyT, ValueT, KeyInfoT, BucketT>;
include/llvm/CodeGen/GlobalISel/InstructionSelector.h
  468   virtual bool testImmPredicate_APFloat(unsigned, const APFloat &) const {
include/llvm/CodeGen/GlobalISel/InstructionSelectorImpl.h
  298       APFloat Value = State.MIs[InsnID]->getOperand(1).getFPImm()->getValueAPF();
include/llvm/CodeGen/GlobalISel/MachineIRBuilder.h
  699   MachineInstrBuilder buildFConstant(const DstOp &Res, const APFloat &Val);
include/llvm/CodeGen/GlobalISel/Utils.h
  148 APFloat getAPFloatFromSize(double Val, unsigned Size);
include/llvm/CodeGen/SelectionDAG.h
  624   SDValue getConstantFP(const APFloat &Val, const SDLoc &DL, EVT VT,
  631   SDValue getTargetConstantFP(const APFloat &Val, const SDLoc &DL, EVT VT) {
 1383     case MVT::f16:     return APFloat::IEEEhalf();
 1384     case MVT::f32:     return APFloat::IEEEsingle();
 1385     case MVT::f64:     return APFloat::IEEEdouble();
 1386     case MVT::f80:     return APFloat::x87DoubleExtended();
 1387     case MVT::f128:    return APFloat::IEEEquad();
 1388     case MVT::ppcf128: return APFloat::PPCDoubleDouble();
include/llvm/CodeGen/SelectionDAGNodes.h
 1625   const APFloat& getValueAPF() const { return Value->getValueAPF(); }
 1651   bool isExactlyValue(const APFloat& V) const;
 1653   static bool isValueValidForType(EVT VT, const APFloat& Val);
include/llvm/CodeGen/TargetLowering.h
  862   virtual bool isFPImmLegal(const APFloat & /*Imm*/, EVT /*VT*/,
include/llvm/IR/Constants.h
  266   APFloat Val;
  268   ConstantFP(Type *Ty, const APFloat& V);
  288   static Constant *get(Type *Ty, const APFloat &V);
  291   static ConstantFP *get(LLVMContext &Context, const APFloat &V);
  301   static bool isValueValidForType(Type *Ty, const APFloat &V);
  302   inline const APFloat &getValueAPF() const { return Val; }
  322   bool isExactlyValue(const APFloat &V) const;
  326     APFloat FV(V);
  327     FV.convert(Val.getSemantics(), APFloat::rmNearestTiesToEven, &ignored);
  615   APFloat getElementAsAPFloat(unsigned i) const;
include/llvm/IR/PatternMatch.h
  175   const APFloat *&Res;
  176   apfloat_match(const APFloat *&R) : Res(R) {}
  198 inline apfloat_match m_APFloat(const APFloat *&Res) { return Res; }
  502   bool isValue(const APFloat &C) { return C.isNaN(); }
  511   bool isValue(const APFloat &C) { return C.isZero(); }
  520   bool isValue(const APFloat &C) { return C.isPosZero(); }
  529   bool isValue(const APFloat &C) { return C.isNegZero(); }
include/llvm/IR/Type.h
  171     case HalfTyID: return APFloat::IEEEhalf();
  172     case FloatTyID: return APFloat::IEEEsingle();
  173     case DoubleTyID: return APFloat::IEEEdouble();
  174     case X86_FP80TyID: return APFloat::x87DoubleExtended();
  175     case FP128TyID: return APFloat::IEEEquad();
  176     case PPC_FP128TyID: return APFloat::PPCDoubleDouble();
include/llvm/Support/AlignOf.h
   24   T t;
   25   AlignerImpl<Ts...> rest;
   30   T t;
   35   char arr[sizeof(T)];
   36   SizerImpl<Ts...> rest;
   39 template <typename T> union SizerImpl<T> { char arr[sizeof(T)]; };
   50       llvm::detail::SizerImpl<T, Ts...>)];
   50       llvm::detail::SizerImpl<T, Ts...>)];
include/llvm/Support/SMTAPI.h
  409   virtual SMTExprRef mkFloat(const llvm::APFloat Float) = 0;
  419                                  llvm::APFloat &Float) = 0;
include/llvm/Support/type_traits.h
   31   using UnderlyingT = typename std::remove_reference<T>::type;
   65   using type = const T &;
   91     T t;
  122     static auto get(F*) -> decltype(std::declval<F &>() = std::declval<const F &>(), std::true_type{});
  122     static auto get(F*) -> decltype(std::declval<F &>() = std::declval<const F &>(), std::true_type{});
  122     static auto get(F*) -> decltype(std::declval<F &>() = std::declval<const F &>(), std::true_type{});
  130     static auto get(F*) -> decltype(std::declval<F &>() = std::declval<F &&>(), std::true_type{});
  130     static auto get(F*) -> decltype(std::declval<F &>() = std::declval<F &&>(), std::true_type{});
  130     static auto get(F*) -> decltype(std::declval<F &>() = std::declval<F &&>(), std::true_type{});
  145       std::is_copy_constructible<detail::trivial_helper<T>>::value;
  147       !std::is_copy_constructible<T>::value;
  151       std::is_move_constructible<detail::trivial_helper<T>>::value;
  153       !std::is_move_constructible<T>::value;
  157       is_copy_assignable<detail::trivial_helper<T>>::value;
  159       !is_copy_assignable<T>::value;
  163       is_move_assignable<detail::trivial_helper<T>>::value;
  165       !is_move_assignable<T>::value;
  169       std::is_destructible<detail::trivial_helper<T>>::value;
include/llvm/Transforms/Utils/FunctionComparator.h
  324   int cmpAPFloats(const APFloat &L, const APFloat &R) const;
  324   int cmpAPFloats(const APFloat &L, const APFloat &R) const;
lib/Analysis/ConstantFolding.cpp
  130       APFloat FP(DestTy->getFltSemantics(), Result);
 1564     APFloat APF(V);
 1566     APF.convert(Ty->getFltSemantics(), APFloat::rmNearestTiesToEven, &unused);
 1624 Constant *ConstantFoldSSEConvertToInt(const APFloat &Val, bool roundTowardZero,
 1633   APFloat::roundingMode mode = roundTowardZero? APFloat::rmTowardZero
 1633   APFloat::roundingMode mode = roundTowardZero? APFloat::rmTowardZero
 1634                                               : APFloat::rmNearestTiesToEven;
 1635   APFloat::opStatus status =
 1638   if (status != APFloat::opOK &&
 1639       (!roundTowardZero || status != APFloat::opInexact))
 1654   APFloat APF = Op->getValueAPF();
 1655   APF.convert(APFloat::IEEEdouble(), APFloat::rmNearestTiesToEven, &unused);
 1655   APF.convert(APFloat::IEEEdouble(), APFloat::rmNearestTiesToEven, &unused);
 1733       APFloat Val(Op->getValueAPF());
 1736       Val.convert(APFloat::IEEEhalf(), APFloat::rmNearestTiesToEven, &lost);
 1736       Val.convert(APFloat::IEEEhalf(), APFloat::rmNearestTiesToEven, &lost);
 1745     APFloat U = Op->getValueAPF();
 1748       U.roundToIntegral(APFloat::rmNearestTiesToEven);
 1753       U.roundToIntegral(APFloat::rmNearestTiesToAway);
 1758       U.roundToIntegral(APFloat::rmTowardPositive);
 1763       U.roundToIntegral(APFloat::rmTowardNegative);
 1768       U.roundToIntegral(APFloat::rmTowardZero);
 1842         U.roundToIntegral(APFloat::rmTowardPositive);
 1883         U.roundToIntegral(APFloat::rmTowardNegative);
 1915         U.roundToIntegral(APFloat::rmNearestTiesToEven);
 1922         U.roundToIntegral(APFloat::rmNearestTiesToAway);
 1956         U.roundToIntegral(APFloat::rmTowardZero);
 1973       APFloat Val(APFloat::IEEEhalf(), Op->getValue());
 1973       APFloat Val(APFloat::IEEEhalf(), Op->getValue());
 1976       APFloat::opStatus status = Val.convert(
 1977           Ty->getFltSemantics(), APFloat::rmNearestTiesToEven, &lost);
 2045         APFloat V1 = Op1->getValueAPF();
 2046         const APFloat &V2 = Op2->getValueAPF();
 2052         const APFloat &C1 = Op1->getValueAPF();
 2053         const APFloat &C2 = Op2->getValueAPF();
 2058         const APFloat &C1 = Op1->getValueAPF();
 2059         const APFloat &C2 = Op2->getValueAPF();
 2064         const APFloat &C1 = Op1->getValueAPF();
 2065         const APFloat &C2 = Op2->getValueAPF();
 2070         const APFloat &C1 = Op1->getValueAPF();
 2071         const APFloat &C2 = Op2->getValueAPF();
 2093           APFloat V = Op1->getValueAPF();
 2094           if (APFloat::opStatus::opOK == V.mod(Op2->getValueAPF()))
 2291           APFloat V = Op1->getValueAPF();
 2293                              APFloat::rmNearestTiesToEven);
 2503       const APFloat &Op = OpC->getValueAPF();
 2521           return Op.compare(APFloat(-745.0)) != APFloat::cmpLessThan &&
 2522                  Op.compare(APFloat(709.0)) != APFloat::cmpGreaterThan;
 2524           return Op.compare(APFloat(-103.0f)) != APFloat::cmpLessThan &&
 2525                  Op.compare(APFloat(88.0f)) != APFloat::cmpGreaterThan;
 2533           return Op.compare(APFloat(-1074.0)) != APFloat::cmpLessThan &&
 2534                  Op.compare(APFloat(1023.0)) != APFloat::cmpGreaterThan;
 2536           return Op.compare(APFloat(-149.0f)) != APFloat::cmpLessThan &&
 2537                  Op.compare(APFloat(127.0f)) != APFloat::cmpGreaterThan;
 2568                    APFloat::cmpLessThan &&
 2570                    APFloat::cmpGreaterThan;
 2580           return Op.compare(APFloat(-710.0)) != APFloat::cmpLessThan &&
 2581                  Op.compare(APFloat(710.0)) != APFloat::cmpGreaterThan;
 2583           return Op.compare(APFloat(-89.0f)) != APFloat::cmpLessThan &&
 2584                  Op.compare(APFloat(89.0f)) != APFloat::cmpGreaterThan;
 2604       const APFloat &Op0 = Op0C->getValueAPF();
 2605       const APFloat &Op1 = Op1C->getValueAPF();
lib/Analysis/InstructionSimplify.cpp
 3529   const APFloat *C;
 3582     const APFloat *C2;
 3584          C2->compare(*C) == APFloat::cmpLessThan) ||
 3586          C2->compare(*C) == APFloat::cmpGreaterThan)) {
 3915   const APFloat *C;
 5120     const APFloat *C;
lib/Analysis/ValueTracking.cpp
 4502   const APFloat *FC1;
 4506   const APFloat *FC2;
 4515         FC1->compare(*FC2) == APFloat::cmpResult::cmpLessThan)
 4525         FC1->compare(*FC2) == APFloat::cmpResult::cmpGreaterThan)
lib/AsmParser/LLLexer.cpp
 1004     APFloatVal = APFloat(APFloat::IEEEdouble(),
 1015     APFloatVal = APFloat(APFloat::x87DoubleExtended(), APInt(80, Pair));
 1020     APFloatVal = APFloat(APFloat::IEEEquad(), APInt(128, Pair));
 1025     APFloatVal = APFloat(APFloat::PPCDoubleDouble(), APInt(128, Pair));
 1028     APFloatVal = APFloat(APFloat::IEEEhalf(),
 1105   APFloatVal = APFloat(APFloat::IEEEdouble(),
 1142   APFloatVal = APFloat(APFloat::IEEEdouble(),
lib/AsmParser/LLLexer.h
   41     APFloat APFloatVal;
   63     const APFloat &getAPFloatVal() const { return APFloatVal; }
lib/AsmParser/LLParser.cpp
 5174     if (&ID.APFloatVal.getSemantics() == &APFloat::IEEEdouble()) {
 5177         ID.APFloatVal.convert(APFloat::IEEEhalf(), APFloat::rmNearestTiesToEven,
 5177         ID.APFloatVal.convert(APFloat::IEEEhalf(), APFloat::rmNearestTiesToEven,
 5180         ID.APFloatVal.convert(APFloat::IEEEsingle(), APFloat::rmNearestTiesToEven,
 5180         ID.APFloatVal.convert(APFloat::IEEEsingle(), APFloat::rmNearestTiesToEven,
lib/AsmParser/LLParser.h
   65     APFloat APFloatVal{0.0};
lib/Bitcode/Reader/BitcodeReader.cpp
 2403         V = ConstantFP::get(Context, APFloat(APFloat::IEEEhalf(),
 2406         V = ConstantFP::get(Context, APFloat(APFloat::IEEEsingle(),
 2409         V = ConstantFP::get(Context, APFloat(APFloat::IEEEdouble(),
 2416         V = ConstantFP::get(Context, APFloat(APFloat::x87DoubleExtended(),
 2419         V = ConstantFP::get(Context, APFloat(APFloat::IEEEquad(),
 2422         V = ConstantFP::get(Context, APFloat(APFloat::PPCDoubleDouble(),
lib/CodeGen/AsmPrinter/AsmPrinter.cpp
  860     APFloat APF = APFloat(MI->getOperand(0).getFPImm()->getValueAPF());
  869       APF.convert(APFloat::IEEEdouble(), APFloat::rmNearestTiesToEven,
  869       APF.convert(APFloat::IEEEdouble(), APFloat::rmNearestTiesToEven,
 2323 static void emitGlobalConstantFP(APFloat APF, Type *ET, AsmPrinter &AP);
 2473 static void emitGlobalConstantFP(APFloat APF, Type *ET, AsmPrinter &AP) {
lib/CodeGen/AsmPrinter/DwarfUnit.cpp
  513   APFloat FPImm = MO.getFPImm()->getValueAPF();
lib/CodeGen/GlobalISel/LegalizerHelper.cpp
 1689     APFloat Val = SrcMO.getFPImm()->getValueAPF();
 1693       Val.convert(APFloat::IEEEsingle(), APFloat::rmNearestTiesToEven,
 1693       Val.convert(APFloat::IEEEsingle(), APFloat::rmNearestTiesToEven,
 1697       Val.convert(APFloat::IEEEdouble(), APFloat::rmNearestTiesToEven,
 1697       Val.convert(APFloat::IEEEdouble(), APFloat::rmNearestTiesToEven,
 3923   APFloat TwoPExpFP(SrcTy.getSizeInBits() == 32 ? APFloat::IEEEsingle()
 3923   APFloat TwoPExpFP(SrcTy.getSizeInBits() == 32 ? APFloat::IEEEsingle()
 3924                                                 : APFloat::IEEEdouble(),
 3926   TwoPExpFP.convertFromAPInt(TwoPExpInt, false, APFloat::rmNearestTiesToEven);
lib/CodeGen/GlobalISel/MachineIRBuilder.cpp
  355                                                      const APFloat &Val) {
lib/CodeGen/GlobalISel/Utils.cpp
  325 APFloat llvm::getAPFloatFromSize(double Val, unsigned Size) {
  333   APFloat APF(Val);
  334   APF.convert(APFloat::IEEEhalf(), APFloat::rmNearestTiesToEven, &Ignored);
  334   APF.convert(APFloat::IEEEhalf(), APFloat::rmNearestTiesToEven, &Ignored);
lib/CodeGen/MachineVerifier.cpp
  999       if (APFloat::getSizeInBits(CF->getValueAPF().getSemantics()) !=
lib/CodeGen/SelectionDAG/DAGCombiner.cpp
12542       const APFloat &N1APF = N1CFP->getValueAPF();
12543       APFloat Recip(N1APF.getSemantics(), 1); // 1.0
12544       APFloat::opStatus st = Recip.divide(N1APF, APFloat::rmNearestTiesToEven);
12544       APFloat::opStatus st = Recip.divide(N1APF, APFloat::rmNearestTiesToEven);
12547       if ((st == APFloat::opOK || st == APFloat::opInexact) && // Not too nasty
12547       if ((st == APFloat::opOK || st == APFloat::opInexact) && // Not too nasty
12676     const APFloat &V = N1C->getValueAPF();
12959   if (APFloat::semanticsPrecision(sem) >= ActualSize) {
13200       APFloat CVal = CFP1->getValueAPF();
13216                             APFloat (*Op)(const APFloat &, const APFloat &)) {
13216                             APFloat (*Op)(const APFloat &, const APFloat &)) {
13216                             APFloat (*Op)(const APFloat &, const APFloat &)) {
13224     const APFloat &C0 = N0CFP->getValueAPF();
13225     const APFloat &C1 = N1CFP->getValueAPF();
20446           APFloat SmallestNorm = APFloat::getSmallestNormalized(FltSem);
20446           APFloat SmallestNorm = APFloat::getSmallestNormalized(FltSem);
lib/CodeGen/SelectionDAG/FastISel.cpp
  424       const APFloat &Flt = CF->getValueAPF();
  429       (void)Flt.convertToInteger(SIntVal, APFloat::rmTowardZero, &isExact);
lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
  307   APFloat APF = CFP->getValueAPF();
lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp
 1609                    DAG.getConstantFP(APFloat(APFloat::PPCDoubleDouble(),
lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp
 3989   if (APFloat::semanticsPrecision(sem) >= SrcVT.getSizeInBits()-1 &&
lib/CodeGen/SelectionDAG/SelectionDAG.cpp
  114 bool ConstantFPSDNode::isExactlyValue(const APFloat& V) const {
  119                                            const APFloat& Val) {
  123   APFloat Val2 = APFloat(Val);
  126                       APFloat::rmNearestTiesToEven,
 1301 SDValue SelectionDAG::getConstantFP(const APFloat &V, const SDLoc &DL, EVT VT,
 1348     APFloat APF = APFloat(Val);
 1349     APF.convert(EVTToAPFloatSemantics(EltVT), APFloat::rmNearestTiesToEven,
 2039     APFloat::cmpResult R = N1CFP->getValueAPF().compare(N2CFP->getValueAPF());
 2042     case ISD::SETEQ:  if (R==APFloat::cmpUnordered)
 2045     case ISD::SETOEQ: return getBoolConstant(R==APFloat::cmpEqual, dl, VT,
 2047     case ISD::SETNE:  if (R==APFloat::cmpUnordered)
 2050     case ISD::SETONE: return getBoolConstant(R==APFloat::cmpGreaterThan ||
 2051                                              R==APFloat::cmpLessThan, dl, VT,
 2053     case ISD::SETLT:  if (R==APFloat::cmpUnordered)
 2056     case ISD::SETOLT: return getBoolConstant(R==APFloat::cmpLessThan, dl, VT,
 2058     case ISD::SETGT:  if (R==APFloat::cmpUnordered)
 2061     case ISD::SETOGT: return getBoolConstant(R==APFloat::cmpGreaterThan, dl,
 2063     case ISD::SETLE:  if (R==APFloat::cmpUnordered)
 2066     case ISD::SETOLE: return getBoolConstant(R==APFloat::cmpLessThan ||
 2067                                              R==APFloat::cmpEqual, dl, VT,
 2069     case ISD::SETGE:  if (R==APFloat::cmpUnordered)
 2072     case ISD::SETOGE: return getBoolConstant(R==APFloat::cmpGreaterThan ||
 2073                                          R==APFloat::cmpEqual, dl, VT, OpVT);
 2074     case ISD::SETO:   return getBoolConstant(R!=APFloat::cmpUnordered, dl, VT,
 2076     case ISD::SETUO:  return getBoolConstant(R==APFloat::cmpUnordered, dl, VT,
 2078     case ISD::SETUEQ: return getBoolConstant(R==APFloat::cmpUnordered ||
 2079                                              R==APFloat::cmpEqual, dl, VT,
 2081     case ISD::SETUNE: return getBoolConstant(R!=APFloat::cmpEqual, dl, VT,
 2083     case ISD::SETULT: return getBoolConstant(R==APFloat::cmpUnordered ||
 2084                                              R==APFloat::cmpLessThan, dl, VT,
 2086     case ISD::SETUGT: return getBoolConstant(R==APFloat::cmpGreaterThan ||
 2087                                              R==APFloat::cmpUnordered, dl, VT,
 2089     case ISD::SETULE: return getBoolConstant(R!=APFloat::cmpGreaterThan, dl,
 2091     case ISD::SETUGE: return getBoolConstant(R!=APFloat::cmpLessThan, dl, VT,
 4303       APFloat apf(EVTToAPFloatSemantics(VT),
 4307                                  APFloat::rmNearestTiesToEven);
 4312         return getConstantFP(APFloat(APFloat::IEEEhalf(), Val), DL, VT);
 4314         return getConstantFP(APFloat(APFloat::IEEEsingle(), Val), DL, VT);
 4316         return getConstantFP(APFloat(APFloat::IEEEdouble(), Val), DL, VT);
 4318         return getConstantFP(APFloat(APFloat::IEEEquad(), Val), DL, VT);
 4342       APFloat FPV(APFloat::IEEEhalf(),
 4342       APFloat FPV(APFloat::IEEEhalf(),
 4348                         APFloat::rmNearestTiesToEven, &Ignored);
 4356     APFloat V = C->getValueAPF();    // make copy
 4365       APFloat::opStatus fs = V.roundToIntegral(APFloat::rmTowardPositive);
 4365       APFloat::opStatus fs = V.roundToIntegral(APFloat::rmTowardPositive);
 4366       if (fs == APFloat::opOK || fs == APFloat::opInexact)
 4366       if (fs == APFloat::opOK || fs == APFloat::opInexact)
 4371       APFloat::opStatus fs = V.roundToIntegral(APFloat::rmTowardZero);
 4371       APFloat::opStatus fs = V.roundToIntegral(APFloat::rmTowardZero);
 4372       if (fs == APFloat::opOK || fs == APFloat::opInexact)
 4372       if (fs == APFloat::opOK || fs == APFloat::opInexact)
 4377       APFloat::opStatus fs = V.roundToIntegral(APFloat::rmTowardNegative);
 4377       APFloat::opStatus fs = V.roundToIntegral(APFloat::rmTowardNegative);
 4378       if (fs == APFloat::opOK || fs == APFloat::opInexact)
 4378       if (fs == APFloat::opOK || fs == APFloat::opInexact)
 4387                       APFloat::rmNearestTiesToEven, &ignored);
 4395       APFloat::opStatus s =
 4396           V.convertToInteger(IntVal, APFloat::rmTowardZero, &ignored);
 4397       if (s == APFloat::opInvalidOp) // inexact is OK, in fact usual
 4413       (void)V.convert(APFloat::IEEEhalf(),
 4414                       APFloat::rmNearestTiesToEven, &Ignored);
 4987     APFloat C1 = N1CFP->getValueAPF(), C2 = N2CFP->getValueAPF();
 4990       C1.add(C2, APFloat::rmNearestTiesToEven);
 4993       C1.subtract(C2, APFloat::rmNearestTiesToEven);
 4996       C1.multiply(C2, APFloat::rmNearestTiesToEven);
 4999       C1.divide(C2, APFloat::rmNearestTiesToEven);
 5011     APFloat C1 = N1CFP->getValueAPF();    // make copy
 5015     (void) C1.convert(EVTToAPFloatSemantics(VT), APFloat::rmNearestTiesToEven,
 5031       return getConstantFP(APFloat::getNaN(EVTToAPFloatSemantics(VT)), DL, VT);
 5458       APFloat  V1 = N1CFP->getValueAPF();
 5459       const APFloat &V2 = N2CFP->getValueAPF();
 5460       const APFloat &V3 = N3CFP->getValueAPF();
 5461       V1.fusedMultiplyAdd(V2, V3, APFloat::rmNearestTiesToEven);
 9497     const APFloat &APF = CN->getValueAPF();
 9498     if (APF.convertToInteger(IntVal, APFloat::rmTowardZero, &IsExact) !=
 9499             APFloat::opOK ||
lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
 4892   return DAG.getConstantFP(APFloat(APFloat::IEEEsingle(), APInt(32, Flt)), dl,
 5314       APFloat Ten(10.0f);
lib/CodeGen/SelectionDAG/SelectionDAGDumper.cpp
  571     if (&CSDN->getValueAPF().getSemantics() == &APFloat::IEEEsingle())
  573     else if (&CSDN->getValueAPF().getSemantics() == &APFloat::IEEEdouble())
lib/CodeGen/SelectionDAG/TargetLowering.cpp
 5472     APFloat V = cast<ConstantFPSDNode>(Op)->getValueAPF();
 5483       APFloat V = cast<ConstantFPSDNode>(C)->getValueAPF();
 5972   APFloat APF(APFSem, APInt::getNullValue(SrcVT.getScalarSizeInBits()));
 5974   if (APFloat::opOverflow &
 5975       APF.convertFromAPInt(SignMask, false, APFloat::rmNearestTiesToEven)) {
lib/ExecutionEngine/ExecutionEngine.cpp
  693         APFloat apf = APFloat::getZero(APFloat::x87DoubleExtended());
  693         APFloat apf = APFloat::getZero(APFloat::x87DoubleExtended());
  693         APFloat apf = APFloat::getZero(APFloat::x87DoubleExtended());
  696                                    APFloat::rmNearestTiesToEven);
  708         APFloat apf = APFloat::getZero(APFloat::x87DoubleExtended());
  708         APFloat apf = APFloat::getZero(APFloat::x87DoubleExtended());
  708         APFloat apf = APFloat::getZero(APFloat::x87DoubleExtended());
  711                                    APFloat::rmNearestTiesToEven);
  725         APFloat apf = APFloat(APFloat::x87DoubleExtended(), GV.IntVal);
  725         APFloat apf = APFloat(APFloat::x87DoubleExtended(), GV.IntVal);
  730                                    APFloat::rmTowardZero, &ignored);
  845         APFloat apfLHS = APFloat(Sem, LHS.IntVal);
  849             apfLHS.add(APFloat(Sem, RHS.IntVal), APFloat::rmNearestTiesToEven);
  854                             APFloat::rmNearestTiesToEven);
  859                             APFloat::rmNearestTiesToEven);
  864                           APFloat::rmNearestTiesToEven);
lib/FuzzMutate/OpDescriptor.cpp
   26     Cs.push_back(ConstantFP::get(Ctx, APFloat::getZero(Sem)));
   27     Cs.push_back(ConstantFP::get(Ctx, APFloat::getLargest(Sem)));
   28     Cs.push_back(ConstantFP::get(Ctx, APFloat::getSmallest(Sem)));
lib/IR/AsmWriter.cpp
 1303     const APFloat &APF = CFP->getValueAPF();
 1304     if (&APF.getSemantics() == &APFloat::IEEEsingle() ||
 1305         &APF.getSemantics() == &APFloat::IEEEdouble()) {
 1312       bool isDouble = &APF.getSemantics() == &APFloat::IEEEdouble();
 1328         if (APFloat(APFloat::IEEEdouble(), StrVal).convertToDouble() == Val) {
 1339       APFloat apf = APF;
 1342         apf.convert(APFloat::IEEEdouble(), APFloat::rmNearestTiesToEven,
 1342         apf.convert(APFloat::IEEEdouble(), APFloat::rmNearestTiesToEven,
 1353     if (&APF.getSemantics() == &APFloat::x87DoubleExtended()) {
 1360     } else if (&APF.getSemantics() == &APFloat::IEEEquad()) {
 1366     } else if (&APF.getSemantics() == &APFloat::PPCDoubleDouble()) {
 1372     } else if (&APF.getSemantics() == &APFloat::IEEEhalf()) {
lib/IR/ConstantFold.cpp
  596       APFloat Val = FPC->getValueAPF();
  597       Val.convert(DestTy->isHalfTy() ? APFloat::IEEEhalf() :
  598                   DestTy->isFloatTy() ? APFloat::IEEEsingle() :
  599                   DestTy->isDoubleTy() ? APFloat::IEEEdouble() :
  600                   DestTy->isX86_FP80Ty() ? APFloat::x87DoubleExtended() :
  601                   DestTy->isFP128Ty() ? APFloat::IEEEquad() :
  602                   DestTy->isPPC_FP128Ty() ? APFloat::PPCDoubleDouble() :
  603                   APFloat::Bogus(),
  604                   APFloat::rmNearestTiesToEven, &ignored);
  611       const APFloat &V = FPC->getValueAPF();
  615       if (APFloat::opInvalidOp ==
  616           V.convertToInteger(IntVal, APFloat::rmTowardZero, &ignored)) {
  685       APFloat apf(DestTy->getFltSemantics(),
  688                            APFloat::rmNearestTiesToEven);
  962     const APFloat &CV = CFP->getValueAPF();
 1284       const APFloat &C1V = CFP1->getValueAPF();
 1285       const APFloat &C2V = CFP2->getValueAPF();
 1286       APFloat C3V = C1V;  // copy for modification
 1291         (void)C3V.add(C2V, APFloat::rmNearestTiesToEven);
 1294         (void)C3V.subtract(C2V, APFloat::rmNearestTiesToEven);
 1297         (void)C3V.multiply(C2V, APFloat::rmNearestTiesToEven);
 1300         (void)C3V.divide(C2V, APFloat::rmNearestTiesToEven);
 1878     const APFloat &C1V = cast<ConstantFP>(C1)->getValueAPF();
 1879     const APFloat &C2V = cast<ConstantFP>(C2)->getValueAPF();
 1880     APFloat::cmpResult R = C1V.compare(C2V);
 1886       return ConstantInt::get(ResultTy, R==APFloat::cmpUnordered);
 1888       return ConstantInt::get(ResultTy, R!=APFloat::cmpUnordered);
 1890       return ConstantInt::get(ResultTy, R==APFloat::cmpUnordered ||
 1891                                         R==APFloat::cmpEqual);
 1893       return ConstantInt::get(ResultTy, R==APFloat::cmpEqual);
 1895       return ConstantInt::get(ResultTy, R!=APFloat::cmpEqual);
 1897       return ConstantInt::get(ResultTy, R==APFloat::cmpLessThan ||
 1898                                         R==APFloat::cmpGreaterThan);
 1900       return ConstantInt::get(ResultTy, R==APFloat::cmpUnordered ||
 1901                                         R==APFloat::cmpLessThan);
 1903       return ConstantInt::get(ResultTy, R==APFloat::cmpLessThan);
 1905       return ConstantInt::get(ResultTy, R==APFloat::cmpUnordered ||
 1906                                         R==APFloat::cmpGreaterThan);
 1908       return ConstantInt::get(ResultTy, R==APFloat::cmpGreaterThan);
 1910       return ConstantInt::get(ResultTy, R!=APFloat::cmpGreaterThan);
 1912       return ConstantInt::get(ResultTy, R==APFloat::cmpLessThan ||
 1913                                         R==APFloat::cmpEqual);
 1915       return ConstantInt::get(ResultTy, R!=APFloat::cmpLessThan);
 1917       return ConstantInt::get(ResultTy, R==APFloat::cmpGreaterThan ||
 1918                                         R==APFloat::cmpEqual);
lib/IR/Constants.cpp
  295                            APFloat::getZero(APFloat::IEEEhalf()));
  295                            APFloat::getZero(APFloat::IEEEhalf()));
  298                            APFloat::getZero(APFloat::IEEEsingle()));
  298                            APFloat::getZero(APFloat::IEEEsingle()));
  301                            APFloat::getZero(APFloat::IEEEdouble()));
  301                            APFloat::getZero(APFloat::IEEEdouble()));
  304                            APFloat::getZero(APFloat::x87DoubleExtended()));
  304                            APFloat::getZero(APFloat::x87DoubleExtended()));
  307                            APFloat::getZero(APFloat::IEEEquad()));
  307                            APFloat::getZero(APFloat::IEEEquad()));
  310                            APFloat(APFloat::PPCDoubleDouble(),
  349     APFloat FL = APFloat::getAllOnesValue(Ty->getPrimitiveSizeInBits(),
  349     APFloat FL = APFloat::getAllOnesValue(Ty->getPrimitiveSizeInBits(),
  702     return &APFloat::IEEEhalf();
  704     return &APFloat::IEEEsingle();
  706     return &APFloat::IEEEdouble();
  708     return &APFloat::x87DoubleExtended();
  710     return &APFloat::IEEEquad();
  713   return &APFloat::PPCDoubleDouble();
  719   APFloat FV(V);
  722              APFloat::rmNearestTiesToEven, &ignored);
  732 Constant *ConstantFP::get(Type *Ty, const APFloat &V) {
  747   APFloat FV(*TypeToFloatSemantics(Ty->getScalarType()), Str);
  759   APFloat NaN = APFloat::getNaN(Semantics, Negative, Payload);
  759   APFloat NaN = APFloat::getNaN(Semantics, Negative, Payload);
  770   APFloat NaN = APFloat::getQNaN(Semantics, Negative, Payload);
  770   APFloat NaN = APFloat::getQNaN(Semantics, Negative, Payload);
  781   APFloat NaN = APFloat::getSNaN(Semantics, Negative, Payload);
  781   APFloat NaN = APFloat::getSNaN(Semantics, Negative, Payload);
  792   APFloat NegZero = APFloat::getZero(Semantics, /*Negative=*/true);
  792   APFloat NegZero = APFloat::getZero(Semantics, /*Negative=*/true);
  811 ConstantFP* ConstantFP::get(LLVMContext &Context, const APFloat& V) {
  818     if (&V.getSemantics() == &APFloat::IEEEhalf())
  820     else if (&V.getSemantics() == &APFloat::IEEEsingle())
  822     else if (&V.getSemantics() == &APFloat::IEEEdouble())
  824     else if (&V.getSemantics() == &APFloat::x87DoubleExtended())
  826     else if (&V.getSemantics() == &APFloat::IEEEquad())
  841   Constant *C = get(Ty->getContext(), APFloat::getInf(Semantics, Negative));
  849 ConstantFP::ConstantFP(Type *Ty, const APFloat &V)
  855 bool ConstantFP::isExactlyValue(const APFloat &V) const {
 1312 bool ConstantFP::isValueValidForType(Type *Ty, const APFloat& Val) {
 1314   APFloat Val2 = APFloat(Val);
 1322     if (&Val2.getSemantics() == &APFloat::IEEEhalf())
 1324     Val2.convert(APFloat::IEEEhalf(), APFloat::rmNearestTiesToEven, &losesInfo);
 1324     Val2.convert(APFloat::IEEEhalf(), APFloat::rmNearestTiesToEven, &losesInfo);
 1328     if (&Val2.getSemantics() == &APFloat::IEEEsingle())
 1330     Val2.convert(APFloat::IEEEsingle(), APFloat::rmNearestTiesToEven, &losesInfo);
 1330     Val2.convert(APFloat::IEEEsingle(), APFloat::rmNearestTiesToEven, &losesInfo);
 1334     if (&Val2.getSemantics() == &APFloat::IEEEhalf() ||
 1335         &Val2.getSemantics() == &APFloat::IEEEsingle() ||
 1336         &Val2.getSemantics() == &APFloat::IEEEdouble())
 1338     Val2.convert(APFloat::IEEEdouble(), APFloat::rmNearestTiesToEven, &losesInfo);
 1338     Val2.convert(APFloat::IEEEdouble(), APFloat::rmNearestTiesToEven, &losesInfo);
 1342     return &Val2.getSemantics() == &APFloat::IEEEhalf() ||
 1343            &Val2.getSemantics() == &APFloat::IEEEsingle() ||
 1344            &Val2.getSemantics() == &APFloat::IEEEdouble() ||
 1345            &Val2.getSemantics() == &APFloat::x87DoubleExtended();
 1347     return &Val2.getSemantics() == &APFloat::IEEEhalf() ||
 1348            &Val2.getSemantics() == &APFloat::IEEEsingle() ||
 1349            &Val2.getSemantics() == &APFloat::IEEEdouble() ||
 1350            &Val2.getSemantics() == &APFloat::IEEEquad();
 1352     return &Val2.getSemantics() == &APFloat::IEEEhalf() ||
 1353            &Val2.getSemantics() == &APFloat::IEEEsingle() ||
 1354            &Val2.getSemantics() == &APFloat::IEEEdouble() ||
 1355            &Val2.getSemantics() == &APFloat::PPCDoubleDouble();
 2740 APFloat ConstantDataSequential::getElementAsAPFloat(unsigned Elt) const {
 2748     return APFloat(APFloat::IEEEhalf(), APInt(16, EltVal));
 2752     return APFloat(APFloat::IEEEsingle(), APInt(32, EltVal));
 2756     return APFloat(APFloat::IEEEdouble(), APInt(64, EltVal));
lib/IR/Core.cpp
 1360   APFloat APF = cFP->getValueAPF();
 1361   APF.convert(APFloat::IEEEdouble(), APFloat::rmNearestTiesToEven, &APFLosesInfo);
 1361   APF.convert(APFloat::IEEEdouble(), APFloat::rmNearestTiesToEven, &APFLosesInfo);
lib/IR/LLVMContextImpl.h
   85   static inline APFloat getEmptyKey() { return APFloat(APFloat::Bogus(), 1); }
   85   static inline APFloat getEmptyKey() { return APFloat(APFloat::Bogus(), 1); }
   86   static inline APFloat getTombstoneKey() { return APFloat(APFloat::Bogus(), 2); }
   86   static inline APFloat getTombstoneKey() { return APFloat(APFloat::Bogus(), 2); }
   88   static unsigned getHashValue(const APFloat &Key) {
   92   static bool isEqual(const APFloat &LHS, const APFloat &RHS) {
   92   static bool isEqual(const APFloat &LHS, const APFloat &RHS) {
 1265       DenseMap<APFloat, std::unique_ptr<ConstantFP>, DenseMapAPFloatKeyInfo>;
lib/IR/Metadata.cpp
  933   APFloat AVal = mdconst::extract<ConstantFP>(A->getOperand(0))->getValueAPF();
  934   APFloat BVal = mdconst::extract<ConstantFP>(B->getOperand(0))->getValueAPF();
  935   if (AVal.compare(BVal) == APFloat::cmpLessThan)
lib/IR/Verifier.cpp
 4165       const APFloat &Accuracy = CFP0->getValueAPF();
lib/MC/MCParser/AsmParser.cpp
 1218     APFloat RealVal(APFloat::IEEEdouble(), getTok().getString());
 1218     APFloat RealVal(APFloat::IEEEdouble(), getTok().getString());
 1971       return parseDirectiveRealValue(IDVal, APFloat::IEEEsingle());
 1974       return parseDirectiveRealValue(IDVal, APFloat::IEEEdouble());
 2166       return parseDirectiveRealDCB(IDVal, APFloat::IEEEdouble());
 2170       return parseDirectiveRealDCB(IDVal, APFloat::IEEEsingle());
 3132   APFloat Value(Semantics);
 3136       Value = APFloat::getInf(Semantics);
 3138       Value = APFloat::getNaN(Semantics, false, ~0);
 3141   } else if (Value.convertFromString(IDVal, APFloat::rmNearestTiesToEven) ==
 3142              APFloat::opInvalidOp)
lib/Support/APFloat.cpp
  136     if (&Sem == &llvm::APFloat::IEEEhalf())
  138     else if (&Sem == &llvm::APFloat::IEEEsingle())
  140     else if (&Sem == &llvm::APFloat::IEEEdouble())
  142     else if (&Sem == &llvm::APFloat::x87DoubleExtended())
  144     else if (&Sem == &llvm::APFloat::IEEEquad())
  146     else if (&Sem == &llvm::APFloat::PPCDoubleDouble())
 3650 bool IEEEFloat::getExactInverse(APFloat *inv) const {
 3887       Floats(new APFloat[2]{APFloat(semIEEEdouble), APFloat(semIEEEdouble)}) {
 3893       Floats(new APFloat[2]{APFloat(semIEEEdouble, uninitialized),
 3899     : Semantics(&S), Floats(new APFloat[2]{APFloat(semIEEEdouble, I),
 3906       Floats(new APFloat[2]{
 3912 DoubleAPFloat::DoubleAPFloat(const fltSemantics &S, APFloat &&First,
 3913                              APFloat &&Second)
 3915       Floats(new APFloat[2]{std::move(First), std::move(Second)}) {
 3923       Floats(RHS.Floats ? new APFloat[2]{APFloat(RHS.Floats[0]),
 3949 APFloat::opStatus DoubleAPFloat::addImpl(const APFloat &a, const APFloat &aa,
 3949 APFloat::opStatus DoubleAPFloat::addImpl(const APFloat &a, const APFloat &aa,
 3949 APFloat::opStatus DoubleAPFloat::addImpl(const APFloat &a, const APFloat &aa,
 3950                                          const APFloat &c, const APFloat &cc,
 3950                                          const APFloat &c, const APFloat &cc,
 3953   APFloat z = a;
 3965     if (AComparedToC == APFloat::cmpGreaterThan) {
 3980     APFloat zz = aa;
 3982     if (AComparedToC == APFloat::cmpGreaterThan) {
 3997     APFloat q = a;
 4002     auto zz = q;
 4028 APFloat::opStatus DoubleAPFloat::addWithSpecial(const DoubleAPFloat &LHS,
 4063   APFloat A(LHS.Floats[0]), AA(LHS.Floats[1]), C(RHS.Floats[0]),
 4074 APFloat::opStatus DoubleAPFloat::add(const DoubleAPFloat &RHS,
 4079 APFloat::opStatus DoubleAPFloat::subtract(const DoubleAPFloat &RHS,
 4087 APFloat::opStatus DoubleAPFloat::multiply(const DoubleAPFloat &RHS,
 4088                                           APFloat::roundingMode RM) {
 4131   APFloat A = Floats[0], B = Floats[1], C = RHS.Floats[0], D = RHS.Floats[1];
 4133   APFloat T = A;
 4142   APFloat Tau = A;
 4148     APFloat V = A;
 4151     APFloat W = B;
 4158   APFloat U = T;
 4173 APFloat::opStatus DoubleAPFloat::divide(const DoubleAPFloat &RHS,
 4174                                         APFloat::roundingMode RM) {
 4176   APFloat Tmp(semPPCDoubleDoubleLegacy, bitcastToAPInt());
 4183 APFloat::opStatus DoubleAPFloat::remainder(const DoubleAPFloat &RHS) {
 4185   APFloat Tmp(semPPCDoubleDoubleLegacy, bitcastToAPInt());
 4192 APFloat::opStatus DoubleAPFloat::mod(const DoubleAPFloat &RHS) {
 4194   APFloat Tmp(semPPCDoubleDoubleLegacy, bitcastToAPInt());
 4200 APFloat::opStatus
 4203                                 APFloat::roundingMode RM) {
 4205   APFloat Tmp(semPPCDoubleDoubleLegacy, bitcastToAPInt());
 4213 APFloat::opStatus DoubleAPFloat::roundToIntegral(APFloat::roundingMode RM) {
 4213 APFloat::opStatus DoubleAPFloat::roundToIntegral(APFloat::roundingMode RM) {
 4215   APFloat Tmp(semPPCDoubleDoubleLegacy, bitcastToAPInt());
 4226 APFloat::cmpResult
 4247 APFloat::fltCategory DoubleAPFloat::getCategory() const {
 4290 APFloat::cmpResult DoubleAPFloat::compare(const DoubleAPFloat &RHS) const {
 4293   if (Result == APFloat::cmpEqual)
 4318 APFloat::opStatus DoubleAPFloat::convertFromString(StringRef S,
 4321   APFloat Tmp(semPPCDoubleDoubleLegacy);
 4327 APFloat::opStatus DoubleAPFloat::next(bool nextDown) {
 4329   APFloat Tmp(semPPCDoubleDoubleLegacy, bitcastToAPInt());
 4335 APFloat::opStatus
 4344 APFloat::opStatus DoubleAPFloat::convertFromAPInt(const APInt &Input,
 4348   APFloat Tmp(semPPCDoubleDoubleLegacy);
 4354 APFloat::opStatus
 4359   APFloat Tmp(semPPCDoubleDoubleLegacy);
 4365 APFloat::opStatus
 4370   APFloat Tmp(semPPCDoubleDoubleLegacy);
 4422 bool DoubleAPFloat::getExactInverse(APFloat *inv) const {
 4424   APFloat Tmp(semPPCDoubleDoubleLegacy, bitcastToAPInt());
 4427   APFloat Inv(semPPCDoubleDoubleLegacy);
 4433 DoubleAPFloat scalbn(DoubleAPFloat Arg, int Exp, APFloat::roundingMode RM) {
 4440                     APFloat::roundingMode RM) {
 4442   APFloat First = frexp(Arg.Floats[0], Exp, RM);
 4443   APFloat Second = Arg.Floats[1];
 4444   if (Arg.getCategory() == APFloat::fcNormal)
 4466 APFloat::opStatus APFloat::convertFromString(StringRef Str, roundingMode RM) {
 4470 hash_code hash_value(const APFloat &Arg) {
 4471   if (APFloat::usesLayout<detail::IEEEFloat>(Arg.getSemantics()))
 4473   if (APFloat::usesLayout<detail::DoubleAPFloat>(Arg.getSemantics()))
 4483 APFloat::opStatus APFloat::convert(const fltSemantics &ToSemantics,
 4508 APFloat APFloat::getAllOnesValue(unsigned BitWidth, bool isIEEE) {
 4548 APFloat::opStatus APFloat::convertToInteger(APSInt &result,
lib/Support/ScaledNumber.cpp
  185   APFloat Float(APFloat::x87DoubleExtended(), APInt(80, RawBits));
  185   APFloat Float(APFloat::x87DoubleExtended(), APInt(80, RawBits));
lib/Support/StringRef.cpp
  584   APFloat F(0.0);
  585   APFloat::opStatus Status =
  586       F.convertFromString(*this, APFloat::rmNearestTiesToEven);
  587   if (Status != APFloat::opOK) {
  588     if (!AllowInexact || !(Status & APFloat::opInexact))
lib/Target/AArch64/AArch64FastISel.cpp
  406   const APFloat Val = CFP->getValueAPF();
lib/Target/AArch64/AArch64ISelDAGToDAG.cpp
 2598   APFloat FVal(0.0);
 2625   FVal.convertToInteger(IntVal, APFloat::rmTowardZero, &IsExact);
lib/Target/AArch64/AArch64ISelLowering.cpp
 5708 bool AArch64TargetLowering::isFPImmLegal(const APFloat &Imm, EVT VT,
lib/Target/AArch64/AArch64ISelLowering.h
  313   bool isFPImmLegal(const APFloat &Imm, EVT VT,
lib/Target/AArch64/AArch64InstructionSelector.cpp
 3347   const APFloat &ImmValAPF = ImmOp.getFPImm()->getValueAPF();
lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
  519   APFloat getFPImm() const {
  521     return APFloat(APFloat::IEEEdouble(), APInt(64, FPImm.Val, true));
 1223       APFloat RealVal(APFloat::IEEEdouble());
 1223       APFloat RealVal(APFloat::IEEEdouble());
 1224       if (RealVal.convertFromString(Desc->Repr, APFloat::rmTowardZero) !=
 1225           APFloat::opOK)
 1901   CreateFPImm(APFloat Val, bool IsExact, SMLoc S, MCContext &Ctx) {
 2574     APFloat F((double)AArch64_AM::getFPImmFloat(Tok.getIntVal()));
 2579     APFloat RealVal(APFloat::IEEEdouble());
 2579     APFloat RealVal(APFloat::IEEEdouble());
 2581         RealVal.convertFromString(Tok.getString(), APFloat::rmTowardZero);
 2592           RealVal, Status == APFloat::opOK, S, getContext()));
 3640       APFloat RealVal(APFloat::IEEEdouble(), Tok.getString());
 3640       APFloat RealVal(APFloat::IEEEdouble(), Tok.getString());
lib/Target/AArch64/MCTargetDesc/AArch64AddressingModes.h
  386 static inline int getFP16Imm(const APFloat &FPImm) {
  414 static inline int getFP32Imm(const APFloat &FPImm) {
  442 static inline int getFP64Imm(const APFloat &FPImm) {
lib/Target/AMDGPU/AMDGPUISelLowering.cpp
  625 bool AMDGPUTargetLowering::isFPImmLegal(const APFloat &Imm, EVT VT,
 2128   APFloat C1Val(APFloat::IEEEdouble(), "0x1.0p+52");
 2128   APFloat C1Val(APFloat::IEEEdouble(), "0x1.0p+52");
 2139   APFloat C2Val(APFloat::IEEEdouble(), "0x1.fffffffffffffp+51");
 2139   APFloat C2Val(APFloat::IEEEdouble(), "0x1.fffffffffffffp+51");
 3588 static bool isInv2Pi(const APFloat &APF) {
 3589   static const APFloat KF16(APFloat::IEEEhalf(), APInt(16, 0x3118));
 3589   static const APFloat KF16(APFloat::IEEEhalf(), APInt(16, 0x3118));
 3590   static const APFloat KF32(APFloat::IEEEsingle(), APInt(32, 0x3e22f983));
 3590   static const APFloat KF32(APFloat::IEEEsingle(), APInt(32, 0x3e22f983));
 3591   static const APFloat KF64(APFloat::IEEEdouble(), APInt(64, 0x3fc45f306dc9c882));
 3591   static const APFloat KF64(APFloat::IEEEdouble(), APInt(64, 0x3fc45f306dc9c882));
 3865   const APFloat &Val = CFP->getValueAPF();
 3866   APFloat One(Val.getSemantics(), "1.0");
lib/Target/AMDGPU/AMDGPUISelLowering.h
  180   bool isFPImmLegal(const APFloat &Imm, EVT VT,
lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
 1325   APFloat C1Val(APFloat::IEEEdouble(), "0x1.0p+52");
 1325   APFloat C1Val(APFloat::IEEEdouble(), "0x1.0p+52");
 1326   APFloat C2Val(APFloat::IEEEdouble(), "0x1.fffffffffffffp+51");
 1326   APFloat C2Val(APFloat::IEEEdouble(), "0x1.fffffffffffffp+51");
 1982   const APFloat C0Val(1.0f);
lib/Target/AMDGPU/AMDGPUPrintfRuntimeBinding.cpp
  416               APFloat Val(fpCons->getValueAPF());
  418               Val.convert(APFloat::IEEEsingle(), APFloat::rmNearestTiesToEven,
  418               Val.convert(APFloat::IEEEsingle(), APFloat::rmNearestTiesToEven,
lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
 1454     return &APFloat::IEEEsingle();
 1456     return &APFloat::IEEEdouble();
 1458     return &APFloat::IEEEhalf();
 1476     return &APFloat::IEEEsingle();
 1481     return &APFloat::IEEEdouble();
 1494     return &APFloat::IEEEhalf();
 1504 static bool canLosslesslyConvertToFPType(APFloat &FPLiteral, MVT VT) {
 1508   APFloat::opStatus Status = FPLiteral.convert(*getFltSemantics(VT),
 1509                                                APFloat::rmNearestTiesToEven,
 1512   if (Status != APFloat::opOK &&
 1514       ((Status & APFloat::opOverflow)  != 0 ||
 1515        (Status & APFloat::opUnderflow) != 0)) {
 1552     APFloat FPLiteral(APFloat::IEEEdouble(), APInt(64, Imm.Val));
 1552     APFloat FPLiteral(APFloat::IEEEdouble(), APInt(64, Imm.Val));
 1632   APFloat FPLiteral(APFloat::IEEEdouble(), APInt(64, Imm.Val));
 1632   APFloat FPLiteral(APFloat::IEEEdouble(), APInt(64, Imm.Val));
 1763       APFloat FPLiteral(APFloat::IEEEdouble(), Literal);
 1763       APFloat FPLiteral(APFloat::IEEEdouble(), Literal);
 1766                         APFloat::rmNearestTiesToEven, &lost);
 1857   APFloat FPLiteral(APFloat::IEEEdouble(), Literal);
 1857   APFloat FPLiteral(APFloat::IEEEdouble(), Literal);
 1859                     APFloat::rmNearestTiesToEven, &Lost);
 2363     APFloat RealVal(APFloat::IEEEdouble());
 2363     APFloat RealVal(APFloat::IEEEdouble());
 2364     auto roundMode = APFloat::rmNearestTiesToEven;
 2365     if (RealVal.convertFromString(Num, roundMode) == APFloat::opInvalidOp) {
lib/Target/AMDGPU/SIISelLowering.cpp
 5767     APFloat Max = APFloat::getLargest(Type->getFltSemantics());
 5767     APFloat Max = APFloat::getLargest(Type->getFltSemantics());
 5768     APFloat Min = APFloat::getLargest(Type->getFltSemantics(), true);
 5768     APFloat Min = APFloat::getLargest(Type->getFltSemantics(), true);
 7637   const APFloat K0Val(BitsToFloat(0x6f800000));
 7640   const APFloat K1Val(BitsToFloat(0x2f800000));
 8720     auto F = CFP->getValueAPF();
 8873   SelectionDAG &DAG, const SDLoc &SL, EVT VT, const APFloat &C) const {
 8879     APFloat CanonicalQNaN = APFloat::getQNaN(C.getSemantics());
 8879     APFloat CanonicalQNaN = APFloat::getQNaN(C.getSemantics());
 8911     APFloat QNaN = APFloat::getQNaN(SelectionDAG::EVTToAPFloatSemantics(VT));
 8911     APFloat QNaN = APFloat::getQNaN(SelectionDAG::EVTToAPFloatSemantics(VT));
 9074   APFloat::cmpResult Cmp = K0->getValueAPF().compare(K1->getValueAPF());
 9075   if (Cmp == APFloat::cmpGreaterThan)
 9846     const APFloat &APF = CRHS->getValueAPF();
 9915   const APFloat &F = CSrc->getValueAPF();
 9916   APFloat Zero = APFloat::getZero(F.getSemantics());
 9916   APFloat Zero = APFloat::getZero(F.getSemantics());
 9917   APFloat::cmpResult Cmp0 = F.compare(Zero);
 9918   if (Cmp0 == APFloat::cmpLessThan ||
 9919       (Cmp0 == APFloat::cmpUnordered &&
 9924   APFloat One(F.getSemantics(), "1.0");
 9925   APFloat::cmpResult Cmp1 = F.compare(One);
 9926   if (Cmp1 == APFloat::cmpGreaterThan)
lib/Target/AMDGPU/SIISelLowering.h
  157                                  const APFloat &C) const;
lib/Target/ARM/ARMFastISel.cpp
  422   const APFloat Val = CFP->getValueAPF();
lib/Target/ARM/ARMISelLowering.cpp
 6514   const APFloat &FPVal = CFP->getValueAPF();
16224 bool ARMTargetLowering::isFPImmLegal(const APFloat &Imm, EVT VT,
lib/Target/ARM/ARMISelLowering.h
  505     bool isFPImmLegal(const APFloat &Imm, EVT VT,
lib/Target/ARM/ARMInstructionSelector.cpp
  817   APFloat FPImmValue = OldInst.getOperand(1).getFPImm()->getValueAPF();
  829   APFloat FPImmValue = OldInst.getOperand(1).getFPImm()->getValueAPF();
lib/Target/ARM/ARMMCInstLower.cpp
  110     APFloat Val = MO.getFPImm()->getValueAPF();
  112     Val.convert(APFloat::IEEEdouble(), APFloat::rmTowardZero, &ignored);
  112     Val.convert(APFloat::IEEEdouble(), APFloat::rmTowardZero, &ignored);
lib/Target/ARM/AsmParser/ARMAsmParser.cpp
 5949     APFloat RealVal(APFloat::IEEEsingle(), Tok.getString());
 5949     APFloat RealVal(APFloat::IEEEsingle(), Tok.getString());
lib/Target/ARM/MCTargetDesc/ARMAddressingModes.h
  672   inline int getFP16Imm(const APFloat &FPImm) {
  700   inline int getFP32Imm(const APFloat &FPImm) {
  728   inline int getFP64Imm(const APFloat &FPImm) {
lib/Target/Hexagon/HexagonConstExtenders.cpp
  727       const APFloat &ThisF = V.CFP->getValueAPF();
  728       const APFloat &OtherF = ER.V.CFP->getValueAPF();
lib/Target/Hexagon/HexagonConstPropagation.cpp
  351     bool constToFloat(const Constant *C, APFloat &Val) const;
  441     const APFloat &Val = CF->getValueAPF();
lib/Target/Hexagon/HexagonISelLowering.cpp
 3053 bool HexagonTargetLowering::isFPImmLegal(const APFloat &Imm, EVT VT,
lib/Target/Hexagon/HexagonISelLowering.h
  294     bool isFPImmLegal(const APFloat &Imm, EVT VT,
lib/Target/Hexagon/HexagonMCInstLower.cpp
  130       APFloat Val = MO.getFPImm()->getValueAPF();
lib/Target/Mips/AsmParser/MipsAsmParser.cpp
 3263     APFloat RealVal(APFloat::IEEEdouble(), ImmOp64);
 3263     APFloat RealVal(APFloat::IEEEdouble(), ImmOp64);
lib/Target/Mips/MipsISelLowering.cpp
 4151 bool MipsTargetLowering::isFPImmLegal(const APFloat &Imm, EVT VT,
lib/Target/Mips/MipsISelLowering.h
  681     bool isFPImmLegal(const APFloat &Imm, EVT VT,
lib/Target/Mips/MipsInstructionSelector.cpp
  478     const APFloat &FPimm = I.getOperand(1).getFPImm()->getValueAPF();
lib/Target/NVPTX/NVPTXAsmPrinter.cpp
  261     const APFloat &Val = Cnt->getValueAPF();
 1691   APFloat APF = APFloat(Fp->getValueAPF()); // make a copy
 1699     APF.convert(APFloat::IEEEsingle(), APFloat::rmNearestTiesToEven, &ignored);
 1699     APF.convert(APFloat::IEEEsingle(), APFloat::rmNearestTiesToEven, &ignored);
 1703     APF.convert(APFloat::IEEEdouble(), APFloat::rmNearestTiesToEven, &ignored);
 1703     APF.convert(APFloat::IEEEdouble(), APFloat::rmNearestTiesToEven, &ignored);
lib/Target/NVPTX/NVPTXMCExpr.cpp
   19 NVPTXFloatMCExpr::create(VariantKind Kind, const APFloat &Flt, MCContext &Ctx) {
   26   APFloat APF = getAPFloat();
   35     APF.convert(APFloat::IEEEhalf(), APFloat::rmNearestTiesToEven, &Ignored);
   35     APF.convert(APFloat::IEEEhalf(), APFloat::rmNearestTiesToEven, &Ignored);
   40     APF.convert(APFloat::IEEEsingle(), APFloat::rmNearestTiesToEven, &Ignored);
   40     APF.convert(APFloat::IEEEsingle(), APFloat::rmNearestTiesToEven, &Ignored);
   45     APF.convert(APFloat::IEEEdouble(), APFloat::rmNearestTiesToEven, &Ignored);
   45     APF.convert(APFloat::IEEEdouble(), APFloat::rmNearestTiesToEven, &Ignored);
lib/Target/NVPTX/NVPTXMCExpr.h
   31   const APFloat Flt;
   33   explicit NVPTXFloatMCExpr(VariantKind Kind, APFloat Flt)
   40   static const NVPTXFloatMCExpr *create(VariantKind Kind, const APFloat &Flt,
   43   static const NVPTXFloatMCExpr *createConstantFPHalf(const APFloat &Flt,
   48   static const NVPTXFloatMCExpr *createConstantFPSingle(const APFloat &Flt,
   53   static const NVPTXFloatMCExpr *createConstantFPDouble(const APFloat &Flt,
   66   APFloat getAPFloat() const { return Flt; }
lib/Target/PowerPC/PPCISelLowering.cpp
 7467         APFloat APF = APFloat(APFloat::PPCDoubleDouble(), APInt(128, TwoE31));
 7467         APFloat APF = APFloat(APFloat::PPCDoubleDouble(), APInt(128, TwoE31));
15081 bool PPCTargetLowering::isFPImmLegal(const APFloat &Imm, EVT VT,
lib/Target/PowerPC/PPCISelLowering.h
  948     bool isFPImmLegal(const APFloat &Imm, EVT VT,
lib/Target/SystemZ/SystemZISelDAGToDAG.cpp
 1596     APFloat Imm = cast<ConstantFPSDNode>(Node)->getValueAPF();
lib/Target/SystemZ/SystemZISelLowering.cpp
  743 SystemZVectorConstantInfo::SystemZVectorConstantInfo(APFloat FPImm) {
  745   isFP128 = (&FPImm.getSemantics() == &APFloat::IEEEquad());
  779 bool SystemZTargetLowering::isFPImmLegal(const APFloat &Imm, EVT VT,
lib/Target/SystemZ/SystemZISelLowering.h
  408   bool isFPImmLegal(const APFloat &Imm, EVT VT,
  673   SystemZVectorConstantInfo(APFloat FPImm);
lib/Target/SystemZ/SystemZTDC.cpp
  130   APFloat Smallest = APFloat::getSmallestNormalized(Sem);
  130   APFloat Smallest = APFloat::getSmallestNormalized(Sem);
  131   APFloat NegSmallest = Smallest;
lib/Target/WebAssembly/MCTargetDesc/WebAssemblyInstPrinter.cpp
  184 static std::string toString(const APFloat &FP) {
  186   if (FP.isNaN() && !FP.bitwiseIsEqual(APFloat::getQNaN(FP.getSemantics())) &&
  188           APFloat::getQNaN(FP.getSemantics(), /*Negative=*/true))) {
  201       Buf, /*HexDigits=*/0, /*UpperCase=*/false, APFloat::rmNearestTiesToEven);
lib/Target/X86/X86ISelLowering.cpp
  633       APFloat TmpFlt = APFloat::getZero(APFloat::x87DoubleExtended());
  633       APFloat TmpFlt = APFloat::getZero(APFloat::x87DoubleExtended());
  633       APFloat TmpFlt = APFloat::getZero(APFloat::x87DoubleExtended());
  639       APFloat TmpFlt2(+1.0);
  640       TmpFlt2.convert(APFloat::x87DoubleExtended(), APFloat::rmNearestTiesToEven,
  640       TmpFlt2.convert(APFloat::x87DoubleExtended(), APFloat::rmNearestTiesToEven,
  669     addLegalFPImmediate(APFloat::getZero(APFloat::IEEEquad())); // xorps
  669     addLegalFPImmediate(APFloat::getZero(APFloat::IEEEquad())); // xorps
 4850 bool X86TargetLowering::isFPImmLegal(const APFloat &Imm, EVT VT,
 5418       APFloat FV(APFloat::IEEEsingle(), V);
 5418       APFloat FV(APFloat::IEEEsingle(), V);
 5421       APFloat FV(APFloat::IEEEdouble(), V);
 5421       APFloat FV(APFloat::IEEEdouble(), V);
 8081         Const = ConstantFP::get(C, APFloat(APFloat::IEEEsingle(), Val));
 8084         Const = ConstantFP::get(C, APFloat(APFloat::IEEEdouble(), Val));
 8249                                     APFloat(APFloat::IEEEsingle(), SplatValue))
 8251                                     APFloat(APFloat::IEEEdouble(), SplatValue));
10913         APFloat::getAllOnesValue(EltVT.getSizeInBits(), true), DL, EltVT);
18567     ConstantFP::get(*Context, APFloat(APFloat::IEEEdouble(),
18570     ConstantFP::get(*Context, APFloat(APFloat::IEEEdouble(),
18761       APFloat(APFloat::IEEEsingle(), APInt(32, 0xD3000080)), DL, VecFloatVT);
18962     APFloat Thresh(APFloat::IEEEsingle(), APInt(32, 0x5f000000));
18962     APFloat Thresh(APFloat::IEEEsingle(), APInt(32, 0x5f000000));
18963     LLVM_ATTRIBUTE_UNUSED APFloat::opStatus Status = APFloat::opOK;
18963     LLVM_ATTRIBUTE_UNUSED APFloat::opStatus Status = APFloat::opOK;
18967       Status = Thresh.convert(APFloat::IEEEdouble(), APFloat::rmNearestTiesToEven,
18967       Status = Thresh.convert(APFloat::IEEEdouble(), APFloat::rmNearestTiesToEven,
18970       Status = Thresh.convert(APFloat::x87DoubleExtended(),
18971                               APFloat::rmNearestTiesToEven, &LosesInfo);
19851     APFloat APF = Op0CN->getValueAPF();
35579       APFloat F64(APFloat::IEEEdouble(), EltBits[0]);
35579       APFloat F64(APFloat::IEEEdouble(), EltBits[0]);
lib/Target/X86/X86ISelLowering.h
 1077     bool isFPImmLegal(const APFloat &Imm, EVT VT,
 1270     std::vector<APFloat> LegalFPImmediates;
 1274     void addLegalFPImmediate(const APFloat& Imm) {
lib/Target/X86/X86MCInstLower.cpp
 1724 static void printConstant(const APFloat &Flt, raw_ostream &CS) {
lib/Transforms/InstCombine/InstCombineAddSub.cpp
   69     void set(const APFloat& C);
   84     APFloat *getFpValPtr()
   87     const APFloat *getFpValPtr() const
   90     const APFloat &getFpVal() const {
   95     APFloat &getFpVal() {
  109     APFloat createAPFloatFromInt(const fltSemantics &Sem, int Val);
  122     AlignedCharArrayUnion<APFloat> FpValBuf;
  147     void set(const APFloat &Coefficient, Value *V) {
  228 void FAddendCoef::set(const APFloat& C) {
  229   APFloat *P = getFpValPtr();
  234     new(P) APFloat(C);
  245   APFloat *P = getFpValPtr();
  247     new(P) APFloat(Sem, IntVal);
  249     new(P) APFloat(Sem, 0 - IntVal);
  255 APFloat FAddendCoef::createAPFloatFromInt(const fltSemantics &Sem, int Val) {
  259   APFloat T(Sem, 0 - Val);
  273   enum APFloat::roundingMode RndMode = APFloat::rmNearestTiesToEven;
  273   enum APFloat::roundingMode RndMode = APFloat::rmNearestTiesToEven;
  283     const APFloat &T = That.getFpVal();
  289   APFloat &T = getFpVal();
  314   APFloat &F0 = getFpVal();
  318                 APFloat::rmNearestTiesToEven);
  320     F0.multiply(That.getFpVal(), APFloat::rmNearestTiesToEven);
 1467   const APFloat *C;
 1530           APFloat::semanticsPrecision(FScalarTy->getFltSemantics());
lib/Transforms/InstCombine/InstCombineCalls.cpp
 1379 static APFloat fmed3AMDGCN(const APFloat &Src0, const APFloat &Src1,
 1379 static APFloat fmed3AMDGCN(const APFloat &Src0, const APFloat &Src1,
 1379 static APFloat fmed3AMDGCN(const APFloat &Src0, const APFloat &Src1,
 1380                            const APFloat &Src2) {
 1381   APFloat Max3 = maxnum(maxnum(Src0, Src1), Src2);
 1383   APFloat::cmpResult Cmp0 = Max3.compare(Src0);
 1385   if (Cmp0 == APFloat::cmpEqual)
 1388   APFloat::cmpResult Cmp1 = Max3.compare(Src1);
 1390   if (Cmp1 == APFloat::cmpEqual)
 2192     const APFloat *C1, *C2;
 2199         APFloat Res(0.0);
 3332       const APFloat &ArgVal = C->getValueAPF();
 3333       APFloat Val(ArgVal.getSemantics(), 1.0);
 3334       APFloat::opStatus Status = Val.divide(ArgVal,
 3335                                             APFloat::rmNearestTiesToEven);
 3338       if (Status == APFloat::opOK)
 3357       APFloat Significand = frexp(C->getValueAPF(), Exp,
 3358                                   APFloat::rmNearestTiesToEven);
 3366       if (Exp == APFloat::IEK_NaN || Exp == APFloat::IEK_Inf)
 3366       if (Exp == APFloat::IEK_NaN || Exp == APFloat::IEK_Inf)
 3456     const APFloat &Val = CVal->getValueAPF();
 3480         APFloat Val0 = C0->getValueAPF();
 3481         APFloat Val1 = C1->getValueAPF();
 3482         Val0.convert(HalfSem, APFloat::rmTowardZero, &LosesInfo);
 3483         Val1.convert(HalfSem, APFloat::rmTowardZero, &LosesInfo);
 3651           APFloat Result = fmed3AMDGCN(C0->getValueAPF(), C1->getValueAPF(),
lib/Transforms/InstCombine/InstCombineCasts.cpp
 1451   APFloat F = CFP->getValueAPF();
 1452   (void)F.convert(Sem, APFloat::rmNearestTiesToEven, &losesInfo);
 1460   if (fitsInFPType(CFP, APFloat::IEEEhalf()))
 1463   if (fitsInFPType(CFP, APFloat::IEEEsingle()))
 1467   if (fitsInFPType(CFP, APFloat::IEEEdouble()))
lib/Transforms/InstCombine/InstCombineCompares.cpp
 5607   const APFloat &RHS = cast<ConstantFP>(RHSC)->getValueAPF();
 5622     RHS.convertToInteger(RHSCvt, APFloat::rmNearestTiesToEven, &IsExact);
 5628       APFloat RHSRoundInt(RHS);
 5629       RHSRoundInt.roundToIntegral(APFloat::rmNearestTiesToEven);
 5630       if (RHS.compare(RHSRoundInt) != APFloat::cmpEqual) {
 5654     if (Exp == APFloat::IEK_Inf) {
 5655       int MaxExponent = ilogb(APFloat::getLargest(RHS.getSemantics()));
 5715     APFloat SMax(RHS.getSemantics());
 5717                           APFloat::rmNearestTiesToEven);
 5718     if (SMax.compare(RHS) == APFloat::cmpLessThan) {  // smax < 13123.0
 5727     APFloat UMax(RHS.getSemantics());
 5729                           APFloat::rmNearestTiesToEven);
 5730     if (UMax.compare(RHS) == APFloat::cmpLessThan) {  // umax < 13123.0
 5740     APFloat SMin(RHS.getSemantics());
 5742                           APFloat::rmNearestTiesToEven);
 5743     if (SMin.compare(RHS) == APFloat::cmpGreaterThan) { // smin > 12312.0
 5751     APFloat SMin(RHS.getSemantics());
 5753                           APFloat::rmNearestTiesToEven);
 5754     if (SMin.compare(RHS) == APFloat::cmpGreaterThan) { // umin > 12312.0
 5875   const APFloat *C;
 6087     const APFloat *C;
 6092       APFloat TruncC = *C;
 6093       TruncC.convert(FPSem, APFloat::rmNearestTiesToEven, &Lossy);
 6097       APFloat Fabs = TruncC;
 6100           ((Fabs.compare(APFloat::getSmallestNormalized(FPSem)) !=
 6101             APFloat::cmpLessThan) || Fabs.isZero())) {
lib/Transforms/Scalar/Float2Int.cpp
  313         const APFloat &F = CF->getValueAPF();
  326         APFloat NewF = F;
  327         auto Res = NewF.roundToIntegral(APFloat::rmNearestTiesToEven);
  328         if (Res != APFloat::opOK || NewF.compare(F) != APFloat::cmpEqual) {
  328         if (Res != APFloat::opOK || NewF.compare(F) != APFloat::cmpEqual) {
  337                                            APFloat::rmNearestTiesToEven,
  411       = APFloat::semanticsPrecision(ConvertedToTy->getFltSemantics()) - 1;
  452                                          APFloat::rmNearestTiesToEven,
lib/Transforms/Scalar/IndVarSimplify.cpp
  287 static bool ConvertToSInt(const APFloat &APF, int64_t &IntVal) {
  292                            APFloat::rmTowardZero, &isExact) != APFloat::opOK ||
  292                            APFloat::rmTowardZero, &isExact) != APFloat::opOK ||
lib/Transforms/Scalar/Reassociate.cpp
 1075         const APFloat &F1 = FC1->getValueAPF();
 1076         APFloat F2(FC2->getValueAPF());
 1078         if (F1.compare(F2) == APFloat::cmpEqual) {
 1571           APFloat F(CF->getValueAPF());
 1954   const APFloat *C;
 2012     const APFloat *C;
lib/Transforms/Utils/FunctionComparator.cpp
   74 int FunctionComparator::cmpAPFloats(const APFloat &L, const APFloat &R) const {
   74 int FunctionComparator::cmpAPFloats(const APFloat &L, const APFloat &R) const {
   78   if (int Res = cmpNumbers(APFloat::semanticsPrecision(SL),
   79                            APFloat::semanticsPrecision(SR)))
   81   if (int Res = cmpNumbers(APFloat::semanticsMaxExponent(SL),
   82                            APFloat::semanticsMaxExponent(SR)))
   84   if (int Res = cmpNumbers(APFloat::semanticsMinExponent(SL),
   85                            APFloat::semanticsMinExponent(SR)))
   87   if (int Res = cmpNumbers(APFloat::semanticsSizeInBits(SL),
   88                            APFloat::semanticsSizeInBits(SR)))
  296     const APFloat &LAPF = cast<ConstantFP>(L)->getValueAPF();
  297     const APFloat &RAPF = cast<ConstantFP>(R)->getValueAPF();
lib/Transforms/Utils/SimplifyLibCalls.cpp
 1241     APFloat F = Const->getValueAPF();
 1243     (void)F.convert(APFloat::IEEEsingle(), APFloat::rmNearestTiesToEven,
 1243     (void)F.convert(APFloat::IEEEsingle(), APFloat::rmNearestTiesToEven,
 1502   const APFloat *BaseF;
 1518     APFloat BaseR = APFloat(1.0);
 1519     BaseR.convert(BaseF->getSemantics(), APFloat::rmTowardZero, &Ignored);
 1522     const APFloat *NF = IsReciprocal ? &BaseR : BaseF;
 1525         NF->convertToInteger(NI, APFloat::rmTowardZero, &Ignored) ==
 1526             APFloat::opOK &&
 1597   const APFloat *ExpoF;
 1691   const APFloat *ExpoF;
 1699     APFloat LimF(ExpoF->getSemantics(), 33.0),
 1701     if (ExpoA.compare(LimF) == APFloat::cmpLessThan) {
 1706         APFloat Expo2 = ExpoA;
 1710         if (Expo2.add(ExpoA, APFloat::rmNearestTiesToEven) != APFloat::opOK)
 1710         if (Expo2.add(ExpoA, APFloat::rmNearestTiesToEven) != APFloat::opOK)
 1727       ExpoA.convert(APFloat::IEEEdouble(), APFloat::rmTowardZero, &Ignored);
 1727       ExpoA.convert(APFloat::IEEEdouble(), APFloat::rmTowardZero, &Ignored);
 1744         ExpoF->convertToInteger(IntExpo, APFloat::rmTowardZero, &Ignored) ==
 1745             APFloat::opOK) {
tools/clang/include/clang/AST/APValue.h
  117   typedef llvm::APFloat APFloat;
tools/clang/include/clang/AST/Expr.h
  621   bool EvaluateAsFloat(llvm::APFloat &Result, const ASTContext &Ctx,
 1413   llvm::APFloat getValue(const llvm::fltSemantics &Semantics) const {
 1416   void setValue(const ASTContext &C, const llvm::APFloat &Val) {
 1561   FloatingLiteral(const ASTContext &C, const llvm::APFloat &V, bool isexact,
 1568   static FloatingLiteral *Create(const ASTContext &C, const llvm::APFloat &V,
 1572   llvm::APFloat getValue() const {
 1575   void setValue(const ASTContext &C, const llvm::APFloat &Val) {
tools/clang/include/clang/AST/OptionalDiagnostic.h
   34   template <typename T> OptionalDiagnostic &operator<<(const T &v) {
   49   OptionalDiagnostic &operator<<(const llvm::APFloat &F) {
   57       unsigned precision = llvm::APFloat::semanticsPrecision(F.getSemantics());
tools/clang/include/clang/ASTMatchers/ASTMatchersInternal.h
 1196   explicit PolymorphicMatcherWithParam1(const P1 &Param1)
 1209   const P1 Param1;
 1507   explicit ValueEqualsMatcher(const ValueT &ExpectedValue)
 1515   const ValueT ExpectedValue;
 1523   if ((&Node.getSemantics()) == &llvm::APFloat::IEEEsingle())
 1525   if ((&Node.getSemantics()) == &llvm::APFloat::IEEEdouble())
 1532   if ((&Node.getSemantics()) == &llvm::APFloat::IEEEsingle())
 1534   if ((&Node.getSemantics()) == &llvm::APFloat::IEEEdouble())
 1541   return ExpectedValue.compare(Node.getValue()) == llvm::APFloat::cmpEqual;
tools/clang/include/clang/Lex/LiteralSupport.h
  110   llvm::APFloat::opStatus GetFloatValue(llvm::APFloat &Result);
  110   llvm::APFloat::opStatus GetFloatValue(llvm::APFloat &Result);
tools/clang/include/clang/Serialization/ASTReader.h
 2229   llvm::APFloat ReadAPFloat(const RecordData &Record,
 2641   llvm::APFloat readAPFloat(const llvm::fltSemantics &Sem) {
tools/clang/include/clang/Serialization/ASTWriter.h
  864   void AddAPFloat(const llvm::APFloat &Value);
tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SMTConstraintManager.h
  261          (&TI.getLongDoubleFormat() == &llvm::APFloat::x87DoubleExtended() ||
  262           &TI.getLongDoubleFormat() == &llvm::APFloat::PPCDoubleDouble())))
tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SMTConv.h
  171                         const llvm::APFloat::fltCategory &RHS) {
  176       case llvm::APFloat::fcInfinity:
  179       case llvm::APFloat::fcNaN:
  182       case llvm::APFloat::fcNormal:
  185       case llvm::APFloat::fcZero:
  478       llvm::APFloat Zero =
  479           llvm::APFloat::getZero(Ctx.getFloatTypeSemantics(Ty));
tools/clang/lib/AST/APValue.cpp
  386 static double GetApproxValue(const llvm::APFloat &F) {
  387   llvm::APFloat V = F;
  389   V.convert(llvm::APFloat::IEEEdouble(), llvm::APFloat::rmNearestTiesToEven,
  389   V.convert(llvm::APFloat::IEEEdouble(), llvm::APFloat::rmNearestTiesToEven,
tools/clang/lib/AST/Expr.cpp
  965 FloatingLiteral::FloatingLiteral(const ASTContext &C, const llvm::APFloat &V,
  981 FloatingLiteral::Create(const ASTContext &C, const llvm::APFloat &V,
  995   llvm::APFloat V = getValue();
  997   V.convert(llvm::APFloat::IEEEdouble(), llvm::APFloat::rmNearestTiesToEven,
  997   V.convert(llvm::APFloat::IEEEdouble(), llvm::APFloat::rmNearestTiesToEven,
tools/clang/lib/AST/ExprConstant.cpp
 1428     APFloat FloatReal, FloatImag;
 1430     ComplexValue() : FloatReal(APFloat::Bogus()), FloatImag(APFloat::Bogus()) {}
 1430     ComplexValue() : FloatReal(APFloat::Bogus()), FloatImag(APFloat::Bogus()) {}
 1434     APFloat &getComplexFloatReal() { return FloatReal; }
 1435     APFloat &getComplexFloatImag() { return FloatImag; }
 1737 static bool EvaluateFloat(const Expr *E, APFloat &Result, EvalInfo &Info);
 2336                            const T &SrcValue, QualType DestType) {
 2343                                  QualType SrcType, const APFloat &Value,
 2351   if (Value.convertToInteger(Result, llvm::APFloat::rmTowardZero, &ignored)
 2352       & APFloat::opInvalidOp)
 2359                                    APFloat &Result) {
 2360   APFloat Value = Result;
 2363                  APFloat::rmNearestTiesToEven, &ignored);
 2382                                  QualType DestType, APFloat &Result) {
 2385                           APFloat::rmNearestTiesToEven);
 2587                                   APFloat &LHS, BinaryOperatorKind Opcode,
 2588                                   const APFloat &RHS) {
 2594     LHS.multiply(RHS, APFloat::rmNearestTiesToEven);
 2597     LHS.add(RHS, APFloat::rmNearestTiesToEven);
 2600     LHS.subtract(RHS, APFloat::rmNearestTiesToEven);
 2607     LHS.divide(RHS, APFloat::rmNearestTiesToEven);
 3374   bool found(APFloat &Value, QualType SubobjType) {
 3428   bool found(APFloat &Value, QualType SubobjType) {
 3857       APFloat FValue(0.0);
 3868   bool found(APFloat &Value, QualType SubobjType) {
 4015   bool found(APFloat &Value, QualType SubobjType) {
 4021     APFloat One(Value.getSemantics(), 1);
 4023       Value.add(One, APFloat::rmNearestTiesToEven);
 4025       Value.subtract(One, APFloat::rmNearestTiesToEven);
 4953   bool found(APFloat &Value, QualType SubobjType) { return true; }
 5306   bool found(APFloat &Value, QualType SubobjType) {
 5928   bool found(APFloat &Value, QualType SubobjType) {
 6310   bool visitFloat(const APFloat &Val, QualType Ty, CharUnits Offset) {
 8616       bool found(APFloat &Value, QualType SubobjType) {
 9275       APFloat FloatResult(0.0);
 9300       if (&Sem == &APFloat::x87DoubleExtended())
 9364       llvm::APFloat f(0.0);
 9369         f = APFloat::getZero(Info.Ctx.getFloatTypeSemantics(EltTy));
 9387         APValue(APFloat::getZero(Info.Ctx.getFloatTypeSemantics(EltTy)));
10630     APFloat Val(0.0);
10635     case APFloat::fcNaN: Arg = 0; break;
10636     case APFloat::fcInfinity: Arg = 1; break;
10637     case APFloat::fcNormal: Arg = Val.isDenormal() ? 3 : 2; break;
10638     case APFloat::fcZero: Arg = 4; break;
10644     APFloat Val(0.0);
10650     APFloat Val(0.0);
10656     APFloat Val(0.0);
10662     APFloat Val(0.0);
10668     APFloat Val(0.0);
11514       APFloat::cmpResult CR_r =
11516       APFloat::cmpResult CR_i =
11518       bool IsEqual = CR_r == APFloat::cmpEqual && CR_i == APFloat::cmpEqual;
11518       bool IsEqual = CR_r == APFloat::cmpEqual && CR_i == APFloat::cmpEqual;
11530     APFloat RHS(0.0), LHS(0.0);
11542       case APFloat::cmpEqual:
11544       case APFloat::cmpLessThan:
11546       case APFloat::cmpGreaterThan:
11548       case APFloat::cmpUnordered:
12216     APFloat F(0.0);
12374   APFloat &Result;
12376   FloatExprEvaluator(EvalInfo &info, APFloat &result)
12385     Result = APFloat::getZero(Info.Ctx.getFloatTypeSemantics(E->getType()));
12403 static bool EvaluateFloat(const Expr* E, APFloat& Result, EvalInfo &Info) {
12412                                   llvm::APFloat &Result) {
12428       Result = llvm::APFloat::getSNaN(Sem, false, &fill);
12430       Result = llvm::APFloat::getQNaN(Sem, false, &fill);
12438       Result = llvm::APFloat::getQNaN(Sem, false, &fill);
12440       Result = llvm::APFloat::getSNaN(Sem, false, &fill);
12461     Result = llvm::APFloat::getInf(Sem);
12504     APFloat RHS(0.);
12537   Result = llvm::APFloat::getZero(Sem);
12558   APFloat RHS(0.0);
12644     APFloat Zero = APFloat::getZero(Info.Ctx.getFloatTypeSemantics(ElemTy));
12644     APFloat Zero = APFloat::getZero(Info.Ctx.getFloatTypeSemantics(ElemTy));
12661     APFloat &Imag = Result.FloatImag;
12747     APFloat &Real = Result.FloatReal;
12834     APFloat &Real = Result.FloatReal;
12849     APFloat &Real = RHS.FloatReal;
12864                                        APFloat::rmNearestTiesToEven);
12869                                          APFloat::rmNearestTiesToEven);
12878                                             APFloat::rmNearestTiesToEven);
12884                                               APFloat::rmNearestTiesToEven);
12898       APFloat &A = LHS.getComplexFloatReal();
12899       APFloat &B = LHS.getComplexFloatImag();
12900       APFloat &C = RHS.getComplexFloatReal();
12901       APFloat &D = RHS.getComplexFloatImag();
12902       APFloat &ResR = Result.getComplexFloatReal();
12903       APFloat &ResI = Result.getComplexFloatImag();
12914         APFloat AC = A * C;
12915         APFloat BD = B * D;
12916         APFloat AD = A * D;
12917         APFloat BC = B * C;
12923             A = APFloat::copySign(
12925             B = APFloat::copySign(
12928               C = APFloat::copySign(APFloat(C.getSemantics()), C);
12930               D = APFloat::copySign(APFloat(D.getSemantics()), D);
12934             C = APFloat::copySign(
12936             D = APFloat::copySign(
12939               A = APFloat::copySign(APFloat(A.getSemantics()), A);
12941               B = APFloat::copySign(APFloat(B.getSemantics()), B);
12947               A = APFloat::copySign(APFloat(A.getSemantics()), A);
12949               B = APFloat::copySign(APFloat(B.getSemantics()), B);
12951               C = APFloat::copySign(APFloat(C.getSemantics()), C);
12953               D = APFloat::copySign(APFloat(D.getSemantics()), D);
12957             ResR = APFloat::getInf(A.getSemantics()) * (A * C - B * D);
12958             ResI = APFloat::getInf(A.getSemantics()) * (A * D + B * C);
12979       APFloat &A = LHS.getComplexFloatReal();
12980       APFloat &B = LHS.getComplexFloatImag();
12981       APFloat &C = RHS.getComplexFloatReal();
12982       APFloat &D = RHS.getComplexFloatImag();
12983       APFloat &ResR = Result.getComplexFloatReal();
12984       APFloat &ResI = Result.getComplexFloatImag();
12991           B = APFloat::getZero(A.getSemantics());
12994         APFloat MaxCD = maxnum(abs(C), abs(D));
12997           C = scalbn(C, -DenomLogB, APFloat::rmNearestTiesToEven);
12998           D = scalbn(D, -DenomLogB, APFloat::rmNearestTiesToEven);
13000         APFloat Denom = C * C + D * D;
13002                       APFloat::rmNearestTiesToEven);
13004                       APFloat::rmNearestTiesToEven);
13007             ResR = APFloat::getInf(ResR.getSemantics(), C.isNegative()) * A;
13008             ResI = APFloat::getInf(ResR.getSemantics(), C.isNegative()) * B;
13011             A = APFloat::copySign(
13013             B = APFloat::copySign(
13015             ResR = APFloat::getInf(ResR.getSemantics()) * (A * C + B * D);
13016             ResI = APFloat::getInf(ResI.getSemantics()) * (B * C - A * D);
13018             C = APFloat::copySign(
13020             D = APFloat::copySign(
13022             ResR = APFloat::getZero(ResR.getSemantics()) * (A * C + B * D);
13023             ResI = APFloat::getZero(ResI.getSemantics()) * (B * C - A * D);
13294     llvm::APFloat F(0.0);
13536 bool Expr::EvaluateAsFloat(APFloat &Result, const ASTContext &Ctx,
14140                                             llvm::APFloat::rmTowardZero,
14141                                             &Ignored) & APFloat::opInvalidOp)
tools/clang/lib/AST/ItaniumMangle.cpp
  423   void mangleFloat(const llvm::APFloat &F);
 1004 void CXXNameMangler::mangleFloat(const llvm::APFloat &f) {
tools/clang/lib/Basic/TargetInfo.cpp
  104   HalfFormat = &llvm::APFloat::IEEEhalf();
  105   FloatFormat = &llvm::APFloat::IEEEsingle();
  106   DoubleFormat = &llvm::APFloat::IEEEdouble();
  107   LongDoubleFormat = &llvm::APFloat::IEEEdouble();
  108   Float128Format = &llvm::APFloat::IEEEquad();
  273     if (&getLongDoubleFormat() == &llvm::APFloat::x87DoubleExtended())
  277     if (&getLongDoubleFormat() == &llvm::APFloat::PPCDoubleDouble() ||
  278         &getLongDoubleFormat() == &llvm::APFloat::IEEEquad())
  363       DoubleFormat = &llvm::APFloat::IEEEdouble();
  377     HalfFormat = &llvm::APFloat::IEEEhalf();
  378     FloatFormat = &llvm::APFloat::IEEEsingle();
  379     LongDoubleFormat = &llvm::APFloat::IEEEquad();
  389       LongDoubleFormat = &llvm::APFloat::IEEEquad();
tools/clang/lib/Basic/Targets/AArch64.cpp
   60   LongDoubleFormat = &llvm::APFloat::IEEEquad();
  553   LongDoubleFormat = &llvm::APFloat::IEEEdouble();
  637   LongDoubleFormat = &llvm::APFloat::IEEEdouble();
tools/clang/lib/Basic/Targets/AVR.h
   46     DoubleFormat = &llvm::APFloat::IEEEsingle();
   49     LongDoubleFormat = &llvm::APFloat::IEEEsingle();
tools/clang/lib/Basic/Targets/Mips.h
  121     LongDoubleFormat = &llvm::APFloat::IEEEdouble();
  133     LongDoubleFormat = &llvm::APFloat::IEEEquad();
  136       LongDoubleFormat = &llvm::APFloat::IEEEdouble();
tools/clang/lib/Basic/Targets/OSTargets.h
  774     this->LongDoubleFormat = &llvm::APFloat::IEEEdouble();
tools/clang/lib/Basic/Targets/PPC.cpp
   60       LongDoubleFormat = &llvm::APFloat::IEEEdouble();
  476   if (LongDoubleFormat != &llvm::APFloat::IEEEdouble())
  478                            ? &llvm::APFloat::IEEEquad()
  479                            : &llvm::APFloat::PPCDoubleDouble();
tools/clang/lib/Basic/Targets/PPC.h
   80     LongDoubleFormat = &llvm::APFloat::PPCDoubleDouble();
  321     return LongDoubleFormat == &llvm::APFloat::PPCDoubleDouble()
  355       LongDoubleFormat = &llvm::APFloat::IEEEdouble();
  392       LongDoubleFormat = &llvm::APFloat::IEEEdouble();
tools/clang/lib/Basic/Targets/RISCV.h
   40     LongDoubleFormat = &llvm::APFloat::IEEEquad();
tools/clang/lib/Basic/Targets/Sparc.h
  212     LongDoubleFormat = &llvm::APFloat::IEEEquad();
tools/clang/lib/Basic/Targets/SystemZ.h
   45     LongDoubleFormat = &llvm::APFloat::IEEEquad();
tools/clang/lib/Basic/Targets/TCE.h
   67     FloatFormat = &llvm::APFloat::IEEEsingle();
   68     DoubleFormat = &llvm::APFloat::IEEEsingle();
   69     LongDoubleFormat = &llvm::APFloat::IEEEsingle();
tools/clang/lib/Basic/Targets/WebAssembly.h
   52     LongDoubleFormat = &llvm::APFloat::IEEEquad();
tools/clang/lib/Basic/Targets/X86.h
  132     LongDoubleFormat = &llvm::APFloat::x87DoubleExtended();
  136     return LongDoubleFormat == &llvm::APFloat::IEEEquad() ? "g" : "e";
  484     LongDoubleFormat = &llvm::APFloat::IEEEdouble();
  557     LongDoubleFormat = &llvm::APFloat::IEEEdouble();
  751     LongDoubleFormat = &llvm::APFloat::IEEEdouble();
  776     LongDoubleFormat = &llvm::APFloat::x87DoubleExtended();
  847     LongDoubleFormat = &llvm::APFloat::IEEEdouble();
  857     LongDoubleFormat = &llvm::APFloat::IEEEquad();
tools/clang/lib/CodeGen/CGBuiltin.cpp
 2276     APFloat Smallest = APFloat::getSmallestNormalized(
 2276     APFloat Smallest = APFloat::getSmallestNormalized(
 2339     APFloat Smallest = APFloat::getSmallestNormalized(
 2339     APFloat Smallest = APFloat::getSmallestNormalized(
tools/clang/lib/CodeGen/CGExpr.cpp
 1001     llvm::APFloat FVal(getContext().getFloatTypeSemantics(ElemTy), 1);
tools/clang/lib/CodeGen/CGExprConstant.cpp
 2039     const llvm::APFloat &Init = Value.getFloat();
 2040     if (&Init.getSemantics() == &llvm::APFloat::IEEEhalf() &&
tools/clang/lib/CodeGen/CGExprScalar.cpp
  893   APFloat MinSrc(SrcSema, APFloat::uninitialized);
  893   APFloat MinSrc(SrcSema, APFloat::uninitialized);
  894   if (MinSrc.convertFromAPInt(Min, !Unsigned, APFloat::rmTowardZero) &
  895       APFloat::opOverflow)
  898     MinSrc = APFloat::getInf(SrcSema, true);
  902     MinSrc.subtract(APFloat(SrcSema, 1), APFloat::rmTowardNegative);
  905   APFloat MaxSrc(SrcSema, APFloat::uninitialized);
  905   APFloat MaxSrc(SrcSema, APFloat::uninitialized);
  906   if (MaxSrc.convertFromAPInt(Max, !Unsigned, APFloat::rmTowardZero) &
  907       APFloat::opOverflow)
  910     MaxSrc = APFloat::getInf(SrcSema, false);
  914     MaxSrc.add(APFloat(SrcSema, 1), APFloat::rmTowardPositive);
  922     MinSrc.convert(Sema, APFloat::rmTowardZero, &IsInexact);
  923     MaxSrc.convert(Sema, APFloat::rmTowardZero, &IsInexact);
 2513       llvm::APFloat F(static_cast<float>(amount));
 2524       F.convert(*FS, llvm::APFloat::rmTowardZero, &ignored);
tools/clang/lib/CodeGen/CodeGenTypes.cpp
  292   if (&format == &llvm::APFloat::IEEEhalf()) {
  298   if (&format == &llvm::APFloat::IEEEsingle())
  300   if (&format == &llvm::APFloat::IEEEdouble())
  302   if (&format == &llvm::APFloat::IEEEquad())
  304   if (&format == &llvm::APFloat::PPCDoubleDouble())
  306   if (&format == &llvm::APFloat::x87DoubleExtended())
tools/clang/lib/CodeGen/PatternInit.cpp
   56     unsigned BitWidth = llvm::APFloat::semanticsSizeInBits(
tools/clang/lib/CodeGen/TargetInfo.cpp
  957             &llvm::APFloat::x87DoubleExtended())
 2584       if (LDF == &llvm::APFloat::IEEEquad()) {
 2587       } else if (LDF == &llvm::APFloat::x87DoubleExtended()) {
 2590       } else if (LDF == &llvm::APFloat::IEEEdouble()) {
 2717       if (LDF == &llvm::APFloat::IEEEquad())
 2719       else if (LDF == &llvm::APFloat::x87DoubleExtended())
 2721       else if (LDF == &llvm::APFloat::IEEEdouble())
 4012         if (LDF == &llvm::APFloat::x87DoubleExtended())
tools/clang/lib/Frontend/InitPreprocessor.cpp
   98   if (Sem == (const llvm::fltSemantics*)&llvm::APFloat::IEEEhalf())
  100   if (Sem == (const llvm::fltSemantics*)&llvm::APFloat::IEEEsingle())
  102   if (Sem == (const llvm::fltSemantics*)&llvm::APFloat::IEEEdouble())
  104   if (Sem == (const llvm::fltSemantics*)&llvm::APFloat::x87DoubleExtended())
  106   if (Sem == (const llvm::fltSemantics*)&llvm::APFloat::PPCDoubleDouble())
tools/clang/lib/Lex/LiteralSupport.cpp
 1039 llvm::APFloat::opStatus
 1040 NumericLiteralParser::GetFloatValue(llvm::APFloat &Result) {
 1054   return Result.convertFromString(Str, APFloat::rmNearestTiesToEven);
tools/clang/lib/Sema/SemaChecking.cpp
10441 static bool IsSameFloatAfterCast(const llvm::APFloat &value,
10444   llvm::APFloat truncated = value;
10447   truncated.convert(Src, llvm::APFloat::rmNearestTiesToEven, &ignored);
10448   truncated.convert(Tgt, llvm::APFloat::rmNearestTiesToEven, &ignored);
11109   llvm::APFloat Value(0.0);
11128   llvm::APFloat::opStatus Result = Value.convertToInteger(
11129       IntegerValue, llvm::APFloat::rmTowardZero, &isExact);
11137   unsigned precision = llvm::APFloat::semanticsPrecision(Value.getSemantics());
11148   if (Result == llvm::APFloat::opOK && isExact) {
11156   if (!IsBool && Result == llvm::APFloat::opInvalidOp)
11803         llvm::APFloat TargetFloatValue(
11805         llvm::APFloat::opStatus ConversionStatus =
11808                 llvm::APFloat::rmNearestTiesToEven);
11810         if (ConversionStatus != llvm::APFloat::opOK) {
tools/clang/lib/Sema/SemaExpr.cpp
 1133      &llvm::APFloat::PPCDoubleDouble());
 3336   APFloat Val(Format);
 3338   APFloat::opStatus result = Literal.GetFloatValue(Val);
 3342   if ((result & APFloat::opOverflow) ||
 3343       ((result & APFloat::opUnderflow) && Val.isZero())) {
 3346     if (result & APFloat::opOverflow) {
 3348       APFloat::getLargest(Format).toString(buffer);
 3351       APFloat::getSmallest(Format).toString(buffer);
 3359   bool isExact = (result == APFloat::opOK);
 8898     llvm::APFloat Float(S.Context.getFloatTypeSemantics(FloatTy));
 8900                            llvm::APFloat::rmTowardZero);
 8904     Float.convertToInteger(ConvertBack, llvm::APFloat::rmNearestTiesToEven,
 8912     unsigned FloatPrec = llvm::APFloat::semanticsPrecision(
 8965       llvm::APFloat Result(0.0);
 8976                        llvm::APFloat::rmNearestTiesToEven, &Truncated);
tools/clang/lib/Sema/SemaOpenMP.cpp
13431           llvm::APFloat InitValue =
13432               llvm::APFloat::getAllOnesValue(Context.getTypeSize(Type),
13476           llvm::APFloat InitValue = llvm::APFloat::getLargest(
13476           llvm::APFloat InitValue = llvm::APFloat::getLargest(
tools/clang/lib/Sema/SemaOverload.cpp
  354         llvm::APFloat Result(Ctx.getFloatTypeSemantics(ToType));
  356                                 llvm::APFloat::rmNearestTiesToEven);
  361                                 llvm::APFloat::rmTowardZero, &ignored);
  392         llvm::APFloat FloatVal = ConstantValue.getFloat();
  395         llvm::APFloat::opStatus ConvertStatus = FloatVal.convert(
  397           llvm::APFloat::rmNearestTiesToEven, &ignored);
  400         if (ConvertStatus & llvm::APFloat::opOverflow) {
 1827            &llvm::APFloat::PPCDoubleDouble()))
tools/clang/lib/Serialization/ASTReader.cpp
 9626     llvm::APFloat First = ReadAPFloat(Record, FloatSema1, Idx);
 9660 llvm::APFloat ASTReader::ReadAPFloat(const RecordData &Record,
tools/clang/lib/Serialization/ASTWriter.cpp
 5448 void ASTRecordWriter::AddAPFloat(const llvm::APFloat &Value) {
tools/clang/lib/StaticAnalyzer/Checkers/ConversionChecker.cpp
  150     RepresentsUntilExp = llvm::APFloat::semanticsPrecision(Sema);
tools/clang/tools/extra/clang-tidy/bugprone/IncorrectRoundingsCheck.cpp
   24   const auto &literal = Node.getValue();
   25   if ((&Node.getSemantics()) == &llvm::APFloat::IEEEsingle())
   27   if ((&Node.getSemantics()) == &llvm::APFloat::IEEEdouble())
tools/clang/tools/extra/clang-tidy/cppcoreguidelines/NarrowingConversionsCheck.cpp
   92                                          const Expr &E, llvm::APFloat &Value) {
  287   llvm::APFloat FloatConstant(0.0);
  299                        Result, llvm::APFloat::rmTowardZero, &IsExact) &
  300                    llvm::APFloat::opInvalidOp;
  337       llvm::APFloat Tmp = Constant.getFloat();
tools/clang/tools/extra/clang-tidy/modernize/UseDefaultMemberInitCheck.cpp
  122     llvm::APFloat Value = cast<FloatingLiteral>(E)->getValue();
tools/clang/tools/extra/clang-tidy/readability/ImplicitBoolConversionCheck.cpp
  162     llvm::APFloat FloatLitAbsValue = FloatLit->getValue();
tools/clang/tools/extra/clang-tidy/readability/MagicNumbersCheck.cpp
   78       llvm::APFloat FloatValue(llvm::APFloat::IEEEsingle());
   78       llvm::APFloat FloatValue(llvm::APFloat::IEEEsingle());
   82       llvm::APFloat DoubleValue(llvm::APFloat::IEEEdouble());
   82       llvm::APFloat DoubleValue(llvm::APFloat::IEEEdouble());
  136   const llvm::APFloat FloatValue = Literal->getValue();
  140   if (&FloatValue.getSemantics() == &llvm::APFloat::IEEEsingle()) {
  146   if (&FloatValue.getSemantics() == &llvm::APFloat::IEEEdouble()) {
tools/clang/tools/extra/clang-tidy/readability/MagicNumbersCheck.h
   81   constexpr static llvm::APFloat::roundingMode DefaultRoundingMode =
   82       llvm::APFloat::rmNearestTiesToEven;
tools/clang/tools/libclang/CIndex.cpp
 3834     llvm::APFloat apFloat = ER.Val.getFloat();
 3835     apFloat.convert(llvm::APFloat::IEEEdouble(),
 3836                     llvm::APFloat::rmNearestTiesToEven, &ignored);
tools/lldb/include/lldb/Utility/Scalar.h
   91           llvm::APFloat(llvm::APFloat::IEEEquad(),
   96           llvm::APFloat(llvm::APFloat::x87DoubleExtended(),
  285   llvm::APFloat m_float;
tools/lldb/source/Core/DumpDataExtractor.cpp
  577               (llvm::APFloat::getSizeInBits(semantics) + 7) / 8;
  581             llvm::APFloat apfloat(semantics, apint.getValue());
  655         llvm::APFloat ap_float(DE.GetFloat(&offset));
  657                                     llvm::APFloat::rmNearestTiesToEven);
  662         llvm::APFloat ap_float(DE.GetDouble(&offset));
  664                                     llvm::APFloat::rmNearestTiesToEven);
tools/lldb/source/Utility/Scalar.cpp
  368     m_float = llvm::APFloat(llvm::APFloat::IEEEquad(),
  372     m_float = llvm::APFloat(llvm::APFloat::x87DoubleExtended(),
  521       m_float = llvm::APFloat(llvm::APFloat::IEEEsingle());
  523                                llvm::APFloat::rmNearestTiesToEven);
  528       m_float = llvm::APFloat(llvm::APFloat::IEEEdouble());
  530                                llvm::APFloat::rmNearestTiesToEven);
  535       m_float = llvm::APFloat(m_ieee_quad ? llvm::APFloat::IEEEquad()
  536                                           : llvm::APFloat::x87DoubleExtended());
  538                                llvm::APFloat::rmNearestTiesToEven);
  591       m_float = llvm::APFloat(llvm::APFloat::IEEEsingle());
  593                                llvm::APFloat::rmNearestTiesToEven);
  598       m_float = llvm::APFloat(llvm::APFloat::IEEEdouble());
  600                                llvm::APFloat::rmNearestTiesToEven);
  605       m_float = llvm::APFloat(m_ieee_quad ? llvm::APFloat::IEEEquad()
  606                                           : llvm::APFloat::x87DoubleExtended());
  608                                llvm::APFloat::rmNearestTiesToEven);
  657       m_float = llvm::APFloat(llvm::APFloat::IEEEsingle());
  659                                llvm::APFloat::rmNearestTiesToEven);
  664       m_float = llvm::APFloat(llvm::APFloat::IEEEdouble());
  666                                llvm::APFloat::rmNearestTiesToEven);
  671       m_float = llvm::APFloat(m_ieee_quad ? llvm::APFloat::IEEEquad()
  672                                           : llvm::APFloat::x87DoubleExtended());
  674                                llvm::APFloat::rmNearestTiesToEven);
  719       m_float = llvm::APFloat(llvm::APFloat::IEEEsingle());
  721                                llvm::APFloat::rmNearestTiesToEven);
  726       m_float = llvm::APFloat(llvm::APFloat::IEEEdouble());
  728                                llvm::APFloat::rmNearestTiesToEven);
  733       m_float = llvm::APFloat(m_ieee_quad ? llvm::APFloat::IEEEquad()
  734                                           : llvm::APFloat::x87DoubleExtended());
  736                                llvm::APFloat::rmNearestTiesToEven);
  777       m_float = llvm::APFloat(llvm::APFloat::IEEEsingle());
  779                                llvm::APFloat::rmNearestTiesToEven);
  784       m_float = llvm::APFloat(llvm::APFloat::IEEEdouble());
  786                                llvm::APFloat::rmNearestTiesToEven);
  791       m_float = llvm::APFloat(m_ieee_quad ? llvm::APFloat::IEEEquad()
  792                                           : llvm::APFloat::x87DoubleExtended());
  794                                llvm::APFloat::rmNearestTiesToEven);
  831       m_float = llvm::APFloat(llvm::APFloat::IEEEsingle());
  833                                llvm::APFloat::rmNearestTiesToEven);
  838       m_float = llvm::APFloat(llvm::APFloat::IEEEdouble());
  840                                llvm::APFloat::rmNearestTiesToEven);
  845       m_float = llvm::APFloat(m_ieee_quad ? llvm::APFloat::IEEEquad()
  846                                           : llvm::APFloat::x87DoubleExtended());
  848                                llvm::APFloat::rmNearestTiesToEven);
  885       m_float = llvm::APFloat(llvm::APFloat::IEEEsingle());
  887                                llvm::APFloat::rmNearestTiesToEven);
  892       m_float = llvm::APFloat(llvm::APFloat::IEEEdouble());
  894                                llvm::APFloat::rmNearestTiesToEven);
  899       m_float = llvm::APFloat(m_ieee_quad ? llvm::APFloat::IEEEquad()
  900                                           : llvm::APFloat::x87DoubleExtended());
  902                                llvm::APFloat::rmNearestTiesToEven);
  935       m_float = llvm::APFloat(llvm::APFloat::IEEEsingle());
  937                                llvm::APFloat::rmNearestTiesToEven);
  942       m_float = llvm::APFloat(llvm::APFloat::IEEEdouble());
  944                                llvm::APFloat::rmNearestTiesToEven);
  949       m_float = llvm::APFloat(m_ieee_quad ? llvm::APFloat::IEEEquad()
  950                                           : llvm::APFloat::x87DoubleExtended());
  952                                llvm::APFloat::rmNearestTiesToEven);
  985       m_float = llvm::APFloat(llvm::APFloat::IEEEsingle());
  987                                llvm::APFloat::rmNearestTiesToEven);
  992       m_float = llvm::APFloat(llvm::APFloat::IEEEdouble());
  994                                llvm::APFloat::rmNearestTiesToEven);
  999       m_float = llvm::APFloat(m_ieee_quad ? llvm::APFloat::IEEEquad()
 1000                                           : llvm::APFloat::x87DoubleExtended());
 1002                                llvm::APFloat::rmNearestTiesToEven);
 1032       m_float = llvm::APFloat(llvm::APFloat::IEEEsingle());
 1034                                llvm::APFloat::rmNearestTiesToEven);
 1039       m_float = llvm::APFloat(llvm::APFloat::IEEEdouble());
 1041                                llvm::APFloat::rmNearestTiesToEven);
 1046       m_float = llvm::APFloat(m_ieee_quad ? llvm::APFloat::IEEEquad()
 1047                                           : llvm::APFloat::x87DoubleExtended());
 1049                                llvm::APFloat::rmNearestTiesToEven);
 1086       m_float.convert(m_ieee_quad ? llvm::APFloat::IEEEquad()
 1087                                   : llvm::APFloat::x87DoubleExtended(),
 1088                       llvm::APFloat::rmNearestTiesToEven, &ignore);
 1117       m_float.convert(m_ieee_quad ? llvm::APFloat::IEEEquad()
 1118                                   : llvm::APFloat::x87DoubleExtended(),
 1119                       llvm::APFloat::rmNearestTiesToEven, &ignore);
 2515             llvm::APFloat::x87DoubleExtended(),
 2774   llvm::APFloat::cmpResult result;
 2795     if (result == llvm::APFloat::cmpEqual)
 2812   llvm::APFloat::cmpResult result;
 2834     if (result == llvm::APFloat::cmpLessThan)
tools/llvm-exegesis/lib/RegisterValue.cpp
   16 static APFloat getFloatValue(const fltSemantics &FltSemantics,
   20     return APFloat::getZero(FltSemantics);
   22     return APFloat::getZero(FltSemantics, true);
   28     return APFloat::getInf(FltSemantics);
   30     return APFloat::getQNaN(FltSemantics);
   32     return APFloat::getSmallestNormalized(FltSemantics);
   34     return APFloat::getLargest(FltSemantics);
   36     return APFloat::getSmallest(FltSemantics);
   38     auto Output = getFloatValue(FltSemantics, PredefinedValues::ONE);
tools/llvm-pdbutil/PrettyClassDefinitionDumper.cpp
   97     APFloat Pct(100.0 * (double)Layout.deepPaddingSize() /
  105     APFloat Pct2(100.0 * (double)Layout.immediatePadding() /
tools/llvm-stress/llvm-stress.cpp
  440       APFloat RandomFloat(Ty->getFltSemantics(), RandomInt);
unittests/ADT/APFloatTest.cpp
   24   llvm::APFloat F(0.0);
   25   F.convertFromString(Str, llvm::APFloat::rmNearestTiesToEven);
   32   llvm::APFloat F(d);
   56   APFloat test(APFloat::IEEEquad(), APFloat::uninitialized);
   56   APFloat test(APFloat::IEEEquad(), APFloat::uninitialized);
   56   APFloat test(APFloat::IEEEquad(), APFloat::uninitialized);
   57   APFloat expected(APFloat::IEEEquad(), APFloat::uninitialized);
   57   APFloat expected(APFloat::IEEEquad(), APFloat::uninitialized);
   57   APFloat expected(APFloat::IEEEquad(), APFloat::uninitialized);
   75   test = APFloat::getInf(APFloat::IEEEquad(), false);
   75   test = APFloat::getInf(APFloat::IEEEquad(), false);
   76   expected = APFloat::getInf(APFloat::IEEEquad(), false);
   76   expected = APFloat::getInf(APFloat::IEEEquad(), false);
   83   test = APFloat::getInf(APFloat::IEEEquad(), false);
   83   test = APFloat::getInf(APFloat::IEEEquad(), false);
   84   expected = APFloat::getLargest(APFloat::IEEEquad(), false);
   84   expected = APFloat::getLargest(APFloat::IEEEquad(), false);
   90   test = APFloat::getInf(APFloat::IEEEquad(), true);
   90   test = APFloat::getInf(APFloat::IEEEquad(), true);
   91   expected = APFloat::getLargest(APFloat::IEEEquad(), true);
   91   expected = APFloat::getLargest(APFloat::IEEEquad(), true);
   97   test = APFloat::getInf(APFloat::IEEEquad(), true);
   97   test = APFloat::getInf(APFloat::IEEEquad(), true);
   98   expected = APFloat::getInf(APFloat::IEEEquad(), true);
   98   expected = APFloat::getInf(APFloat::IEEEquad(), true);
  104   test = APFloat::getLargest(APFloat::IEEEquad(), false);
  104   test = APFloat::getLargest(APFloat::IEEEquad(), false);
  105   expected = APFloat::getInf(APFloat::IEEEquad(), false);
  105   expected = APFloat::getInf(APFloat::IEEEquad(), false);
  113   test = APFloat::getLargest(APFloat::IEEEquad(), false);
  113   test = APFloat::getLargest(APFloat::IEEEquad(), false);
  114   expected = APFloat(APFloat::IEEEquad(),
  121   test = APFloat::getLargest(APFloat::IEEEquad(), true);
  121   test = APFloat::getLargest(APFloat::IEEEquad(), true);
  122   expected = APFloat(APFloat::IEEEquad(),
  128   test = APFloat::getLargest(APFloat::IEEEquad(), true);
  128   test = APFloat::getLargest(APFloat::IEEEquad(), true);
  129   expected = APFloat::getInf(APFloat::IEEEquad(), true);
  129   expected = APFloat::getInf(APFloat::IEEEquad(), true);
  135   test = APFloat(APFloat::IEEEquad(), "0x0.0000000000000000000000000001p-16382");
  136   expected = APFloat(APFloat::IEEEquad(),
  142   test = APFloat(APFloat::IEEEquad(), "0x0.0000000000000000000000000001p-16382");
  143   expected = APFloat::getZero(APFloat::IEEEquad(), false);
  143   expected = APFloat::getZero(APFloat::IEEEquad(), false);
  149   test = APFloat(APFloat::IEEEquad(), "-0x0.0000000000000000000000000001p-16382");
  150   expected = APFloat::getZero(APFloat::IEEEquad(), true);
  150   expected = APFloat::getZero(APFloat::IEEEquad(), true);
  156   test = APFloat(APFloat::IEEEquad(), "-0x0.0000000000000000000000000001p-16382");
  157   expected = APFloat(APFloat::IEEEquad(),
  163   test = APFloat::getQNaN(APFloat::IEEEquad(), false);
  163   test = APFloat::getQNaN(APFloat::IEEEquad(), false);
  164   expected = APFloat::getQNaN(APFloat::IEEEquad(), false);
  164   expected = APFloat::getQNaN(APFloat::IEEEquad(), false);
  169   test = APFloat::getQNaN(APFloat::IEEEquad(), false);
  169   test = APFloat::getQNaN(APFloat::IEEEquad(), false);
  170   expected = APFloat::getQNaN(APFloat::IEEEquad(), false);
  170   expected = APFloat::getQNaN(APFloat::IEEEquad(), false);
  175   test = APFloat::getSNaN(APFloat::IEEEquad(), false);
  175   test = APFloat::getSNaN(APFloat::IEEEquad(), false);
  176   expected = APFloat::getQNaN(APFloat::IEEEquad(), false);
  176   expected = APFloat::getQNaN(APFloat::IEEEquad(), false);
  181   test = APFloat::getSNaN(APFloat::IEEEquad(), false);
  181   test = APFloat::getSNaN(APFloat::IEEEquad(), false);
  182   expected = APFloat::getQNaN(APFloat::IEEEquad(), false);
  182   expected = APFloat::getQNaN(APFloat::IEEEquad(), false);
  187   test = APFloat::getZero(APFloat::IEEEquad(), false);
  187   test = APFloat::getZero(APFloat::IEEEquad(), false);
  188   expected = APFloat::getSmallest(APFloat::IEEEquad(), false);
  188   expected = APFloat::getSmallest(APFloat::IEEEquad(), false);
  193   test = APFloat::getZero(APFloat::IEEEquad(), false);
  193   test = APFloat::getZero(APFloat::IEEEquad(), false);
  194   expected = APFloat::getSmallest(APFloat::IEEEquad(), true);
  194   expected = APFloat::getSmallest(APFloat::IEEEquad(), true);
  199   test = APFloat::getZero(APFloat::IEEEquad(), true);
  199   test = APFloat::getZero(APFloat::IEEEquad(), true);
  200   expected = APFloat::getSmallest(APFloat::IEEEquad(), false);
  200   expected = APFloat::getSmallest(APFloat::IEEEquad(), false);
  205   test = APFloat::getZero(APFloat::IEEEquad(), true);
  205   test = APFloat::getZero(APFloat::IEEEquad(), true);
  206   expected = APFloat::getSmallest(APFloat::IEEEquad(), true);
  206   expected = APFloat::getSmallest(APFloat::IEEEquad(), true);
  219   test = APFloat(APFloat::IEEEquad(), "0x0.ffffffffffffffffffffffffffffp-16382");
  220   expected = APFloat(APFloat::IEEEquad(),
  227   test = APFloat(APFloat::IEEEquad(),
  229   expected = APFloat(APFloat::IEEEquad(),
  236   test = APFloat(APFloat::IEEEquad(),
  238   expected = APFloat(APFloat::IEEEquad(),
  245   test = APFloat(APFloat::IEEEquad(),
  247   expected = APFloat(APFloat::IEEEquad(),
  260   test = APFloat(APFloat::IEEEquad(), "-0x1p+1");
  261   expected = APFloat(APFloat::IEEEquad(),
  267   test = APFloat(APFloat::IEEEquad(), "0x1p+1");
  268   expected = APFloat(APFloat::IEEEquad(), "0x1.ffffffffffffffffffffffffffffp+0");
  273   test = APFloat(APFloat::IEEEquad(), "0x1.ffffffffffffffffffffffffffffp+0");
  274   expected = APFloat(APFloat::IEEEquad(), "0x1p+1");
  279   test = APFloat(APFloat::IEEEquad(), "-0x1.ffffffffffffffffffffffffffffp+0");
  280   expected = APFloat(APFloat::IEEEquad(), "-0x1p+1");
  296   test = APFloat(APFloat::IEEEquad(), "-0x0.ffffffffffffffffffffffffffffp-16382");
  297   expected = APFloat(APFloat::IEEEquad(),
  305   test = APFloat(APFloat::IEEEquad(), "0x0.ffffffffffffffffffffffffffffp-16382");
  306   expected = APFloat(APFloat::IEEEquad(),
  314   test = APFloat(APFloat::IEEEquad(), "0x1.0000000000000000000000000000p-16382");
  315   expected = APFloat(APFloat::IEEEquad(),
  323   test = APFloat(APFloat::IEEEquad(), "-0x1.0000000000000000000000000000p-16382");
  324   expected = APFloat(APFloat::IEEEquad(),
  341   test = APFloat(APFloat::IEEEquad(), "-0x1p-16381");
  342   expected = APFloat(APFloat::IEEEquad(),
  349   test = APFloat(APFloat::IEEEquad(), "-0x1.ffffffffffffffffffffffffffffp-16382");
  350   expected = APFloat(APFloat::IEEEquad(), "-0x1p-16381");
  355   test = APFloat(APFloat::IEEEquad(), "0x1.ffffffffffffffffffffffffffffp-16382");
  356   expected = APFloat(APFloat::IEEEquad(), "0x1p-16381");
  361   test = APFloat(APFloat::IEEEquad(), "0x1p-16381");
  362   expected = APFloat(APFloat::IEEEquad(),
  379   test = APFloat(APFloat::IEEEquad(),
  381   expected = APFloat(APFloat::IEEEquad(),
  389   test = APFloat(APFloat::IEEEquad(),
  391   expected = APFloat(APFloat::IEEEquad(),
  399   test = APFloat(APFloat::IEEEquad(),
  401   expected = APFloat(APFloat::IEEEquad(),
  409   test = APFloat(APFloat::IEEEquad(),
  411   expected = APFloat(APFloat::IEEEquad(),
  419   test = APFloat(APFloat::IEEEquad(),
  421   expected = APFloat(APFloat::IEEEquad(),
  429   test = APFloat(APFloat::IEEEquad(),
  431   expected = APFloat(APFloat::IEEEquad(),
  439   test = APFloat(APFloat::IEEEquad(),
  441   expected = APFloat(APFloat::IEEEquad(),
  449   test = APFloat(APFloat::IEEEquad(),
  451   expected = APFloat(APFloat::IEEEquad(),
  460   APFloat::roundingMode rdmd = APFloat::rmNearestTiesToEven;
  460   APFloat::roundingMode rdmd = APFloat::rmNearestTiesToEven;
  463     APFloat f1(14.5f);
  464     APFloat f2(-14.5f);
  465     APFloat f3(225.0f);
  466     f1.fusedMultiplyAdd(f2, f3, APFloat::rmNearestTiesToEven);
  471     APFloat Val2(2.0f);
  472     APFloat f1((float)1.17549435e-38F);
  473     APFloat f2((float)1.17549435e-38F);
  476     APFloat f3(12.0f);
  477     f1.fusedMultiplyAdd(f2, f3, APFloat::rmNearestTiesToEven);
  484     APFloat f1(1.0);
  485     APFloat f2(-1.0);
  486     APFloat f3(1.0);
  487     f1.fusedMultiplyAdd(f2, f3, APFloat::rmNearestTiesToEven);
  495     APFloat f1(1.0);
  496     APFloat f2(-1.0);
  497     APFloat f3(1.0);
  498     f1.fusedMultiplyAdd(f2, f3, APFloat::rmTowardNegative);
  505     APFloat f1(0.0);
  506     APFloat f2(-0.0);
  507     APFloat f3(-0.0);
  508     f1.fusedMultiplyAdd(f2, f3, APFloat::rmNearestTiesToEven);
  514     APFloat f1(APFloat::IEEEdouble(),  "-0x1p-1074");
  514     APFloat f1(APFloat::IEEEdouble(),  "-0x1p-1074");
  515     APFloat f2(APFloat::IEEEdouble(), "+0x1p-1074");
  515     APFloat f2(APFloat::IEEEdouble(), "+0x1p-1074");
  516     APFloat f3(0.0);
  517     f1.fusedMultiplyAdd(f2, f3, APFloat::rmNearestTiesToEven);
  523     APFloat M1(APFloat::x87DoubleExtended(), 1.0);
  523     APFloat M1(APFloat::x87DoubleExtended(), 1.0);
  524     APFloat M2(APFloat::x87DoubleExtended(), 1.0);
  524     APFloat M2(APFloat::x87DoubleExtended(), 1.0);
  525     APFloat A(APFloat::x87DoubleExtended(), 3.0);
  525     APFloat A(APFloat::x87DoubleExtended(), 3.0);
  528     M1.fusedMultiplyAdd(M1, A, APFloat::rmNearestTiesToEven);
  529     M1.convert(APFloat::IEEEsingle(), APFloat::rmNearestTiesToEven, &losesInfo);
  529     M1.convert(APFloat::IEEEsingle(), APFloat::rmNearestTiesToEven, &losesInfo);
  536   APFloat f1(1.0);
  537   APFloat f2(2.0);
  538   APFloat nan = APFloat::getNaN(APFloat::IEEEdouble());
  538   APFloat nan = APFloat::getNaN(APFloat::IEEEdouble());
  538   APFloat nan = APFloat::getNaN(APFloat::IEEEdouble());
  547   APFloat f1(1.0);
  548   APFloat f2(2.0);
  549   APFloat nan = APFloat::getNaN(APFloat::IEEEdouble());
  549   APFloat nan = APFloat::getNaN(APFloat::IEEEdouble());
  549   APFloat nan = APFloat::getNaN(APFloat::IEEEdouble());
  558   APFloat f1(1.0);
  559   APFloat f2(2.0);
  560   APFloat zp(0.0);
  561   APFloat zn(-0.0);
  562   APFloat nan = APFloat::getNaN(APFloat::IEEEdouble());
  562   APFloat nan = APFloat::getNaN(APFloat::IEEEdouble());
  562   APFloat nan = APFloat::getNaN(APFloat::IEEEdouble());
  573   APFloat f1(1.0);
  574   APFloat f2(2.0);
  575   APFloat zp(0.0);
  576   APFloat zn(-0.0);
  577   APFloat nan = APFloat::getNaN(APFloat::IEEEdouble());
  577   APFloat nan = APFloat::getNaN(APFloat::IEEEdouble());
  577   APFloat nan = APFloat::getNaN(APFloat::IEEEdouble());
  588   APFloat::roundingMode rdmd = APFloat::rmNearestTiesToEven;
  588   APFloat::roundingMode rdmd = APFloat::rmNearestTiesToEven;
  596     APFloat Val2(APFloat::IEEEsingle(), 2.0e0);
  596     APFloat Val2(APFloat::IEEEsingle(), 2.0e0);
  597     APFloat T(APFloat::IEEEsingle(), MinNormalStr);
  597     APFloat T(APFloat::IEEEsingle(), MinNormalStr);
  608     APFloat Val2(APFloat::IEEEdouble(), 2.0e0);
  608     APFloat Val2(APFloat::IEEEdouble(), 2.0e0);
  609     APFloat T(APFloat::IEEEdouble(), MinNormalStr);
  609     APFloat T(APFloat::IEEEdouble(), MinNormalStr);
  620     APFloat Val2(APFloat::x87DoubleExtended(), 2.0e0);
  620     APFloat Val2(APFloat::x87DoubleExtended(), 2.0e0);
  621     APFloat T(APFloat::x87DoubleExtended(), MinNormalStr);
  621     APFloat T(APFloat::x87DoubleExtended(), MinNormalStr);
  632     APFloat Val2(APFloat::IEEEquad(), 2.0e0);
  632     APFloat Val2(APFloat::IEEEquad(), 2.0e0);
  633     APFloat T(APFloat::IEEEquad(), MinNormalStr);
  633     APFloat T(APFloat::IEEEquad(), MinNormalStr);
  652   APFloat Val(APFloat::IEEEdouble());
  652   APFloat Val(APFloat::IEEEdouble());
  654                         llvm::APFloat::rmNearestTiesToEven);
  657                         llvm::APFloat::rmNearestTiesToEven);
  660                         llvm::APFloat::rmNearestTiesToEven);
  663                         llvm::APFloat::rmNearestTiesToEven);
  666                         llvm::APFloat::rmNearestTiesToEven);
  669                         llvm::APFloat::rmNearestTiesToEven);
 1045     APFloat UnnormalZero(APFloat::x87DoubleExtended(), APInt(80, {0, 1}));
 1045     APFloat UnnormalZero(APFloat::x87DoubleExtended(), APInt(80, {0, 1}));
 1103     return APFloat::getSNaN(Sem, Negative, &appayload).bitcastToAPInt();
 1105     return APFloat::getQNaN(Sem, Negative, &appayload).bitcastToAPInt();
 1117     {         0x7fc00000ULL, APFloat::IEEEsingle(), false, false,         0x00000000ULL },
 1118     {         0xffc00000ULL, APFloat::IEEEsingle(), false,  true,         0x00000000ULL },
 1119     {         0x7fc0ae72ULL, APFloat::IEEEsingle(), false, false,         0x0000ae72ULL },
 1120     {         0x7fffae72ULL, APFloat::IEEEsingle(), false, false,         0xffffae72ULL },
 1121     {         0x7fdaae72ULL, APFloat::IEEEsingle(), false, false,         0x00daae72ULL },
 1122     {         0x7fa00000ULL, APFloat::IEEEsingle(),  true, false,         0x00000000ULL },
 1123     {         0xffa00000ULL, APFloat::IEEEsingle(),  true,  true,         0x00000000ULL },
 1124     {         0x7f80ae72ULL, APFloat::IEEEsingle(),  true, false,         0x0000ae72ULL },
 1125     {         0x7fbfae72ULL, APFloat::IEEEsingle(),  true, false,         0xffffae72ULL },
 1126     {         0x7f9aae72ULL, APFloat::IEEEsingle(),  true, false,         0x001aae72ULL },
 1127     { 0x7ff8000000000000ULL, APFloat::IEEEdouble(), false, false, 0x0000000000000000ULL },
 1128     { 0xfff8000000000000ULL, APFloat::IEEEdouble(), false,  true, 0x0000000000000000ULL },
 1129     { 0x7ff800000000ae72ULL, APFloat::IEEEdouble(), false, false, 0x000000000000ae72ULL },
 1130     { 0x7fffffffffffae72ULL, APFloat::IEEEdouble(), false, false, 0xffffffffffffae72ULL },
 1131     { 0x7ffdaaaaaaaaae72ULL, APFloat::IEEEdouble(), false, false, 0x000daaaaaaaaae72ULL },
 1132     { 0x7ff4000000000000ULL, APFloat::IEEEdouble(),  true, false, 0x0000000000000000ULL },
 1133     { 0xfff4000000000000ULL, APFloat::IEEEdouble(),  true,  true, 0x0000000000000000ULL },
 1134     { 0x7ff000000000ae72ULL, APFloat::IEEEdouble(),  true, false, 0x000000000000ae72ULL },
 1135     { 0x7ff7ffffffffae72ULL, APFloat::IEEEdouble(),  true, false, 0xffffffffffffae72ULL },
 1136     { 0x7ff1aaaaaaaaae72ULL, APFloat::IEEEdouble(),  true, false, 0x0001aaaaaaaaae72ULL },
 1318   APFloat inv(0.0f);
 1345   APFloat T(-0.5), S(3.14), R(APFloat::getLargest(APFloat::IEEEdouble())), P(0.0);
 1345   APFloat T(-0.5), S(3.14), R(APFloat::getLargest(APFloat::IEEEdouble())), P(0.0);
 1345   APFloat T(-0.5), S(3.14), R(APFloat::getLargest(APFloat::IEEEdouble())), P(0.0);
 1348   P.roundToIntegral(APFloat::rmTowardZero);
 1351   P.roundToIntegral(APFloat::rmTowardNegative);
 1354   P.roundToIntegral(APFloat::rmTowardPositive);
 1357   P.roundToIntegral(APFloat::rmNearestTiesToEven);
 1361   P.roundToIntegral(APFloat::rmTowardZero);
 1364   P.roundToIntegral(APFloat::rmTowardNegative);
 1367   P.roundToIntegral(APFloat::rmTowardPositive);
 1370   P.roundToIntegral(APFloat::rmNearestTiesToEven);
 1374   P.roundToIntegral(APFloat::rmTowardZero);
 1377   P.roundToIntegral(APFloat::rmTowardNegative);
 1380   P.roundToIntegral(APFloat::rmTowardPositive);
 1383   P.roundToIntegral(APFloat::rmNearestTiesToEven);
 1386   P = APFloat::getZero(APFloat::IEEEdouble());
 1386   P = APFloat::getZero(APFloat::IEEEdouble());
 1387   P.roundToIntegral(APFloat::rmTowardZero);
 1389   P = APFloat::getZero(APFloat::IEEEdouble(), true);
 1389   P = APFloat::getZero(APFloat::IEEEdouble(), true);
 1390   P.roundToIntegral(APFloat::rmTowardZero);
 1392   P = APFloat::getNaN(APFloat::IEEEdouble());
 1392   P = APFloat::getNaN(APFloat::IEEEdouble());
 1393   P.roundToIntegral(APFloat::rmTowardZero);
 1395   P = APFloat::getInf(APFloat::IEEEdouble());
 1395   P = APFloat::getInf(APFloat::IEEEdouble());
 1396   P.roundToIntegral(APFloat::rmTowardZero);
 1398   P = APFloat::getInf(APFloat::IEEEdouble(), true);
 1398   P = APFloat::getInf(APFloat::IEEEdouble(), true);
 1399   P.roundToIntegral(APFloat::rmTowardZero);
 1404   APFloat T(-0.0);
 1408   T = APFloat::getNaN(APFloat::IEEEdouble());
 1408   T = APFloat::getNaN(APFloat::IEEEdouble());
 1410   T = APFloat::getInf(APFloat::IEEEdouble());
 1410   T = APFloat::getInf(APFloat::IEEEdouble());
 1412   T = APFloat::getInf(APFloat::IEEEdouble(), true);
 1412   T = APFloat::getInf(APFloat::IEEEdouble(), true);
 1414   T = APFloat::getLargest(APFloat::IEEEdouble());
 1414   T = APFloat::getLargest(APFloat::IEEEdouble());
 1419   APFloat F1(-0.0);
 1420   APFloat F2(-0.0);
 1421   llvm::detail::DoubleAPFloat T(APFloat::PPCDoubleDouble(), std::move(F1),
 1424   APFloat F3(3.14159);
 1425   APFloat F4(-0.0);
 1426   llvm::detail::DoubleAPFloat T2(APFloat::PPCDoubleDouble(), std::move(F3),
 1429   APFloat F5(-0.0);
 1430   APFloat F6(3.14159);
 1431   llvm::detail::DoubleAPFloat T3(APFloat::PPCDoubleDouble(), std::move(F5),
 1442   APFloat test = APFloat::getSmallest(APFloat::IEEEsingle(), false);
 1442   APFloat test = APFloat::getSmallest(APFloat::IEEEsingle(), false);
 1442   APFloat test = APFloat::getSmallest(APFloat::IEEEsingle(), false);
 1443   APFloat expected = APFloat(APFloat::IEEEsingle(), "0x0.000002p-126");
 1443   APFloat expected = APFloat(APFloat::IEEEsingle(), "0x0.000002p-126");
 1449   test = APFloat::getSmallest(APFloat::IEEEsingle(), true);
 1449   test = APFloat::getSmallest(APFloat::IEEEsingle(), true);
 1450   expected = APFloat(APFloat::IEEEsingle(), "-0x0.000002p-126");
 1456   test = APFloat::getSmallest(APFloat::IEEEquad(), false);
 1456   test = APFloat::getSmallest(APFloat::IEEEquad(), false);
 1457   expected = APFloat(APFloat::IEEEquad(), "0x0.0000000000000000000000000001p-16382");
 1463   test = APFloat::getSmallest(APFloat::IEEEquad(), true);
 1463   test = APFloat::getSmallest(APFloat::IEEEquad(), true);
 1464   expected = APFloat(APFloat::IEEEquad(), "-0x0.0000000000000000000000000001p-16382");
 1472   APFloat test = APFloat::getSmallestNormalized(APFloat::IEEEsingle(), false);
 1472   APFloat test = APFloat::getSmallestNormalized(APFloat::IEEEsingle(), false);
 1472   APFloat test = APFloat::getSmallestNormalized(APFloat::IEEEsingle(), false);
 1473   APFloat expected = APFloat(APFloat::IEEEsingle(), "0x1p-126");
 1473   APFloat expected = APFloat(APFloat::IEEEsingle(), "0x1p-126");
 1479   test = APFloat::getSmallestNormalized(APFloat::IEEEsingle(), true);
 1479   test = APFloat::getSmallestNormalized(APFloat::IEEEsingle(), true);
 1480   expected = APFloat(APFloat::IEEEsingle(), "-0x1p-126");
 1486   test = APFloat::getSmallestNormalized(APFloat::IEEEquad(), false);
 1486   test = APFloat::getSmallestNormalized(APFloat::IEEEquad(), false);
 1487   expected = APFloat(APFloat::IEEEquad(), "0x1p-16382");
 1493   test = APFloat::getSmallestNormalized(APFloat::IEEEquad(), true);
 1493   test = APFloat::getSmallestNormalized(APFloat::IEEEquad(), true);
 1494   expected = APFloat(APFloat::IEEEquad(), "-0x1p-16382");
 1508     { &APFloat::IEEEhalf(), false, {0, 0}, 1},
 1509     { &APFloat::IEEEhalf(), true, {0x8000ULL, 0}, 1},
 1510     { &APFloat::IEEEsingle(), false, {0, 0}, 1},
 1511     { &APFloat::IEEEsingle(), true, {0x80000000ULL, 0}, 1},
 1512     { &APFloat::IEEEdouble(), false, {0, 0}, 1},
 1513     { &APFloat::IEEEdouble(), true, {0x8000000000000000ULL, 0}, 1},
 1514     { &APFloat::IEEEquad(), false, {0, 0}, 2},
 1515     { &APFloat::IEEEquad(), true, {0, 0x8000000000000000ULL}, 2},
 1516     { &APFloat::PPCDoubleDouble(), false, {0, 0}, 2},
 1517     { &APFloat::PPCDoubleDouble(), true, {0x8000000000000000ULL, 0}, 2},
 1518     { &APFloat::x87DoubleExtended(), false, {0, 0}, 2},
 1519     { &APFloat::x87DoubleExtended(), true, {0, 0x8000ULL}, 2},
 1523     APFloat test = APFloat::getZero(*GetZeroTest[i].semantics,
 1523     APFloat test = APFloat::getZero(*GetZeroTest[i].semantics,
 1526     APFloat expected = APFloat(*GetZeroTest[i].semantics,
 1551   APFloat test(APFloat::IEEEdouble(), "1.0");
 1551   APFloat test(APFloat::IEEEdouble(), "1.0");
 1552   test.convert(APFloat::IEEEsingle(), APFloat::rmNearestTiesToEven, &losesInfo);
 1552   test.convert(APFloat::IEEEsingle(), APFloat::rmNearestTiesToEven, &losesInfo);
 1556   test = APFloat(APFloat::x87DoubleExtended(), "0x1p-53");
 1557   test.add(APFloat(APFloat::x87DoubleExtended(), "1.0"), APFloat::rmNearestTiesToEven);
 1557   test.add(APFloat(APFloat::x87DoubleExtended(), "1.0"), APFloat::rmNearestTiesToEven);
 1558   test.convert(APFloat::IEEEdouble(), APFloat::rmNearestTiesToEven, &losesInfo);
 1558   test.convert(APFloat::IEEEdouble(), APFloat::rmNearestTiesToEven, &losesInfo);
 1562   test = APFloat(APFloat::IEEEquad(), "0x1p-53");
 1563   test.add(APFloat(APFloat::IEEEquad(), "1.0"), APFloat::rmNearestTiesToEven);
 1563   test.add(APFloat(APFloat::IEEEquad(), "1.0"), APFloat::rmNearestTiesToEven);
 1564   test.convert(APFloat::IEEEdouble(), APFloat::rmNearestTiesToEven, &losesInfo);
 1564   test.convert(APFloat::IEEEdouble(), APFloat::rmNearestTiesToEven, &losesInfo);
 1568   test = APFloat(APFloat::x87DoubleExtended(), "0xf.fffffffp+28");
 1569   test.convert(APFloat::IEEEdouble(), APFloat::rmNearestTiesToEven, &losesInfo);
 1569   test.convert(APFloat::IEEEdouble(), APFloat::rmNearestTiesToEven, &losesInfo);
 1573   test = APFloat::getSNaN(APFloat::IEEEsingle());
 1573   test = APFloat::getSNaN(APFloat::IEEEsingle());
 1574   APFloat X87SNaN = APFloat::getSNaN(APFloat::x87DoubleExtended());
 1574   APFloat X87SNaN = APFloat::getSNaN(APFloat::x87DoubleExtended());
 1574   APFloat X87SNaN = APFloat::getSNaN(APFloat::x87DoubleExtended());
 1575   test.convert(APFloat::x87DoubleExtended(), APFloat::rmNearestTiesToEven,
 1575   test.convert(APFloat::x87DoubleExtended(), APFloat::rmNearestTiesToEven,
 1580   test = APFloat::getQNaN(APFloat::IEEEsingle());
 1580   test = APFloat::getQNaN(APFloat::IEEEsingle());
 1581   APFloat X87QNaN = APFloat::getQNaN(APFloat::x87DoubleExtended());
 1581   APFloat X87QNaN = APFloat::getQNaN(APFloat::x87DoubleExtended());
 1581   APFloat X87QNaN = APFloat::getQNaN(APFloat::x87DoubleExtended());
 1582   test.convert(APFloat::x87DoubleExtended(), APFloat::rmNearestTiesToEven,
 1582   test.convert(APFloat::x87DoubleExtended(), APFloat::rmNearestTiesToEven,
 1587   test = APFloat::getSNaN(APFloat::x87DoubleExtended());
 1587   test = APFloat::getSNaN(APFloat::x87DoubleExtended());
 1588   test.convert(APFloat::x87DoubleExtended(), APFloat::rmNearestTiesToEven,
 1588   test.convert(APFloat::x87DoubleExtended(), APFloat::rmNearestTiesToEven,
 1593   test = APFloat::getQNaN(APFloat::x87DoubleExtended());
 1593   test = APFloat::getQNaN(APFloat::x87DoubleExtended());
 1594   test.convert(APFloat::x87DoubleExtended(), APFloat::rmNearestTiesToEven,
 1594   test.convert(APFloat::x87DoubleExtended(), APFloat::rmNearestTiesToEven,
 1601   APFloat test(APFloat::PPCDoubleDouble(), "1.0");
 1601   APFloat test(APFloat::PPCDoubleDouble(), "1.0");
 1606   test = APFloat(APFloat::PPCDoubleDouble(), "1.79769313486231580793728971405301e+308");
 1611   test = APFloat(APFloat::PPCDoubleDouble(), "2.00416836000897277799610805135016e-292");
 1617     auto Result = APFloat(APFloat::PPCDoubleDouble(), "1.0") +
 1617     auto Result = APFloat(APFloat::PPCDoubleDouble(), "1.0") +
 1618                   APFloat(APFloat::PPCDoubleDouble(), "1.0");
 1621     Result = APFloat(APFloat::PPCDoubleDouble(), "1.0") -
 1622              APFloat(APFloat::PPCDoubleDouble(), "1.0");
 1625     Result = APFloat(APFloat::PPCDoubleDouble(), "1.0") *
 1626              APFloat(APFloat::PPCDoubleDouble(), "1.0");
 1629     Result = APFloat(APFloat::PPCDoubleDouble(), "1.0") /
 1630              APFloat(APFloat::PPCDoubleDouble(), "1.0");
 1634     Result = frexp(APFloat(APFloat::PPCDoubleDouble(), "1.0"), Exp,
 1635                    APFloat::rmNearestTiesToEven);
 1638     Result = scalbn(APFloat(APFloat::PPCDoubleDouble(), "1.0"), 1,
 1639                     APFloat::rmNearestTiesToEven);
 1645   APFloat t(APFloat::IEEEsingle(), "0x1p+0");
 1645   APFloat t(APFloat::IEEEsingle(), "0x1p+0");
 1647   t = APFloat(APFloat::IEEEsingle(), "-0x1p+0");
 1664   APFloat t(APFloat::IEEEsingle(), "0x1p+0");
 1664   APFloat t(APFloat::IEEEsingle(), "0x1p+0");
 1675   APFloat t(APFloat::IEEEsingle(), "0x1p+0");
 1675   APFloat t(APFloat::IEEEsingle(), "0x1p+0");
 1685   APFloat t(APFloat::IEEEsingle(), "0x1p+0");
 1685   APFloat t(APFloat::IEEEsingle(), "0x1p+0");
 1695   APFloat t(APFloat::IEEEsingle(), "0x1p+0");
 1695   APFloat t(APFloat::IEEEsingle(), "0x1p+0");
 1740   APFloat PInf = APFloat::getInf(APFloat::IEEEsingle(), false);
 1740   APFloat PInf = APFloat::getInf(APFloat::IEEEsingle(), false);
 1740   APFloat PInf = APFloat::getInf(APFloat::IEEEsingle(), false);
 1741   APFloat MInf = APFloat::getInf(APFloat::IEEEsingle(), true);
 1741   APFloat MInf = APFloat::getInf(APFloat::IEEEsingle(), true);
 1741   APFloat MInf = APFloat::getInf(APFloat::IEEEsingle(), true);
 1742   APFloat PZero = APFloat::getZero(APFloat::IEEEsingle(), false);
 1742   APFloat PZero = APFloat::getZero(APFloat::IEEEsingle(), false);
 1742   APFloat PZero = APFloat::getZero(APFloat::IEEEsingle(), false);
 1743   APFloat MZero = APFloat::getZero(APFloat::IEEEsingle(), true);
 1743   APFloat MZero = APFloat::getZero(APFloat::IEEEsingle(), true);
 1743   APFloat MZero = APFloat::getZero(APFloat::IEEEsingle(), true);
 1744   APFloat QNaN = APFloat::getNaN(APFloat::IEEEsingle(), false);
 1744   APFloat QNaN = APFloat::getNaN(APFloat::IEEEsingle(), false);
 1744   APFloat QNaN = APFloat::getNaN(APFloat::IEEEsingle(), false);
 1745   APFloat SNaN = APFloat::getSNaN(APFloat::IEEEsingle(), false);
 1745   APFloat SNaN = APFloat::getSNaN(APFloat::IEEEsingle(), false);
 1745   APFloat SNaN = APFloat::getSNaN(APFloat::IEEEsingle(), false);
 1746   APFloat PNormalValue = APFloat(APFloat::IEEEsingle(), "0x1p+0");
 1746   APFloat PNormalValue = APFloat(APFloat::IEEEsingle(), "0x1p+0");
 1747   APFloat MNormalValue = APFloat(APFloat::IEEEsingle(), "-0x1p+0");
 1747   APFloat MNormalValue = APFloat(APFloat::IEEEsingle(), "-0x1p+0");
 1748   APFloat PLargestValue = APFloat::getLargest(APFloat::IEEEsingle(), false);
 1748   APFloat PLargestValue = APFloat::getLargest(APFloat::IEEEsingle(), false);
 1748   APFloat PLargestValue = APFloat::getLargest(APFloat::IEEEsingle(), false);
 1749   APFloat MLargestValue = APFloat::getLargest(APFloat::IEEEsingle(), true);
 1749   APFloat MLargestValue = APFloat::getLargest(APFloat::IEEEsingle(), true);
 1749   APFloat MLargestValue = APFloat::getLargest(APFloat::IEEEsingle(), true);
 1750   APFloat PSmallestValue = APFloat::getSmallest(APFloat::IEEEsingle(), false);
 1750   APFloat PSmallestValue = APFloat::getSmallest(APFloat::IEEEsingle(), false);
 1750   APFloat PSmallestValue = APFloat::getSmallest(APFloat::IEEEsingle(), false);
 1751   APFloat MSmallestValue = APFloat::getSmallest(APFloat::IEEEsingle(), true);
 1751   APFloat MSmallestValue = APFloat::getSmallest(APFloat::IEEEsingle(), true);
 1751   APFloat MSmallestValue = APFloat::getSmallest(APFloat::IEEEsingle(), true);
 1752   APFloat PSmallestNormalized =
 1753     APFloat::getSmallestNormalized(APFloat::IEEEsingle(), false);
 1753     APFloat::getSmallestNormalized(APFloat::IEEEsingle(), false);
 1754   APFloat MSmallestNormalized =
 1755     APFloat::getSmallestNormalized(APFloat::IEEEsingle(), true);
 1755     APFloat::getSmallestNormalized(APFloat::IEEEsingle(), true);
 1757   const int OverflowStatus = APFloat::opOverflow | APFloat::opInexact;
 1757   const int OverflowStatus = APFloat::opOverflow | APFloat::opInexact;
 1761     APFloat x;
 1762     APFloat y;
 1767     { PInf, PInf, "inf", APFloat::opOK, APFloat::fcInfinity },
 1767     { PInf, PInf, "inf", APFloat::opOK, APFloat::fcInfinity },
 1768     { PInf, MInf, "nan", APFloat::opInvalidOp, APFloat::fcNaN },
 1768     { PInf, MInf, "nan", APFloat::opInvalidOp, APFloat::fcNaN },
 1769     { PInf, PZero, "inf", APFloat::opOK, APFloat::fcInfinity },
 1769     { PInf, PZero, "inf", APFloat::opOK, APFloat::fcInfinity },
 1770     { PInf, MZero, "inf", APFloat::opOK, APFloat::fcInfinity },
 1770     { PInf, MZero, "inf", APFloat::opOK, APFloat::fcInfinity },
 1771     { PInf, QNaN, "nan", APFloat::opOK, APFloat::fcNaN },
 1771     { PInf, QNaN, "nan", APFloat::opOK, APFloat::fcNaN },
 1776     { PInf, PNormalValue, "inf", APFloat::opOK, APFloat::fcInfinity },
 1776     { PInf, PNormalValue, "inf", APFloat::opOK, APFloat::fcInfinity },
 1777     { PInf, MNormalValue, "inf", APFloat::opOK, APFloat::fcInfinity },
 1777     { PInf, MNormalValue, "inf", APFloat::opOK, APFloat::fcInfinity },
 1778     { PInf, PLargestValue, "inf", APFloat::opOK, APFloat::fcInfinity },
 1778     { PInf, PLargestValue, "inf", APFloat::opOK, APFloat::fcInfinity },
 1779     { PInf, MLargestValue, "inf", APFloat::opOK, APFloat::fcInfinity },
 1779     { PInf, MLargestValue, "inf", APFloat::opOK, APFloat::fcInfinity },
 1780     { PInf, PSmallestValue, "inf", APFloat::opOK, APFloat::fcInfinity },
 1780     { PInf, PSmallestValue, "inf", APFloat::opOK, APFloat::fcInfinity },
 1781     { PInf, MSmallestValue, "inf", APFloat::opOK, APFloat::fcInfinity },
 1781     { PInf, MSmallestValue, "inf", APFloat::opOK, APFloat::fcInfinity },
 1782     { PInf, PSmallestNormalized, "inf", APFloat::opOK, APFloat::fcInfinity },
 1782     { PInf, PSmallestNormalized, "inf", APFloat::opOK, APFloat::fcInfinity },
 1783     { PInf, MSmallestNormalized, "inf", APFloat::opOK, APFloat::fcInfinity },
 1783     { PInf, MSmallestNormalized, "inf", APFloat::opOK, APFloat::fcInfinity },
 1784     { MInf, PInf, "nan", APFloat::opInvalidOp, APFloat::fcNaN },
 1784     { MInf, PInf, "nan", APFloat::opInvalidOp, APFloat::fcNaN },
 1785     { MInf, MInf, "-inf", APFloat::opOK, APFloat::fcInfinity },
 1785     { MInf, MInf, "-inf", APFloat::opOK, APFloat::fcInfinity },
 1786     { MInf, PZero, "-inf", APFloat::opOK, APFloat::fcInfinity },
 1786     { MInf, PZero, "-inf", APFloat::opOK, APFloat::fcInfinity },
 1787     { MInf, MZero, "-inf", APFloat::opOK, APFloat::fcInfinity },
 1787     { MInf, MZero, "-inf", APFloat::opOK, APFloat::fcInfinity },
 1788     { MInf, QNaN, "nan", APFloat::opOK, APFloat::fcNaN },
 1788     { MInf, QNaN, "nan", APFloat::opOK, APFloat::fcNaN },
 1793     { MInf, PNormalValue, "-inf", APFloat::opOK, APFloat::fcInfinity },
 1793     { MInf, PNormalValue, "-inf", APFloat::opOK, APFloat::fcInfinity },
 1794     { MInf, MNormalValue, "-inf", APFloat::opOK, APFloat::fcInfinity },
 1794     { MInf, MNormalValue, "-inf", APFloat::opOK, APFloat::fcInfinity },
 1795     { MInf, PLargestValue, "-inf", APFloat::opOK, APFloat::fcInfinity },
 1795     { MInf, PLargestValue, "-inf", APFloat::opOK, APFloat::fcInfinity },
 1796     { MInf, MLargestValue, "-inf", APFloat::opOK, APFloat::fcInfinity },
 1796     { MInf, MLargestValue, "-inf", APFloat::opOK, APFloat::fcInfinity },
 1797     { MInf, PSmallestValue, "-inf", APFloat::opOK, APFloat::fcInfinity },
 1797     { MInf, PSmallestValue, "-inf", APFloat::opOK, APFloat::fcInfinity },
 1798     { MInf, MSmallestValue, "-inf", APFloat::opOK, APFloat::fcInfinity },
 1798     { MInf, MSmallestValue, "-inf", APFloat::opOK, APFloat::fcInfinity },
 1799     { MInf, PSmallestNormalized, "-inf", APFloat::opOK, APFloat::fcInfinity },
 1799     { MInf, PSmallestNormalized, "-inf", APFloat::opOK, APFloat::fcInfinity },
 1800     { MInf, MSmallestNormalized, "-inf", APFloat::opOK, APFloat::fcInfinity },
 1800     { MInf, MSmallestNormalized, "-inf", APFloat::opOK, APFloat::fcInfinity },
 1801     { PZero, PInf, "inf", APFloat::opOK, APFloat::fcInfinity },
 1801     { PZero, PInf, "inf", APFloat::opOK, APFloat::fcInfinity },
 1802     { PZero, MInf, "-inf", APFloat::opOK, APFloat::fcInfinity },
 1802     { PZero, MInf, "-inf", APFloat::opOK, APFloat::fcInfinity },
 1803     { PZero, PZero, "0x0p+0", APFloat::opOK, APFloat::fcZero },
 1803     { PZero, PZero, "0x0p+0", APFloat::opOK, APFloat::fcZero },
 1804     { PZero, MZero, "0x0p+0", APFloat::opOK, APFloat::fcZero },
 1804     { PZero, MZero, "0x0p+0", APFloat::opOK, APFloat::fcZero },
 1805     { PZero, QNaN, "nan", APFloat::opOK, APFloat::fcNaN },
 1805     { PZero, QNaN, "nan", APFloat::opOK, APFloat::fcNaN },
 1810     { PZero, PNormalValue, "0x1p+0", APFloat::opOK, APFloat::fcNormal },
 1810     { PZero, PNormalValue, "0x1p+0", APFloat::opOK, APFloat::fcNormal },
 1811     { PZero, MNormalValue, "-0x1p+0", APFloat::opOK, APFloat::fcNormal },
 1811     { PZero, MNormalValue, "-0x1p+0", APFloat::opOK, APFloat::fcNormal },
 1812     { PZero, PLargestValue, "0x1.fffffep+127", APFloat::opOK, APFloat::fcNormal },
 1812     { PZero, PLargestValue, "0x1.fffffep+127", APFloat::opOK, APFloat::fcNormal },
 1813     { PZero, MLargestValue, "-0x1.fffffep+127", APFloat::opOK, APFloat::fcNormal },
 1813     { PZero, MLargestValue, "-0x1.fffffep+127", APFloat::opOK, APFloat::fcNormal },
 1814     { PZero, PSmallestValue, "0x1p-149", APFloat::opOK, APFloat::fcNormal },
 1814     { PZero, PSmallestValue, "0x1p-149", APFloat::opOK, APFloat::fcNormal },
 1815     { PZero, MSmallestValue, "-0x1p-149", APFloat::opOK, APFloat::fcNormal },
 1815     { PZero, MSmallestValue, "-0x1p-149", APFloat::opOK, APFloat::fcNormal },
 1816     { PZero, PSmallestNormalized, "0x1p-126", APFloat::opOK, APFloat::fcNormal },
 1816     { PZero, PSmallestNormalized, "0x1p-126", APFloat::opOK, APFloat::fcNormal },
 1817     { PZero, MSmallestNormalized, "-0x1p-126", APFloat::opOK, APFloat::fcNormal },
 1817     { PZero, MSmallestNormalized, "-0x1p-126", APFloat::opOK, APFloat::fcNormal },
 1818     { MZero, PInf, "inf", APFloat::opOK, APFloat::fcInfinity },
 1818     { MZero, PInf, "inf", APFloat::opOK, APFloat::fcInfinity },
 1819     { MZero, MInf, "-inf", APFloat::opOK, APFloat::fcInfinity },
 1819     { MZero, MInf, "-inf", APFloat::opOK, APFloat::fcInfinity },
 1820     { MZero, PZero, "0x0p+0", APFloat::opOK, APFloat::fcZero },
 1820     { MZero, PZero, "0x0p+0", APFloat::opOK, APFloat::fcZero },
 1821     { MZero, MZero, "-0x0p+0", APFloat::opOK, APFloat::fcZero },
 1821     { MZero, MZero, "-0x0p+0", APFloat::opOK, APFloat::fcZero },
 1822     { MZero, QNaN, "nan", APFloat::opOK, APFloat::fcNaN },
 1822     { MZero, QNaN, "nan", APFloat::opOK, APFloat::fcNaN },
 1827     { MZero, PNormalValue, "0x1p+0", APFloat::opOK, APFloat::fcNormal },
 1827     { MZero, PNormalValue, "0x1p+0", APFloat::opOK, APFloat::fcNormal },
 1828     { MZero, MNormalValue, "-0x1p+0", APFloat::opOK, APFloat::fcNormal },
 1828     { MZero, MNormalValue, "-0x1p+0", APFloat::opOK, APFloat::fcNormal },
 1829     { MZero, PLargestValue, "0x1.fffffep+127", APFloat::opOK, APFloat::fcNormal },
 1829     { MZero, PLargestValue, "0x1.fffffep+127", APFloat::opOK, APFloat::fcNormal },
 1830     { MZero, MLargestValue, "-0x1.fffffep+127", APFloat::opOK, APFloat::fcNormal },
 1830     { MZero, MLargestValue, "-0x1.fffffep+127", APFloat::opOK, APFloat::fcNormal },
 1831     { MZero, PSmallestValue, "0x1p-149", APFloat::opOK, APFloat::fcNormal },
 1831     { MZero, PSmallestValue, "0x1p-149", APFloat::opOK, APFloat::fcNormal },
 1832     { MZero, MSmallestValue, "-0x1p-149", APFloat::opOK, APFloat::fcNormal },
 1832     { MZero, MSmallestValue, "-0x1p-149", APFloat::opOK, APFloat::fcNormal },
 1833     { MZero, PSmallestNormalized, "0x1p-126", APFloat::opOK, APFloat::fcNormal },
 1833     { MZero, PSmallestNormalized, "0x1p-126", APFloat::opOK, APFloat::fcNormal },
 1834     { MZero, MSmallestNormalized, "-0x1p-126", APFloat::opOK, APFloat::fcNormal },
 1834     { MZero, MSmallestNormalized, "-0x1p-126", APFloat::opOK, APFloat::fcNormal },
 1835     { QNaN, PInf, "nan", APFloat::opOK, APFloat::fcNaN },
 1835     { QNaN, PInf, "nan", APFloat::opOK, APFloat::fcNaN },
 1836     { QNaN, MInf, "nan", APFloat::opOK, APFloat::fcNaN },
 1836     { QNaN, MInf, "nan", APFloat::opOK, APFloat::fcNaN },
 1837     { QNaN, PZero, "nan", APFloat::opOK, APFloat::fcNaN },
 1837     { QNaN, PZero, "nan", APFloat::opOK, APFloat::fcNaN },
 1838     { QNaN, MZero, "nan", APFloat::opOK, APFloat::fcNaN },
 1838     { QNaN, MZero, "nan", APFloat::opOK, APFloat::fcNaN },
 1839     { QNaN, QNaN, "nan", APFloat::opOK, APFloat::fcNaN },
 1839     { QNaN, QNaN, "nan", APFloat::opOK, APFloat::fcNaN },
 1844     { QNaN, PNormalValue, "nan", APFloat::opOK, APFloat::fcNaN },
 1844     { QNaN, PNormalValue, "nan", APFloat::opOK, APFloat::fcNaN },
 1845     { QNaN, MNormalValue, "nan", APFloat::opOK, APFloat::fcNaN },
 1845     { QNaN, MNormalValue, "nan", APFloat::opOK, APFloat::fcNaN },
 1846     { QNaN, PLargestValue, "nan", APFloat::opOK, APFloat::fcNaN },
 1846     { QNaN, PLargestValue, "nan", APFloat::opOK, APFloat::fcNaN },
 1847     { QNaN, MLargestValue, "nan", APFloat::opOK, APFloat::fcNaN },
 1847     { QNaN, MLargestValue, "nan", APFloat::opOK, APFloat::fcNaN },
 1848     { QNaN, PSmallestValue, "nan", APFloat::opOK, APFloat::fcNaN },
 1848     { QNaN, PSmallestValue, "nan", APFloat::opOK, APFloat::fcNaN },
 1849     { QNaN, MSmallestValue, "nan", APFloat::opOK, APFloat::fcNaN },
 1849     { QNaN, MSmallestValue, "nan", APFloat::opOK, APFloat::fcNaN },
 1850     { QNaN, PSmallestNormalized, "nan", APFloat::opOK, APFloat::fcNaN },
 1850     { QNaN, PSmallestNormalized, "nan", APFloat::opOK, APFloat::fcNaN },
 1851     { QNaN, MSmallestNormalized, "nan", APFloat::opOK, APFloat::fcNaN },
 1851     { QNaN, MSmallestNormalized, "nan", APFloat::opOK, APFloat::fcNaN },
 1869     { PNormalValue, PInf, "inf", APFloat::opOK, APFloat::fcInfinity },
 1869     { PNormalValue, PInf, "inf", APFloat::opOK, APFloat::fcInfinity },
 1870     { PNormalValue, MInf, "-inf", APFloat::opOK, APFloat::fcInfinity },
 1870     { PNormalValue, MInf, "-inf", APFloat::opOK, APFloat::fcInfinity },
 1871     { PNormalValue, PZero, "0x1p+0", APFloat::opOK, APFloat::fcNormal },
 1871     { PNormalValue, PZero, "0x1p+0", APFloat::opOK, APFloat::fcNormal },
 1872     { PNormalValue, MZero, "0x1p+0", APFloat::opOK, APFloat::fcNormal },
 1872     { PNormalValue, MZero, "0x1p+0", APFloat::opOK, APFloat::fcNormal },
 1873     { PNormalValue, QNaN, "nan", APFloat::opOK, APFloat::fcNaN },
 1873     { PNormalValue, QNaN, "nan", APFloat::opOK, APFloat::fcNaN },
 1878     { PNormalValue, PNormalValue, "0x1p+1", APFloat::opOK, APFloat::fcNormal },
 1878     { PNormalValue, PNormalValue, "0x1p+1", APFloat::opOK, APFloat::fcNormal },
 1879     { PNormalValue, MNormalValue, "0x0p+0", APFloat::opOK, APFloat::fcZero },
 1879     { PNormalValue, MNormalValue, "0x0p+0", APFloat::opOK, APFloat::fcZero },
 1880     { PNormalValue, PLargestValue, "0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal },
 1880     { PNormalValue, PLargestValue, "0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal },
 1881     { PNormalValue, MLargestValue, "-0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal },
 1881     { PNormalValue, MLargestValue, "-0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal },
 1882     { PNormalValue, PSmallestValue, "0x1p+0", APFloat::opInexact, APFloat::fcNormal },
 1882     { PNormalValue, PSmallestValue, "0x1p+0", APFloat::opInexact, APFloat::fcNormal },
 1883     { PNormalValue, MSmallestValue, "0x1p+0", APFloat::opInexact, APFloat::fcNormal },
 1883     { PNormalValue, MSmallestValue, "0x1p+0", APFloat::opInexact, APFloat::fcNormal },
 1884     { PNormalValue, PSmallestNormalized, "0x1p+0", APFloat::opInexact, APFloat::fcNormal },
 1884     { PNormalValue, PSmallestNormalized, "0x1p+0", APFloat::opInexact, APFloat::fcNormal },
 1885     { PNormalValue, MSmallestNormalized, "0x1p+0", APFloat::opInexact, APFloat::fcNormal },
 1885     { PNormalValue, MSmallestNormalized, "0x1p+0", APFloat::opInexact, APFloat::fcNormal },
 1886     { MNormalValue, PInf, "inf", APFloat::opOK, APFloat::fcInfinity },
 1886     { MNormalValue, PInf, "inf", APFloat::opOK, APFloat::fcInfinity },
 1887     { MNormalValue, MInf, "-inf", APFloat::opOK, APFloat::fcInfinity },
 1887     { MNormalValue, MInf, "-inf", APFloat::opOK, APFloat::fcInfinity },
 1888     { MNormalValue, PZero, "-0x1p+0", APFloat::opOK, APFloat::fcNormal },
 1888     { MNormalValue, PZero, "-0x1p+0", APFloat::opOK, APFloat::fcNormal },
 1889     { MNormalValue, MZero, "-0x1p+0", APFloat::opOK, APFloat::fcNormal },
 1889     { MNormalValue, MZero, "-0x1p+0", APFloat::opOK, APFloat::fcNormal },
 1890     { MNormalValue, QNaN, "nan", APFloat::opOK, APFloat::fcNaN },
 1890     { MNormalValue, QNaN, "nan", APFloat::opOK, APFloat::fcNaN },
 1895     { MNormalValue, PNormalValue, "0x0p+0", APFloat::opOK, APFloat::fcZero },
 1895     { MNormalValue, PNormalValue, "0x0p+0", APFloat::opOK, APFloat::fcZero },
 1896     { MNormalValue, MNormalValue, "-0x1p+1", APFloat::opOK, APFloat::fcNormal },
 1896     { MNormalValue, MNormalValue, "-0x1p+1", APFloat::opOK, APFloat::fcNormal },
 1897     { MNormalValue, PLargestValue, "0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal },
 1897     { MNormalValue, PLargestValue, "0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal },
 1898     { MNormalValue, MLargestValue, "-0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal },
 1898     { MNormalValue, MLargestValue, "-0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal },
 1899     { MNormalValue, PSmallestValue, "-0x1p+0", APFloat::opInexact, APFloat::fcNormal },
 1899     { MNormalValue, PSmallestValue, "-0x1p+0", APFloat::opInexact, APFloat::fcNormal },
 1900     { MNormalValue, MSmallestValue, "-0x1p+0", APFloat::opInexact, APFloat::fcNormal },
 1900     { MNormalValue, MSmallestValue, "-0x1p+0", APFloat::opInexact, APFloat::fcNormal },
 1901     { MNormalValue, PSmallestNormalized, "-0x1p+0", APFloat::opInexact, APFloat::fcNormal },
 1901     { MNormalValue, PSmallestNormalized, "-0x1p+0", APFloat::opInexact, APFloat::fcNormal },
 1902     { MNormalValue, MSmallestNormalized, "-0x1p+0", APFloat::opInexact, APFloat::fcNormal },
 1902     { MNormalValue, MSmallestNormalized, "-0x1p+0", APFloat::opInexact, APFloat::fcNormal },
 1903     { PLargestValue, PInf, "inf", APFloat::opOK, APFloat::fcInfinity },
 1903     { PLargestValue, PInf, "inf", APFloat::opOK, APFloat::fcInfinity },
 1904     { PLargestValue, MInf, "-inf", APFloat::opOK, APFloat::fcInfinity },
 1904     { PLargestValue, MInf, "-inf", APFloat::opOK, APFloat::fcInfinity },
 1905     { PLargestValue, PZero, "0x1.fffffep+127", APFloat::opOK, APFloat::fcNormal },
 1905     { PLargestValue, PZero, "0x1.fffffep+127", APFloat::opOK, APFloat::fcNormal },
 1906     { PLargestValue, MZero, "0x1.fffffep+127", APFloat::opOK, APFloat::fcNormal },
 1906     { PLargestValue, MZero, "0x1.fffffep+127", APFloat::opOK, APFloat::fcNormal },
 1907     { PLargestValue, QNaN, "nan", APFloat::opOK, APFloat::fcNaN },
 1907     { PLargestValue, QNaN, "nan", APFloat::opOK, APFloat::fcNaN },
 1912     { PLargestValue, PNormalValue, "0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal },
 1912     { PLargestValue, PNormalValue, "0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal },
 1913     { PLargestValue, MNormalValue, "0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal },
 1913     { PLargestValue, MNormalValue, "0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal },
 1914     { PLargestValue, PLargestValue, "inf", OverflowStatus, APFloat::fcInfinity },
 1915     { PLargestValue, MLargestValue, "0x0p+0", APFloat::opOK, APFloat::fcZero },
 1915     { PLargestValue, MLargestValue, "0x0p+0", APFloat::opOK, APFloat::fcZero },
 1916     { PLargestValue, PSmallestValue, "0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal },
 1916     { PLargestValue, PSmallestValue, "0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal },
 1917     { PLargestValue, MSmallestValue, "0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal },
 1917     { PLargestValue, MSmallestValue, "0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal },
 1918     { PLargestValue, PSmallestNormalized, "0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal },
 1918     { PLargestValue, PSmallestNormalized, "0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal },
 1919     { PLargestValue, MSmallestNormalized, "0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal },
 1919     { PLargestValue, MSmallestNormalized, "0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal },
 1920     { MLargestValue, PInf, "inf", APFloat::opOK, APFloat::fcInfinity },
 1920     { MLargestValue, PInf, "inf", APFloat::opOK, APFloat::fcInfinity },
 1921     { MLargestValue, MInf, "-inf", APFloat::opOK, APFloat::fcInfinity },
 1921     { MLargestValue, MInf, "-inf", APFloat::opOK, APFloat::fcInfinity },
 1922     { MLargestValue, PZero, "-0x1.fffffep+127", APFloat::opOK, APFloat::fcNormal },
 1922     { MLargestValue, PZero, "-0x1.fffffep+127", APFloat::opOK, APFloat::fcNormal },
 1923     { MLargestValue, MZero, "-0x1.fffffep+127", APFloat::opOK, APFloat::fcNormal },
 1923     { MLargestValue, MZero, "-0x1.fffffep+127", APFloat::opOK, APFloat::fcNormal },
 1924     { MLargestValue, QNaN, "nan", APFloat::opOK, APFloat::fcNaN },
 1924     { MLargestValue, QNaN, "nan", APFloat::opOK, APFloat::fcNaN },
 1929     { MLargestValue, PNormalValue, "-0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal },
 1929     { MLargestValue, PNormalValue, "-0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal },
 1930     { MLargestValue, MNormalValue, "-0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal },
 1930     { MLargestValue, MNormalValue, "-0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal },
 1931     { MLargestValue, PLargestValue, "0x0p+0", APFloat::opOK, APFloat::fcZero },
 1931     { MLargestValue, PLargestValue, "0x0p+0", APFloat::opOK, APFloat::fcZero },
 1932     { MLargestValue, MLargestValue, "-inf", OverflowStatus, APFloat::fcInfinity },
 1933     { MLargestValue, PSmallestValue, "-0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal },
 1933     { MLargestValue, PSmallestValue, "-0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal },
 1934     { MLargestValue, MSmallestValue, "-0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal },
 1934     { MLargestValue, MSmallestValue, "-0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal },
 1935     { MLargestValue, PSmallestNormalized, "-0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal },
 1935     { MLargestValue, PSmallestNormalized, "-0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal },
 1936     { MLargestValue, MSmallestNormalized, "-0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal },
 1936     { MLargestValue, MSmallestNormalized, "-0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal },
 1937     { PSmallestValue, PInf, "inf", APFloat::opOK, APFloat::fcInfinity },
 1937     { PSmallestValue, PInf, "inf", APFloat::opOK, APFloat::fcInfinity },
 1938     { PSmallestValue, MInf, "-inf", APFloat::opOK, APFloat::fcInfinity },
 1938     { PSmallestValue, MInf, "-inf", APFloat::opOK, APFloat::fcInfinity },
 1939     { PSmallestValue, PZero, "0x1p-149", APFloat::opOK, APFloat::fcNormal },
 1939     { PSmallestValue, PZero, "0x1p-149", APFloat::opOK, APFloat::fcNormal },
 1940     { PSmallestValue, MZero, "0x1p-149", APFloat::opOK, APFloat::fcNormal },
 1940     { PSmallestValue, MZero, "0x1p-149", APFloat::opOK, APFloat::fcNormal },
 1941     { PSmallestValue, QNaN, "nan", APFloat::opOK, APFloat::fcNaN },
 1941     { PSmallestValue, QNaN, "nan", APFloat::opOK, APFloat::fcNaN },
 1946     { PSmallestValue, PNormalValue, "0x1p+0", APFloat::opInexact, APFloat::fcNormal },
 1946     { PSmallestValue, PNormalValue, "0x1p+0", APFloat::opInexact, APFloat::fcNormal },
 1947     { PSmallestValue, MNormalValue, "-0x1p+0", APFloat::opInexact, APFloat::fcNormal },
 1947     { PSmallestValue, MNormalValue, "-0x1p+0", APFloat::opInexact, APFloat::fcNormal },
 1948     { PSmallestValue, PLargestValue, "0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal },
 1948     { PSmallestValue, PLargestValue, "0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal },
 1949     { PSmallestValue, MLargestValue, "-0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal },
 1949     { PSmallestValue, MLargestValue, "-0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal },
 1950     { PSmallestValue, PSmallestValue, "0x1p-148", APFloat::opOK, APFloat::fcNormal },
 1950     { PSmallestValue, PSmallestValue, "0x1p-148", APFloat::opOK, APFloat::fcNormal },
 1951     { PSmallestValue, MSmallestValue, "0x0p+0", APFloat::opOK, APFloat::fcZero },
 1951     { PSmallestValue, MSmallestValue, "0x0p+0", APFloat::opOK, APFloat::fcZero },
 1952     { PSmallestValue, PSmallestNormalized, "0x1.000002p-126", APFloat::opOK, APFloat::fcNormal },
 1952     { PSmallestValue, PSmallestNormalized, "0x1.000002p-126", APFloat::opOK, APFloat::fcNormal },
 1953     { PSmallestValue, MSmallestNormalized, "-0x1.fffffcp-127", APFloat::opOK, APFloat::fcNormal },
 1953     { PSmallestValue, MSmallestNormalized, "-0x1.fffffcp-127", APFloat::opOK, APFloat::fcNormal },
 1954     { MSmallestValue, PInf, "inf", APFloat::opOK, APFloat::fcInfinity },
 1954     { MSmallestValue, PInf, "inf", APFloat::opOK, APFloat::fcInfinity },
 1955     { MSmallestValue, MInf, "-inf", APFloat::opOK, APFloat::fcInfinity },
 1955     { MSmallestValue, MInf, "-inf", APFloat::opOK, APFloat::fcInfinity },
 1956     { MSmallestValue, PZero, "-0x1p-149", APFloat::opOK, APFloat::fcNormal },
 1956     { MSmallestValue, PZero, "-0x1p-149", APFloat::opOK, APFloat::fcNormal },
 1957     { MSmallestValue, MZero, "-0x1p-149", APFloat::opOK, APFloat::fcNormal },
 1957     { MSmallestValue, MZero, "-0x1p-149", APFloat::opOK, APFloat::fcNormal },
 1958     { MSmallestValue, QNaN, "nan", APFloat::opOK, APFloat::fcNaN },
 1958     { MSmallestValue, QNaN, "nan", APFloat::opOK, APFloat::fcNaN },
 1963     { MSmallestValue, PNormalValue, "0x1p+0", APFloat::opInexact, APFloat::fcNormal },
 1963     { MSmallestValue, PNormalValue, "0x1p+0", APFloat::opInexact, APFloat::fcNormal },
 1964     { MSmallestValue, MNormalValue, "-0x1p+0", APFloat::opInexact, APFloat::fcNormal },
 1964     { MSmallestValue, MNormalValue, "-0x1p+0", APFloat::opInexact, APFloat::fcNormal },
 1965     { MSmallestValue, PLargestValue, "0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal },
 1965     { MSmallestValue, PLargestValue, "0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal },
 1966     { MSmallestValue, MLargestValue, "-0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal },
 1966     { MSmallestValue, MLargestValue, "-0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal },
 1967     { MSmallestValue, PSmallestValue, "0x0p+0", APFloat::opOK, APFloat::fcZero },
 1967     { MSmallestValue, PSmallestValue, "0x0p+0", APFloat::opOK, APFloat::fcZero },
 1968     { MSmallestValue, MSmallestValue, "-0x1p-148", APFloat::opOK, APFloat::fcNormal },
 1968     { MSmallestValue, MSmallestValue, "-0x1p-148", APFloat::opOK, APFloat::fcNormal },
 1969     { MSmallestValue, PSmallestNormalized, "0x1.fffffcp-127", APFloat::opOK, APFloat::fcNormal },
 1969     { MSmallestValue, PSmallestNormalized, "0x1.fffffcp-127", APFloat::opOK, APFloat::fcNormal },
 1970     { MSmallestValue, MSmallestNormalized, "-0x1.000002p-126", APFloat::opOK, APFloat::fcNormal },
 1970     { MSmallestValue, MSmallestNormalized, "-0x1.000002p-126", APFloat::opOK, APFloat::fcNormal },
 1971     { PSmallestNormalized, PInf, "inf", APFloat::opOK, APFloat::fcInfinity },
 1971     { PSmallestNormalized, PInf, "inf", APFloat::opOK, APFloat::fcInfinity },
 1972     { PSmallestNormalized, MInf, "-inf", APFloat::opOK, APFloat::fcInfinity },
 1972     { PSmallestNormalized, MInf, "-inf", APFloat::opOK, APFloat::fcInfinity },
 1973     { PSmallestNormalized, PZero, "0x1p-126", APFloat::opOK, APFloat::fcNormal },
 1973     { PSmallestNormalized, PZero, "0x1p-126", APFloat::opOK, APFloat::fcNormal },
 1974     { PSmallestNormalized, MZero, "0x1p-126", APFloat::opOK, APFloat::fcNormal },
 1974     { PSmallestNormalized, MZero, "0x1p-126", APFloat::opOK, APFloat::fcNormal },
 1975     { PSmallestNormalized, QNaN, "nan", APFloat::opOK, APFloat::fcNaN },
 1975     { PSmallestNormalized, QNaN, "nan", APFloat::opOK, APFloat::fcNaN },
 1980     { PSmallestNormalized, PNormalValue, "0x1p+0", APFloat::opInexact, APFloat::fcNormal },
 1980     { PSmallestNormalized, PNormalValue, "0x1p+0", APFloat::opInexact, APFloat::fcNormal },
 1981     { PSmallestNormalized, MNormalValue, "-0x1p+0", APFloat::opInexact, APFloat::fcNormal },
 1981     { PSmallestNormalized, MNormalValue, "-0x1p+0", APFloat::opInexact, APFloat::fcNormal },
 1982     { PSmallestNormalized, PLargestValue, "0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal },
 1982     { PSmallestNormalized, PLargestValue, "0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal },
 1983     { PSmallestNormalized, MLargestValue, "-0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal },
 1983     { PSmallestNormalized, MLargestValue, "-0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal },
 1984     { PSmallestNormalized, PSmallestValue, "0x1.000002p-126", APFloat::opOK, APFloat::fcNormal },
 1984     { PSmallestNormalized, PSmallestValue, "0x1.000002p-126", APFloat::opOK, APFloat::fcNormal },
 1985     { PSmallestNormalized, MSmallestValue, "0x1.fffffcp-127", APFloat::opOK, APFloat::fcNormal },
 1985     { PSmallestNormalized, MSmallestValue, "0x1.fffffcp-127", APFloat::opOK, APFloat::fcNormal },
 1986     { PSmallestNormalized, PSmallestNormalized, "0x1p-125", APFloat::opOK, APFloat::fcNormal },
 1986     { PSmallestNormalized, PSmallestNormalized, "0x1p-125", APFloat::opOK, APFloat::fcNormal },
 1987     { PSmallestNormalized, MSmallestNormalized, "0x0p+0", APFloat::opOK, APFloat::fcZero },
 1987     { PSmallestNormalized, MSmallestNormalized, "0x0p+0", APFloat::opOK, APFloat::fcZero },
 1988     { MSmallestNormalized, PInf, "inf", APFloat::opOK, APFloat::fcInfinity },
 1988     { MSmallestNormalized, PInf, "inf", APFloat::opOK, APFloat::fcInfinity },
 1989     { MSmallestNormalized, MInf, "-inf", APFloat::opOK, APFloat::fcInfinity },
 1989     { MSmallestNormalized, MInf, "-inf", APFloat::opOK, APFloat::fcInfinity },
 1990     { MSmallestNormalized, PZero, "-0x1p-126", APFloat::opOK, APFloat::fcNormal },
 1990     { MSmallestNormalized, PZero, "-0x1p-126", APFloat::opOK, APFloat::fcNormal },
 1991     { MSmallestNormalized, MZero, "-0x1p-126", APFloat::opOK, APFloat::fcNormal },
 1991     { MSmallestNormalized, MZero, "-0x1p-126", APFloat::opOK, APFloat::fcNormal },
 1992     { MSmallestNormalized, QNaN, "nan", APFloat::opOK, APFloat::fcNaN },
 1992     { MSmallestNormalized, QNaN, "nan", APFloat::opOK, APFloat::fcNaN },
 1997     { MSmallestNormalized, PNormalValue, "0x1p+0", APFloat::opInexact, APFloat::fcNormal },
 1997     { MSmallestNormalized, PNormalValue, "0x1p+0", APFloat::opInexact, APFloat::fcNormal },
 1998     { MSmallestNormalized, MNormalValue, "-0x1p+0", APFloat::opInexact, APFloat::fcNormal },
 1998     { MSmallestNormalized, MNormalValue, "-0x1p+0", APFloat::opInexact, APFloat::fcNormal },
 1999     { MSmallestNormalized, PLargestValue, "0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal },
 1999     { MSmallestNormalized, PLargestValue, "0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal },
 2000     { MSmallestNormalized, MLargestValue, "-0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal },
 2000     { MSmallestNormalized, MLargestValue, "-0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal },
 2001     { MSmallestNormalized, PSmallestValue, "-0x1.fffffcp-127", APFloat::opOK, APFloat::fcNormal },
 2001     { MSmallestNormalized, PSmallestValue, "-0x1.fffffcp-127", APFloat::opOK, APFloat::fcNormal },
 2002     { MSmallestNormalized, MSmallestValue, "-0x1.000002p-126", APFloat::opOK, APFloat::fcNormal },
 2002     { MSmallestNormalized, MSmallestValue, "-0x1.000002p-126", APFloat::opOK, APFloat::fcNormal },
 2003     { MSmallestNormalized, PSmallestNormalized, "0x0p+0", APFloat::opOK, APFloat::fcZero },
 2003     { MSmallestNormalized, PSmallestNormalized, "0x0p+0", APFloat::opOK, APFloat::fcZero },
 2004     { MSmallestNormalized, MSmallestNormalized, "-0x1p-125", APFloat::opOK, APFloat::fcNormal }
 2004     { MSmallestNormalized, MSmallestNormalized, "-0x1p-125", APFloat::opOK, APFloat::fcNormal }
 2008     APFloat x(SpecialCaseTests[i].x);
 2009     APFloat y(SpecialCaseTests[i].y);
 2010     APFloat::opStatus status = x.add(y, APFloat::rmNearestTiesToEven);
 2010     APFloat::opStatus status = x.add(y, APFloat::rmNearestTiesToEven);
 2012     APFloat result(APFloat::IEEEsingle(), SpecialCaseTests[i].result);
 2012     APFloat result(APFloat::IEEEsingle(), SpecialCaseTests[i].result);
 2028   APFloat PInf = APFloat::getInf(APFloat::IEEEsingle(), false);
 2028   APFloat PInf = APFloat::getInf(APFloat::IEEEsingle(), false);
 2028   APFloat PInf = APFloat::getInf(APFloat::IEEEsingle(), false);
 2029   APFloat MInf = APFloat::getInf(APFloat::IEEEsingle(), true);
 2029   APFloat MInf = APFloat::getInf(APFloat::IEEEsingle(), true);
 2029   APFloat MInf = APFloat::getInf(APFloat::IEEEsingle(), true);
 2030   APFloat PZero = APFloat::getZero(APFloat::IEEEsingle(), false);
 2030   APFloat PZero = APFloat::getZero(APFloat::IEEEsingle(), false);
 2030   APFloat PZero = APFloat::getZero(APFloat::IEEEsingle(), false);
 2031   APFloat MZero = APFloat::getZero(APFloat::IEEEsingle(), true);
 2031   APFloat MZero = APFloat::getZero(APFloat::IEEEsingle(), true);
 2031   APFloat MZero = APFloat::getZero(APFloat::IEEEsingle(), true);
 2032   APFloat QNaN = APFloat::getNaN(APFloat::IEEEsingle(), false);
 2032   APFloat QNaN = APFloat::getNaN(APFloat::IEEEsingle(), false);
 2032   APFloat QNaN = APFloat::getNaN(APFloat::IEEEsingle(), false);
 2033   APFloat SNaN = APFloat::getSNaN(APFloat::IEEEsingle(), false);
 2033   APFloat SNaN = APFloat::getSNaN(APFloat::IEEEsingle(), false);
 2033   APFloat SNaN = APFloat::getSNaN(APFloat::IEEEsingle(), false);
 2034   APFloat PNormalValue = APFloat(APFloat::IEEEsingle(), "0x1p+0");
 2034   APFloat PNormalValue = APFloat(APFloat::IEEEsingle(), "0x1p+0");
 2035   APFloat MNormalValue = APFloat(APFloat::IEEEsingle(), "-0x1p+0");
 2035   APFloat MNormalValue = APFloat(APFloat::IEEEsingle(), "-0x1p+0");
 2036   APFloat PLargestValue = APFloat::getLargest(APFloat::IEEEsingle(), false);
 2036   APFloat PLargestValue = APFloat::getLargest(APFloat::IEEEsingle(), false);
 2036   APFloat PLargestValue = APFloat::getLargest(APFloat::IEEEsingle(), false);
 2037   APFloat MLargestValue = APFloat::getLargest(APFloat::IEEEsingle(), true);
 2037   APFloat MLargestValue = APFloat::getLargest(APFloat::IEEEsingle(), true);
 2037   APFloat MLargestValue = APFloat::getLargest(APFloat::IEEEsingle(), true);
 2038   APFloat PSmallestValue = APFloat::getSmallest(APFloat::IEEEsingle(), false);
 2038   APFloat PSmallestValue = APFloat::getSmallest(APFloat::IEEEsingle(), false);
 2038   APFloat PSmallestValue = APFloat::getSmallest(APFloat::IEEEsingle(), false);
 2039   APFloat MSmallestValue = APFloat::getSmallest(APFloat::IEEEsingle(), true);
 2039   APFloat MSmallestValue = APFloat::getSmallest(APFloat::IEEEsingle(), true);
 2039   APFloat MSmallestValue = APFloat::getSmallest(APFloat::IEEEsingle(), true);
 2040   APFloat PSmallestNormalized =
 2041     APFloat::getSmallestNormalized(APFloat::IEEEsingle(), false);
 2041     APFloat::getSmallestNormalized(APFloat::IEEEsingle(), false);
 2042   APFloat MSmallestNormalized =
 2043     APFloat::getSmallestNormalized(APFloat::IEEEsingle(), true);
 2043     APFloat::getSmallestNormalized(APFloat::IEEEsingle(), true);
 2045   const int OverflowStatus = APFloat::opOverflow | APFloat::opInexact;
 2045   const int OverflowStatus = APFloat::opOverflow | APFloat::opInexact;
 2049     APFloat x;
 2050     APFloat y;
 2055     { PInf, PInf, "nan", APFloat::opInvalidOp, APFloat::fcNaN },
 2055     { PInf, PInf, "nan", APFloat::opInvalidOp, APFloat::fcNaN },
 2056     { PInf, MInf, "inf", APFloat::opOK, APFloat::fcInfinity },
 2056     { PInf, MInf, "inf", APFloat::opOK, APFloat::fcInfinity },
 2057     { PInf, PZero, "inf", APFloat::opOK, APFloat::fcInfinity },
 2057     { PInf, PZero, "inf", APFloat::opOK, APFloat::fcInfinity },
 2058     { PInf, MZero, "inf", APFloat::opOK, APFloat::fcInfinity },
 2058     { PInf, MZero, "inf", APFloat::opOK, APFloat::fcInfinity },
 2059     { PInf, QNaN, "-nan", APFloat::opOK, APFloat::fcNaN },
 2059     { PInf, QNaN, "-nan", APFloat::opOK, APFloat::fcNaN },
 2064     { PInf, PNormalValue, "inf", APFloat::opOK, APFloat::fcInfinity },
 2064     { PInf, PNormalValue, "inf", APFloat::opOK, APFloat::fcInfinity },
 2065     { PInf, MNormalValue, "inf", APFloat::opOK, APFloat::fcInfinity },
 2065     { PInf, MNormalValue, "inf", APFloat::opOK, APFloat::fcInfinity },
 2066     { PInf, PLargestValue, "inf", APFloat::opOK, APFloat::fcInfinity },
 2066     { PInf, PLargestValue, "inf", APFloat::opOK, APFloat::fcInfinity },
 2067     { PInf, MLargestValue, "inf", APFloat::opOK, APFloat::fcInfinity },
 2067     { PInf, MLargestValue, "inf", APFloat::opOK, APFloat::fcInfinity },
 2068     { PInf, PSmallestValue, "inf", APFloat::opOK, APFloat::fcInfinity },
 2068     { PInf, PSmallestValue, "inf", APFloat::opOK, APFloat::fcInfinity },
 2069     { PInf, MSmallestValue, "inf", APFloat::opOK, APFloat::fcInfinity },
 2069     { PInf, MSmallestValue, "inf", APFloat::opOK, APFloat::fcInfinity },
 2070     { PInf, PSmallestNormalized, "inf", APFloat::opOK, APFloat::fcInfinity },
 2070     { PInf, PSmallestNormalized, "inf", APFloat::opOK, APFloat::fcInfinity },
 2071     { PInf, MSmallestNormalized, "inf", APFloat::opOK, APFloat::fcInfinity },
 2071     { PInf, MSmallestNormalized, "inf", APFloat::opOK, APFloat::fcInfinity },
 2072     { MInf, PInf, "-inf", APFloat::opOK, APFloat::fcInfinity },
 2072     { MInf, PInf, "-inf", APFloat::opOK, APFloat::fcInfinity },
 2073     { MInf, MInf, "nan", APFloat::opInvalidOp, APFloat::fcNaN },
 2073     { MInf, MInf, "nan", APFloat::opInvalidOp, APFloat::fcNaN },
 2074     { MInf, PZero, "-inf", APFloat::opOK, APFloat::fcInfinity },
 2074     { MInf, PZero, "-inf", APFloat::opOK, APFloat::fcInfinity },
 2075     { MInf, MZero, "-inf", APFloat::opOK, APFloat::fcInfinity },
 2075     { MInf, MZero, "-inf", APFloat::opOK, APFloat::fcInfinity },
 2076     { MInf, QNaN, "-nan", APFloat::opOK, APFloat::fcNaN },
 2076     { MInf, QNaN, "-nan", APFloat::opOK, APFloat::fcNaN },
 2081     { MInf, PNormalValue, "-inf", APFloat::opOK, APFloat::fcInfinity },
 2081     { MInf, PNormalValue, "-inf", APFloat::opOK, APFloat::fcInfinity },
 2082     { MInf, MNormalValue, "-inf", APFloat::opOK, APFloat::fcInfinity },
 2082     { MInf, MNormalValue, "-inf", APFloat::opOK, APFloat::fcInfinity },
 2083     { MInf, PLargestValue, "-inf", APFloat::opOK, APFloat::fcInfinity },
 2083     { MInf, PLargestValue, "-inf", APFloat::opOK, APFloat::fcInfinity },
 2084     { MInf, MLargestValue, "-inf", APFloat::opOK, APFloat::fcInfinity },
 2084     { MInf, MLargestValue, "-inf", APFloat::opOK, APFloat::fcInfinity },
 2085     { MInf, PSmallestValue, "-inf", APFloat::opOK, APFloat::fcInfinity },
 2085     { MInf, PSmallestValue, "-inf", APFloat::opOK, APFloat::fcInfinity },
 2086     { MInf, MSmallestValue, "-inf", APFloat::opOK, APFloat::fcInfinity },
 2086     { MInf, MSmallestValue, "-inf", APFloat::opOK, APFloat::fcInfinity },
 2087     { MInf, PSmallestNormalized, "-inf", APFloat::opOK, APFloat::fcInfinity },
 2087     { MInf, PSmallestNormalized, "-inf", APFloat::opOK, APFloat::fcInfinity },
 2088     { MInf, MSmallestNormalized, "-inf", APFloat::opOK, APFloat::fcInfinity },
 2088     { MInf, MSmallestNormalized, "-inf", APFloat::opOK, APFloat::fcInfinity },
 2089     { PZero, PInf, "-inf", APFloat::opOK, APFloat::fcInfinity },
 2089     { PZero, PInf, "-inf", APFloat::opOK, APFloat::fcInfinity },
 2090     { PZero, MInf, "inf", APFloat::opOK, APFloat::fcInfinity },
 2090     { PZero, MInf, "inf", APFloat::opOK, APFloat::fcInfinity },
 2091     { PZero, PZero, "0x0p+0", APFloat::opOK, APFloat::fcZero },
 2091     { PZero, PZero, "0x0p+0", APFloat::opOK, APFloat::fcZero },
 2092     { PZero, MZero, "0x0p+0", APFloat::opOK, APFloat::fcZero },
 2092     { PZero, MZero, "0x0p+0", APFloat::opOK, APFloat::fcZero },
 2093     { PZero, QNaN, "-nan", APFloat::opOK, APFloat::fcNaN },
 2093     { PZero, QNaN, "-nan", APFloat::opOK, APFloat::fcNaN },
 2098     { PZero, PNormalValue, "-0x1p+0", APFloat::opOK, APFloat::fcNormal },
 2098     { PZero, PNormalValue, "-0x1p+0", APFloat::opOK, APFloat::fcNormal },
 2099     { PZero, MNormalValue, "0x1p+0", APFloat::opOK, APFloat::fcNormal },
 2099     { PZero, MNormalValue, "0x1p+0", APFloat::opOK, APFloat::fcNormal },
 2100     { PZero, PLargestValue, "-0x1.fffffep+127", APFloat::opOK, APFloat::fcNormal },
 2100     { PZero, PLargestValue, "-0x1.fffffep+127", APFloat::opOK, APFloat::fcNormal },
 2101     { PZero, MLargestValue, "0x1.fffffep+127", APFloat::opOK, APFloat::fcNormal },
 2101     { PZero, MLargestValue, "0x1.fffffep+127", APFloat::opOK, APFloat::fcNormal },
 2102     { PZero, PSmallestValue, "-0x1p-149", APFloat::opOK, APFloat::fcNormal },
 2102     { PZero, PSmallestValue, "-0x1p-149", APFloat::opOK, APFloat::fcNormal },
 2103     { PZero, MSmallestValue, "0x1p-149", APFloat::opOK, APFloat::fcNormal },
 2103     { PZero, MSmallestValue, "0x1p-149", APFloat::opOK, APFloat::fcNormal },
 2104     { PZero, PSmallestNormalized, "-0x1p-126", APFloat::opOK, APFloat::fcNormal },
 2104     { PZero, PSmallestNormalized, "-0x1p-126", APFloat::opOK, APFloat::fcNormal },
 2105     { PZero, MSmallestNormalized, "0x1p-126", APFloat::opOK, APFloat::fcNormal },
 2105     { PZero, MSmallestNormalized, "0x1p-126", APFloat::opOK, APFloat::fcNormal },
 2106     { MZero, PInf, "-inf", APFloat::opOK, APFloat::fcInfinity },
 2106     { MZero, PInf, "-inf", APFloat::opOK, APFloat::fcInfinity },
 2107     { MZero, MInf, "inf", APFloat::opOK, APFloat::fcInfinity },
 2107     { MZero, MInf, "inf", APFloat::opOK, APFloat::fcInfinity },
 2108     { MZero, PZero, "-0x0p+0", APFloat::opOK, APFloat::fcZero },
 2108     { MZero, PZero, "-0x0p+0", APFloat::opOK, APFloat::fcZero },
 2109     { MZero, MZero, "0x0p+0", APFloat::opOK, APFloat::fcZero },
 2109     { MZero, MZero, "0x0p+0", APFloat::opOK, APFloat::fcZero },
 2110     { MZero, QNaN, "-nan", APFloat::opOK, APFloat::fcNaN },
 2110     { MZero, QNaN, "-nan", APFloat::opOK, APFloat::fcNaN },
 2115     { MZero, PNormalValue, "-0x1p+0", APFloat::opOK, APFloat::fcNormal },
 2115     { MZero, PNormalValue, "-0x1p+0", APFloat::opOK, APFloat::fcNormal },
 2116     { MZero, MNormalValue, "0x1p+0", APFloat::opOK, APFloat::fcNormal },
 2116     { MZero, MNormalValue, "0x1p+0", APFloat::opOK, APFloat::fcNormal },
 2117     { MZero, PLargestValue, "-0x1.fffffep+127", APFloat::opOK, APFloat::fcNormal },
 2117     { MZero, PLargestValue, "-0x1.fffffep+127", APFloat::opOK, APFloat::fcNormal },
 2118     { MZero, MLargestValue, "0x1.fffffep+127", APFloat::opOK, APFloat::fcNormal },
 2118     { MZero, MLargestValue, "0x1.fffffep+127", APFloat::opOK, APFloat::fcNormal },
 2119     { MZero, PSmallestValue, "-0x1p-149", APFloat::opOK, APFloat::fcNormal },
 2119     { MZero, PSmallestValue, "-0x1p-149", APFloat::opOK, APFloat::fcNormal },
 2120     { MZero, MSmallestValue, "0x1p-149", APFloat::opOK, APFloat::fcNormal },
 2120     { MZero, MSmallestValue, "0x1p-149", APFloat::opOK, APFloat::fcNormal },
 2121     { MZero, PSmallestNormalized, "-0x1p-126", APFloat::opOK, APFloat::fcNormal },
 2121     { MZero, PSmallestNormalized, "-0x1p-126", APFloat::opOK, APFloat::fcNormal },
 2122     { MZero, MSmallestNormalized, "0x1p-126", APFloat::opOK, APFloat::fcNormal },
 2122     { MZero, MSmallestNormalized, "0x1p-126", APFloat::opOK, APFloat::fcNormal },
 2123     { QNaN, PInf, "nan", APFloat::opOK, APFloat::fcNaN },
 2123     { QNaN, PInf, "nan", APFloat::opOK, APFloat::fcNaN },
 2124     { QNaN, MInf, "nan", APFloat::opOK, APFloat::fcNaN },
 2124     { QNaN, MInf, "nan", APFloat::opOK, APFloat::fcNaN },
 2125     { QNaN, PZero, "nan", APFloat::opOK, APFloat::fcNaN },
 2125     { QNaN, PZero, "nan", APFloat::opOK, APFloat::fcNaN },
 2126     { QNaN, MZero, "nan", APFloat::opOK, APFloat::fcNaN },
 2126     { QNaN, MZero, "nan", APFloat::opOK, APFloat::fcNaN },
 2127     { QNaN, QNaN, "nan", APFloat::opOK, APFloat::fcNaN },
 2127     { QNaN, QNaN, "nan", APFloat::opOK, APFloat::fcNaN },
 2132     { QNaN, PNormalValue, "nan", APFloat::opOK, APFloat::fcNaN },
 2132     { QNaN, PNormalValue, "nan", APFloat::opOK, APFloat::fcNaN },
 2133     { QNaN, MNormalValue, "nan", APFloat::opOK, APFloat::fcNaN },
 2133     { QNaN, MNormalValue, "nan", APFloat::opOK, APFloat::fcNaN },
 2134     { QNaN, PLargestValue, "nan", APFloat::opOK, APFloat::fcNaN },
 2134     { QNaN, PLargestValue, "nan", APFloat::opOK, APFloat::fcNaN },
 2135     { QNaN, MLargestValue, "nan", APFloat::opOK, APFloat::fcNaN },
 2135     { QNaN, MLargestValue, "nan", APFloat::opOK, APFloat::fcNaN },
 2136     { QNaN, PSmallestValue, "nan", APFloat::opOK, APFloat::fcNaN },
 2136     { QNaN, PSmallestValue, "nan", APFloat::opOK, APFloat::fcNaN },
 2137     { QNaN, MSmallestValue, "nan", APFloat::opOK, APFloat::fcNaN },
 2137     { QNaN, MSmallestValue, "nan", APFloat::opOK, APFloat::fcNaN },
 2138     { QNaN, PSmallestNormalized, "nan", APFloat::opOK, APFloat::fcNaN },
 2138     { QNaN, PSmallestNormalized, "nan", APFloat::opOK, APFloat::fcNaN },
 2139     { QNaN, MSmallestNormalized, "nan", APFloat::opOK, APFloat::fcNaN },
 2139     { QNaN, MSmallestNormalized, "nan", APFloat::opOK, APFloat::fcNaN },
 2157     { PNormalValue, PInf, "-inf", APFloat::opOK, APFloat::fcInfinity },
 2157     { PNormalValue, PInf, "-inf", APFloat::opOK, APFloat::fcInfinity },
 2158     { PNormalValue, MInf, "inf", APFloat::opOK, APFloat::fcInfinity },
 2158     { PNormalValue, MInf, "inf", APFloat::opOK, APFloat::fcInfinity },
 2159     { PNormalValue, PZero, "0x1p+0", APFloat::opOK, APFloat::fcNormal },
 2159     { PNormalValue, PZero, "0x1p+0", APFloat::opOK, APFloat::fcNormal },
 2160     { PNormalValue, MZero, "0x1p+0", APFloat::opOK, APFloat::fcNormal },
 2160     { PNormalValue, MZero, "0x1p+0", APFloat::opOK, APFloat::fcNormal },
 2161     { PNormalValue, QNaN, "-nan", APFloat::opOK, APFloat::fcNaN },
 2161     { PNormalValue, QNaN, "-nan", APFloat::opOK, APFloat::fcNaN },
 2166     { PNormalValue, PNormalValue, "0x0p+0", APFloat::opOK, APFloat::fcZero },
 2166     { PNormalValue, PNormalValue, "0x0p+0", APFloat::opOK, APFloat::fcZero },
 2167     { PNormalValue, MNormalValue, "0x1p+1", APFloat::opOK, APFloat::fcNormal },
 2167     { PNormalValue, MNormalValue, "0x1p+1", APFloat::opOK, APFloat::fcNormal },
 2168     { PNormalValue, PLargestValue, "-0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal },
 2168     { PNormalValue, PLargestValue, "-0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal },
 2169     { PNormalValue, MLargestValue, "0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal },
 2169     { PNormalValue, MLargestValue, "0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal },
 2170     { PNormalValue, PSmallestValue, "0x1p+0", APFloat::opInexact, APFloat::fcNormal },
 2170     { PNormalValue, PSmallestValue, "0x1p+0", APFloat::opInexact, APFloat::fcNormal },
 2171     { PNormalValue, MSmallestValue, "0x1p+0", APFloat::opInexact, APFloat::fcNormal },
 2171     { PNormalValue, MSmallestValue, "0x1p+0", APFloat::opInexact, APFloat::fcNormal },
 2172     { PNormalValue, PSmallestNormalized, "0x1p+0", APFloat::opInexact, APFloat::fcNormal },
 2172     { PNormalValue, PSmallestNormalized, "0x1p+0", APFloat::opInexact, APFloat::fcNormal },
 2173     { PNormalValue, MSmallestNormalized, "0x1p+0", APFloat::opInexact, APFloat::fcNormal },
 2173     { PNormalValue, MSmallestNormalized, "0x1p+0", APFloat::opInexact, APFloat::fcNormal },
 2174     { MNormalValue, PInf, "-inf", APFloat::opOK, APFloat::fcInfinity },
 2174     { MNormalValue, PInf, "-inf", APFloat::opOK, APFloat::fcInfinity },
 2175     { MNormalValue, MInf, "inf", APFloat::opOK, APFloat::fcInfinity },
 2175     { MNormalValue, MInf, "inf", APFloat::opOK, APFloat::fcInfinity },
 2176     { MNormalValue, PZero, "-0x1p+0", APFloat::opOK, APFloat::fcNormal },
 2176     { MNormalValue, PZero, "-0x1p+0", APFloat::opOK, APFloat::fcNormal },
 2177     { MNormalValue, MZero, "-0x1p+0", APFloat::opOK, APFloat::fcNormal },
 2177     { MNormalValue, MZero, "-0x1p+0", APFloat::opOK, APFloat::fcNormal },
 2178     { MNormalValue, QNaN, "-nan", APFloat::opOK, APFloat::fcNaN },
 2178     { MNormalValue, QNaN, "-nan", APFloat::opOK, APFloat::fcNaN },
 2183     { MNormalValue, PNormalValue, "-0x1p+1", APFloat::opOK, APFloat::fcNormal },
 2183     { MNormalValue, PNormalValue, "-0x1p+1", APFloat::opOK, APFloat::fcNormal },
 2184     { MNormalValue, MNormalValue, "0x0p+0", APFloat::opOK, APFloat::fcZero },
 2184     { MNormalValue, MNormalValue, "0x0p+0", APFloat::opOK, APFloat::fcZero },
 2185     { MNormalValue, PLargestValue, "-0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal },
 2185     { MNormalValue, PLargestValue, "-0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal },
 2186     { MNormalValue, MLargestValue, "0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal },
 2186     { MNormalValue, MLargestValue, "0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal },
 2187     { MNormalValue, PSmallestValue, "-0x1p+0", APFloat::opInexact, APFloat::fcNormal },
 2187     { MNormalValue, PSmallestValue, "-0x1p+0", APFloat::opInexact, APFloat::fcNormal },
 2188     { MNormalValue, MSmallestValue, "-0x1p+0", APFloat::opInexact, APFloat::fcNormal },
 2188     { MNormalValue, MSmallestValue, "-0x1p+0", APFloat::opInexact, APFloat::fcNormal },
 2189     { MNormalValue, PSmallestNormalized, "-0x1p+0", APFloat::opInexact, APFloat::fcNormal },
 2189     { MNormalValue, PSmallestNormalized, "-0x1p+0", APFloat::opInexact, APFloat::fcNormal },
 2190     { MNormalValue, MSmallestNormalized, "-0x1p+0", APFloat::opInexact, APFloat::fcNormal },
 2190     { MNormalValue, MSmallestNormalized, "-0x1p+0", APFloat::opInexact, APFloat::fcNormal },
 2191     { PLargestValue, PInf, "-inf", APFloat::opOK, APFloat::fcInfinity },
 2191     { PLargestValue, PInf, "-inf", APFloat::opOK, APFloat::fcInfinity },
 2192     { PLargestValue, MInf, "inf", APFloat::opOK, APFloat::fcInfinity },
 2192     { PLargestValue, MInf, "inf", APFloat::opOK, APFloat::fcInfinity },
 2193     { PLargestValue, PZero, "0x1.fffffep+127", APFloat::opOK, APFloat::fcNormal },
 2193     { PLargestValue, PZero, "0x1.fffffep+127", APFloat::opOK, APFloat::fcNormal },
 2194     { PLargestValue, MZero, "0x1.fffffep+127", APFloat::opOK, APFloat::fcNormal },
 2194     { PLargestValue, MZero, "0x1.fffffep+127", APFloat::opOK, APFloat::fcNormal },
 2195     { PLargestValue, QNaN, "-nan", APFloat::opOK, APFloat::fcNaN },
 2195     { PLargestValue, QNaN, "-nan", APFloat::opOK, APFloat::fcNaN },
 2200     { PLargestValue, PNormalValue, "0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal },
 2200     { PLargestValue, PNormalValue, "0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal },
 2201     { PLargestValue, MNormalValue, "0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal },
 2201     { PLargestValue, MNormalValue, "0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal },
 2202     { PLargestValue, PLargestValue, "0x0p+0", APFloat::opOK, APFloat::fcZero },
 2202     { PLargestValue, PLargestValue, "0x0p+0", APFloat::opOK, APFloat::fcZero },
 2203     { PLargestValue, MLargestValue, "inf", OverflowStatus, APFloat::fcInfinity },
 2204     { PLargestValue, PSmallestValue, "0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal },
 2204     { PLargestValue, PSmallestValue, "0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal },
 2205     { PLargestValue, MSmallestValue, "0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal },
 2205     { PLargestValue, MSmallestValue, "0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal },
 2206     { PLargestValue, PSmallestNormalized, "0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal },
 2206     { PLargestValue, PSmallestNormalized, "0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal },
 2207     { PLargestValue, MSmallestNormalized, "0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal },
 2207     { PLargestValue, MSmallestNormalized, "0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal },
 2208     { MLargestValue, PInf, "-inf", APFloat::opOK, APFloat::fcInfinity },
 2208     { MLargestValue, PInf, "-inf", APFloat::opOK, APFloat::fcInfinity },
 2209     { MLargestValue, MInf, "inf", APFloat::opOK, APFloat::fcInfinity },
 2209     { MLargestValue, MInf, "inf", APFloat::opOK, APFloat::fcInfinity },
 2210     { MLargestValue, PZero, "-0x1.fffffep+127", APFloat::opOK, APFloat::fcNormal },
 2210     { MLargestValue, PZero, "-0x1.fffffep+127", APFloat::opOK, APFloat::fcNormal },
 2211     { MLargestValue, MZero, "-0x1.fffffep+127", APFloat::opOK, APFloat::fcNormal },
 2211     { MLargestValue, MZero, "-0x1.fffffep+127", APFloat::opOK, APFloat::fcNormal },
 2212     { MLargestValue, QNaN, "-nan", APFloat::opOK, APFloat::fcNaN },
 2212     { MLargestValue, QNaN, "-nan", APFloat::opOK, APFloat::fcNaN },
 2217     { MLargestValue, PNormalValue, "-0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal },
 2217     { MLargestValue, PNormalValue, "-0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal },
 2218     { MLargestValue, MNormalValue, "-0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal },
 2218     { MLargestValue, MNormalValue, "-0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal },
 2219     { MLargestValue, PLargestValue, "-inf", OverflowStatus, APFloat::fcInfinity },
 2220     { MLargestValue, MLargestValue, "0x0p+0", APFloat::opOK, APFloat::fcZero },
 2220     { MLargestValue, MLargestValue, "0x0p+0", APFloat::opOK, APFloat::fcZero },
 2221     { MLargestValue, PSmallestValue, "-0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal },
 2221     { MLargestValue, PSmallestValue, "-0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal },
 2222     { MLargestValue, MSmallestValue, "-0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal },
 2222     { MLargestValue, MSmallestValue, "-0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal },
 2223     { MLargestValue, PSmallestNormalized, "-0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal },
 2223     { MLargestValue, PSmallestNormalized, "-0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal },
 2224     { MLargestValue, MSmallestNormalized, "-0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal },
 2224     { MLargestValue, MSmallestNormalized, "-0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal },
 2225     { PSmallestValue, PInf, "-inf", APFloat::opOK, APFloat::fcInfinity },
 2225     { PSmallestValue, PInf, "-inf", APFloat::opOK, APFloat::fcInfinity },
 2226     { PSmallestValue, MInf, "inf", APFloat::opOK, APFloat::fcInfinity },
 2226     { PSmallestValue, MInf, "inf", APFloat::opOK, APFloat::fcInfinity },
 2227     { PSmallestValue, PZero, "0x1p-149", APFloat::opOK, APFloat::fcNormal },
 2227     { PSmallestValue, PZero, "0x1p-149", APFloat::opOK, APFloat::fcNormal },
 2228     { PSmallestValue, MZero, "0x1p-149", APFloat::opOK, APFloat::fcNormal },
 2228     { PSmallestValue, MZero, "0x1p-149", APFloat::opOK, APFloat::fcNormal },
 2229     { PSmallestValue, QNaN, "-nan", APFloat::opOK, APFloat::fcNaN },
 2229     { PSmallestValue, QNaN, "-nan", APFloat::opOK, APFloat::fcNaN },
 2234     { PSmallestValue, PNormalValue, "-0x1p+0", APFloat::opInexact, APFloat::fcNormal },
 2234     { PSmallestValue, PNormalValue, "-0x1p+0", APFloat::opInexact, APFloat::fcNormal },
 2235     { PSmallestValue, MNormalValue, "0x1p+0", APFloat::opInexact, APFloat::fcNormal },
 2235     { PSmallestValue, MNormalValue, "0x1p+0", APFloat::opInexact, APFloat::fcNormal },
 2236     { PSmallestValue, PLargestValue, "-0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal },
 2236     { PSmallestValue, PLargestValue, "-0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal },
 2237     { PSmallestValue, MLargestValue, "0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal },
 2237     { PSmallestValue, MLargestValue, "0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal },
 2238     { PSmallestValue, PSmallestValue, "0x0p+0", APFloat::opOK, APFloat::fcZero },
 2238     { PSmallestValue, PSmallestValue, "0x0p+0", APFloat::opOK, APFloat::fcZero },
 2239     { PSmallestValue, MSmallestValue, "0x1p-148", APFloat::opOK, APFloat::fcNormal },
 2239     { PSmallestValue, MSmallestValue, "0x1p-148", APFloat::opOK, APFloat::fcNormal },
 2240     { PSmallestValue, PSmallestNormalized, "-0x1.fffffcp-127", APFloat::opOK, APFloat::fcNormal },
 2240     { PSmallestValue, PSmallestNormalized, "-0x1.fffffcp-127", APFloat::opOK, APFloat::fcNormal },
 2241     { PSmallestValue, MSmallestNormalized, "0x1.000002p-126", APFloat::opOK, APFloat::fcNormal },
 2241     { PSmallestValue, MSmallestNormalized, "0x1.000002p-126", APFloat::opOK, APFloat::fcNormal },
 2242     { MSmallestValue, PInf, "-inf", APFloat::opOK, APFloat::fcInfinity },
 2242     { MSmallestValue, PInf, "-inf", APFloat::opOK, APFloat::fcInfinity },
 2243     { MSmallestValue, MInf, "inf", APFloat::opOK, APFloat::fcInfinity },
 2243     { MSmallestValue, MInf, "inf", APFloat::opOK, APFloat::fcInfinity },
 2244     { MSmallestValue, PZero, "-0x1p-149", APFloat::opOK, APFloat::fcNormal },
 2244     { MSmallestValue, PZero, "-0x1p-149", APFloat::opOK, APFloat::fcNormal },
 2245     { MSmallestValue, MZero, "-0x1p-149", APFloat::opOK, APFloat::fcNormal },
 2245     { MSmallestValue, MZero, "-0x1p-149", APFloat::opOK, APFloat::fcNormal },
 2246     { MSmallestValue, QNaN, "-nan", APFloat::opOK, APFloat::fcNaN },
 2246     { MSmallestValue, QNaN, "-nan", APFloat::opOK, APFloat::fcNaN },
 2251     { MSmallestValue, PNormalValue, "-0x1p+0", APFloat::opInexact, APFloat::fcNormal },
 2251     { MSmallestValue, PNormalValue, "-0x1p+0", APFloat::opInexact, APFloat::fcNormal },
 2252     { MSmallestValue, MNormalValue, "0x1p+0", APFloat::opInexact, APFloat::fcNormal },
 2252     { MSmallestValue, MNormalValue, "0x1p+0", APFloat::opInexact, APFloat::fcNormal },
 2253     { MSmallestValue, PLargestValue, "-0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal },
 2253     { MSmallestValue, PLargestValue, "-0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal },
 2254     { MSmallestValue, MLargestValue, "0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal },
 2254     { MSmallestValue, MLargestValue, "0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal },
 2255     { MSmallestValue, PSmallestValue, "-0x1p-148", APFloat::opOK, APFloat::fcNormal },
 2255     { MSmallestValue, PSmallestValue, "-0x1p-148", APFloat::opOK, APFloat::fcNormal },
 2256     { MSmallestValue, MSmallestValue, "0x0p+0", APFloat::opOK, APFloat::fcZero },
 2256     { MSmallestValue, MSmallestValue, "0x0p+0", APFloat::opOK, APFloat::fcZero },
 2257     { MSmallestValue, PSmallestNormalized, "-0x1.000002p-126", APFloat::opOK, APFloat::fcNormal },
 2257     { MSmallestValue, PSmallestNormalized, "-0x1.000002p-126", APFloat::opOK, APFloat::fcNormal },
 2258     { MSmallestValue, MSmallestNormalized, "0x1.fffffcp-127", APFloat::opOK, APFloat::fcNormal },
 2258     { MSmallestValue, MSmallestNormalized, "0x1.fffffcp-127", APFloat::opOK, APFloat::fcNormal },
 2259     { PSmallestNormalized, PInf, "-inf", APFloat::opOK, APFloat::fcInfinity },
 2259     { PSmallestNormalized, PInf, "-inf", APFloat::opOK, APFloat::fcInfinity },
 2260     { PSmallestNormalized, MInf, "inf", APFloat::opOK, APFloat::fcInfinity },
 2260     { PSmallestNormalized, MInf, "inf", APFloat::opOK, APFloat::fcInfinity },
 2261     { PSmallestNormalized, PZero, "0x1p-126", APFloat::opOK, APFloat::fcNormal },
 2261     { PSmallestNormalized, PZero, "0x1p-126", APFloat::opOK, APFloat::fcNormal },
 2262     { PSmallestNormalized, MZero, "0x1p-126", APFloat::opOK, APFloat::fcNormal },
 2262     { PSmallestNormalized, MZero, "0x1p-126", APFloat::opOK, APFloat::fcNormal },
 2263     { PSmallestNormalized, QNaN, "-nan", APFloat::opOK, APFloat::fcNaN },
 2263     { PSmallestNormalized, QNaN, "-nan", APFloat::opOK, APFloat::fcNaN },
 2268     { PSmallestNormalized, PNormalValue, "-0x1p+0", APFloat::opInexact, APFloat::fcNormal },
 2268     { PSmallestNormalized, PNormalValue, "-0x1p+0", APFloat::opInexact, APFloat::fcNormal },
 2269     { PSmallestNormalized, MNormalValue, "0x1p+0", APFloat::opInexact, APFloat::fcNormal },
 2269     { PSmallestNormalized, MNormalValue, "0x1p+0", APFloat::opInexact, APFloat::fcNormal },
 2270     { PSmallestNormalized, PLargestValue, "-0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal },
 2270     { PSmallestNormalized, PLargestValue, "-0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal },
 2271     { PSmallestNormalized, MLargestValue, "0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal },
 2271     { PSmallestNormalized, MLargestValue, "0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal },
 2272     { PSmallestNormalized, PSmallestValue, "0x1.fffffcp-127", APFloat::opOK, APFloat::fcNormal },
 2272     { PSmallestNormalized, PSmallestValue, "0x1.fffffcp-127", APFloat::opOK, APFloat::fcNormal },
 2273     { PSmallestNormalized, MSmallestValue, "0x1.000002p-126", APFloat::opOK, APFloat::fcNormal },
 2273     { PSmallestNormalized, MSmallestValue, "0x1.000002p-126", APFloat::opOK, APFloat::fcNormal },
 2274     { PSmallestNormalized, PSmallestNormalized, "0x0p+0", APFloat::opOK, APFloat::fcZero },
 2274     { PSmallestNormalized, PSmallestNormalized, "0x0p+0", APFloat::opOK, APFloat::fcZero },
 2275     { PSmallestNormalized, MSmallestNormalized, "0x1p-125", APFloat::opOK, APFloat::fcNormal },
 2275     { PSmallestNormalized, MSmallestNormalized, "0x1p-125", APFloat::opOK, APFloat::fcNormal },
 2276     { MSmallestNormalized, PInf, "-inf", APFloat::opOK, APFloat::fcInfinity },
 2276     { MSmallestNormalized, PInf, "-inf", APFloat::opOK, APFloat::fcInfinity },
 2277     { MSmallestNormalized, MInf, "inf", APFloat::opOK, APFloat::fcInfinity },
 2277     { MSmallestNormalized, MInf, "inf", APFloat::opOK, APFloat::fcInfinity },
 2278     { MSmallestNormalized, PZero, "-0x1p-126", APFloat::opOK, APFloat::fcNormal },
 2278     { MSmallestNormalized, PZero, "-0x1p-126", APFloat::opOK, APFloat::fcNormal },
 2279     { MSmallestNormalized, MZero, "-0x1p-126", APFloat::opOK, APFloat::fcNormal },
 2279     { MSmallestNormalized, MZero, "-0x1p-126", APFloat::opOK, APFloat::fcNormal },
 2280     { MSmallestNormalized, QNaN, "-nan", APFloat::opOK, APFloat::fcNaN },
 2280     { MSmallestNormalized, QNaN, "-nan", APFloat::opOK, APFloat::fcNaN },
 2285     { MSmallestNormalized, PNormalValue, "-0x1p+0", APFloat::opInexact, APFloat::fcNormal },
 2285     { MSmallestNormalized, PNormalValue, "-0x1p+0", APFloat::opInexact, APFloat::fcNormal },
 2286     { MSmallestNormalized, MNormalValue, "0x1p+0", APFloat::opInexact, APFloat::fcNormal },
 2286     { MSmallestNormalized, MNormalValue, "0x1p+0", APFloat::opInexact, APFloat::fcNormal },
 2287     { MSmallestNormalized, PLargestValue, "-0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal },
 2287     { MSmallestNormalized, PLargestValue, "-0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal },
 2288     { MSmallestNormalized, MLargestValue, "0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal },
 2288     { MSmallestNormalized, MLargestValue, "0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal },
 2289     { MSmallestNormalized, PSmallestValue, "-0x1.000002p-126", APFloat::opOK, APFloat::fcNormal },
 2289     { MSmallestNormalized, PSmallestValue, "-0x1.000002p-126", APFloat::opOK, APFloat::fcNormal },
 2290     { MSmallestNormalized, MSmallestValue, "-0x1.fffffcp-127", APFloat::opOK, APFloat::fcNormal },
 2290     { MSmallestNormalized, MSmallestValue, "-0x1.fffffcp-127", APFloat::opOK, APFloat::fcNormal },
 2291     { MSmallestNormalized, PSmallestNormalized, "-0x1p-125", APFloat::opOK, APFloat::fcNormal },
 2291     { MSmallestNormalized, PSmallestNormalized, "-0x1p-125", APFloat::opOK, APFloat::fcNormal },
 2292     { MSmallestNormalized, MSmallestNormalized, "0x0p+0", APFloat::opOK, APFloat::fcZero }
 2292     { MSmallestNormalized, MSmallestNormalized, "0x0p+0", APFloat::opOK, APFloat::fcZero }
 2296     APFloat x(SpecialCaseTests[i].x);
 2297     APFloat y(SpecialCaseTests[i].y);
 2298     APFloat::opStatus status = x.subtract(y, APFloat::rmNearestTiesToEven);
 2298     APFloat::opStatus status = x.subtract(y, APFloat::rmNearestTiesToEven);
 2300     APFloat result(APFloat::IEEEsingle(), SpecialCaseTests[i].result);
 2300     APFloat result(APFloat::IEEEsingle(), SpecialCaseTests[i].result);
 2316   APFloat PInf = APFloat::getInf(APFloat::IEEEsingle(), false);
 2316   APFloat PInf = APFloat::getInf(APFloat::IEEEsingle(), false);
 2316   APFloat PInf = APFloat::getInf(APFloat::IEEEsingle(), false);
 2317   APFloat MInf = APFloat::getInf(APFloat::IEEEsingle(), true);
 2317   APFloat MInf = APFloat::getInf(APFloat::IEEEsingle(), true);
 2317   APFloat MInf = APFloat::getInf(APFloat::IEEEsingle(), true);
 2318   APFloat PZero = APFloat::getZero(APFloat::IEEEsingle(), false);
 2318   APFloat PZero = APFloat::getZero(APFloat::IEEEsingle(), false);
 2318   APFloat PZero = APFloat::getZero(APFloat::IEEEsingle(), false);
 2319   APFloat MZero = APFloat::getZero(APFloat::IEEEsingle(), true);
 2319   APFloat MZero = APFloat::getZero(APFloat::IEEEsingle(), true);
 2319   APFloat MZero = APFloat::getZero(APFloat::IEEEsingle(), true);
 2320   APFloat QNaN = APFloat::getNaN(APFloat::IEEEsingle(), false);
 2320   APFloat QNaN = APFloat::getNaN(APFloat::IEEEsingle(), false);
 2320   APFloat QNaN = APFloat::getNaN(APFloat::IEEEsingle(), false);
 2321   APFloat SNaN = APFloat::getSNaN(APFloat::IEEEsingle(), false);
 2321   APFloat SNaN = APFloat::getSNaN(APFloat::IEEEsingle(), false);
 2321   APFloat SNaN = APFloat::getSNaN(APFloat::IEEEsingle(), false);
 2322   APFloat PNormalValue = APFloat(APFloat::IEEEsingle(), "0x1p+0");
 2322   APFloat PNormalValue = APFloat(APFloat::IEEEsingle(), "0x1p+0");
 2323   APFloat MNormalValue = APFloat(APFloat::IEEEsingle(), "-0x1p+0");
 2323   APFloat MNormalValue = APFloat(APFloat::IEEEsingle(), "-0x1p+0");
 2324   APFloat PLargestValue = APFloat::getLargest(APFloat::IEEEsingle(), false);
 2324   APFloat PLargestValue = APFloat::getLargest(APFloat::IEEEsingle(), false);
 2324   APFloat PLargestValue = APFloat::getLargest(APFloat::IEEEsingle(), false);
 2325   APFloat MLargestValue = APFloat::getLargest(APFloat::IEEEsingle(), true);
 2325   APFloat MLargestValue = APFloat::getLargest(APFloat::IEEEsingle(), true);
 2325   APFloat MLargestValue = APFloat::getLargest(APFloat::IEEEsingle(), true);
 2326   APFloat PSmallestValue = APFloat::getSmallest(APFloat::IEEEsingle(), false);
 2326   APFloat PSmallestValue = APFloat::getSmallest(APFloat::IEEEsingle(), false);
 2326   APFloat PSmallestValue = APFloat::getSmallest(APFloat::IEEEsingle(), false);
 2327   APFloat MSmallestValue = APFloat::getSmallest(APFloat::IEEEsingle(), true);
 2327   APFloat MSmallestValue = APFloat::getSmallest(APFloat::IEEEsingle(), true);
 2327   APFloat MSmallestValue = APFloat::getSmallest(APFloat::IEEEsingle(), true);
 2328   APFloat PSmallestNormalized =
 2329     APFloat::getSmallestNormalized(APFloat::IEEEsingle(), false);
 2329     APFloat::getSmallestNormalized(APFloat::IEEEsingle(), false);
 2330   APFloat MSmallestNormalized =
 2331     APFloat::getSmallestNormalized(APFloat::IEEEsingle(), true);
 2331     APFloat::getSmallestNormalized(APFloat::IEEEsingle(), true);
 2333   const int OverflowStatus = APFloat::opOverflow | APFloat::opInexact;
 2333   const int OverflowStatus = APFloat::opOverflow | APFloat::opInexact;
 2334   const int UnderflowStatus = APFloat::opUnderflow | APFloat::opInexact;
 2334   const int UnderflowStatus = APFloat::opUnderflow | APFloat::opInexact;
 2338     APFloat x;
 2339     APFloat y;
 2344     { PInf, PInf, "inf", APFloat::opOK, APFloat::fcInfinity },
 2344     { PInf, PInf, "inf", APFloat::opOK, APFloat::fcInfinity },
 2345     { PInf, MInf, "-inf", APFloat::opOK, APFloat::fcInfinity },
 2345     { PInf, MInf, "-inf", APFloat::opOK, APFloat::fcInfinity },
 2346     { PInf, PZero, "nan", APFloat::opInvalidOp, APFloat::fcNaN },
 2346     { PInf, PZero, "nan", APFloat::opInvalidOp, APFloat::fcNaN },
 2347     { PInf, MZero, "nan", APFloat::opInvalidOp, APFloat::fcNaN },
 2347     { PInf, MZero, "nan", APFloat::opInvalidOp, APFloat::fcNaN },
 2348     { PInf, QNaN, "nan", APFloat::opOK, APFloat::fcNaN },
 2348     { PInf, QNaN, "nan", APFloat::opOK, APFloat::fcNaN },
 2353     { PInf, PNormalValue, "inf", APFloat::opOK, APFloat::fcInfinity },
 2353     { PInf, PNormalValue, "inf", APFloat::opOK, APFloat::fcInfinity },
 2354     { PInf, MNormalValue, "-inf", APFloat::opOK, APFloat::fcInfinity },
 2354     { PInf, MNormalValue, "-inf", APFloat::opOK, APFloat::fcInfinity },
 2355     { PInf, PLargestValue, "inf", APFloat::opOK, APFloat::fcInfinity },
 2355     { PInf, PLargestValue, "inf", APFloat::opOK, APFloat::fcInfinity },
 2356     { PInf, MLargestValue, "-inf", APFloat::opOK, APFloat::fcInfinity },
 2356     { PInf, MLargestValue, "-inf", APFloat::opOK, APFloat::fcInfinity },
 2357     { PInf, PSmallestValue, "inf", APFloat::opOK, APFloat::fcInfinity },
 2357     { PInf, PSmallestValue, "inf", APFloat::opOK, APFloat::fcInfinity },
 2358     { PInf, MSmallestValue, "-inf", APFloat::opOK, APFloat::fcInfinity },
 2358     { PInf, MSmallestValue, "-inf", APFloat::opOK, APFloat::fcInfinity },
 2359     { PInf, PSmallestNormalized, "inf", APFloat::opOK, APFloat::fcInfinity },
 2359     { PInf, PSmallestNormalized, "inf", APFloat::opOK, APFloat::fcInfinity },
 2360     { PInf, MSmallestNormalized, "-inf", APFloat::opOK, APFloat::fcInfinity },
 2360     { PInf, MSmallestNormalized, "-inf", APFloat::opOK, APFloat::fcInfinity },
 2361     { MInf, PInf, "-inf", APFloat::opOK, APFloat::fcInfinity },
 2361     { MInf, PInf, "-inf", APFloat::opOK, APFloat::fcInfinity },
 2362     { MInf, MInf, "inf", APFloat::opOK, APFloat::fcInfinity },
 2362     { MInf, MInf, "inf", APFloat::opOK, APFloat::fcInfinity },
 2363     { MInf, PZero, "nan", APFloat::opInvalidOp, APFloat::fcNaN },
 2363     { MInf, PZero, "nan", APFloat::opInvalidOp, APFloat::fcNaN },
 2364     { MInf, MZero, "nan", APFloat::opInvalidOp, APFloat::fcNaN },
 2364     { MInf, MZero, "nan", APFloat::opInvalidOp, APFloat::fcNaN },
 2365     { MInf, QNaN, "nan", APFloat::opOK, APFloat::fcNaN },
 2365     { MInf, QNaN, "nan", APFloat::opOK, APFloat::fcNaN },
 2370     { MInf, PNormalValue, "-inf", APFloat::opOK, APFloat::fcInfinity },
 2370     { MInf, PNormalValue, "-inf", APFloat::opOK, APFloat::fcInfinity },
 2371     { MInf, MNormalValue, "inf", APFloat::opOK, APFloat::fcInfinity },
 2371     { MInf, MNormalValue, "inf", APFloat::opOK, APFloat::fcInfinity },
 2372     { MInf, PLargestValue, "-inf", APFloat::opOK, APFloat::fcInfinity },
 2372     { MInf, PLargestValue, "-inf", APFloat::opOK, APFloat::fcInfinity },
 2373     { MInf, MLargestValue, "inf", APFloat::opOK, APFloat::fcInfinity },
 2373     { MInf, MLargestValue, "inf", APFloat::opOK, APFloat::fcInfinity },
 2374     { MInf, PSmallestValue, "-inf", APFloat::opOK, APFloat::fcInfinity },
 2374     { MInf, PSmallestValue, "-inf", APFloat::opOK, APFloat::fcInfinity },
 2375     { MInf, MSmallestValue, "inf", APFloat::opOK, APFloat::fcInfinity },
 2375     { MInf, MSmallestValue, "inf", APFloat::opOK, APFloat::fcInfinity },
 2376     { MInf, PSmallestNormalized, "-inf", APFloat::opOK, APFloat::fcInfinity },
 2376     { MInf, PSmallestNormalized, "-inf", APFloat::opOK, APFloat::fcInfinity },
 2377     { MInf, MSmallestNormalized, "inf", APFloat::opOK, APFloat::fcInfinity },
 2377     { MInf, MSmallestNormalized, "inf", APFloat::opOK, APFloat::fcInfinity },
 2378     { PZero, PInf, "nan", APFloat::opInvalidOp, APFloat::fcNaN },
 2378     { PZero, PInf, "nan", APFloat::opInvalidOp, APFloat::fcNaN },
 2379     { PZero, MInf, "nan", APFloat::opInvalidOp, APFloat::fcNaN },
 2379     { PZero, MInf, "nan", APFloat::opInvalidOp, APFloat::fcNaN },
 2380     { PZero, PZero, "0x0p+0", APFloat::opOK, APFloat::fcZero },
 2380     { PZero, PZero, "0x0p+0", APFloat::opOK, APFloat::fcZero },
 2381     { PZero, MZero, "-0x0p+0", APFloat::opOK, APFloat::fcZero },
 2381     { PZero, MZero, "-0x0p+0", APFloat::opOK, APFloat::fcZero },
 2382     { PZero, QNaN, "nan", APFloat::opOK, APFloat::fcNaN },
 2382     { PZero, QNaN, "nan", APFloat::opOK, APFloat::fcNaN },
 2387     { PZero, PNormalValue, "0x0p+0", APFloat::opOK, APFloat::fcZero },
 2387     { PZero, PNormalValue, "0x0p+0", APFloat::opOK, APFloat::fcZero },
 2388     { PZero, MNormalValue, "-0x0p+0", APFloat::opOK, APFloat::fcZero },
 2388     { PZero, MNormalValue, "-0x0p+0", APFloat::opOK, APFloat::fcZero },
 2389     { PZero, PLargestValue, "0x0p+0", APFloat::opOK, APFloat::fcZero },
 2389     { PZero, PLargestValue, "0x0p+0", APFloat::opOK, APFloat::fcZero },
 2390     { PZero, MLargestValue, "-0x0p+0", APFloat::opOK, APFloat::fcZero },
 2390     { PZero, MLargestValue, "-0x0p+0", APFloat::opOK, APFloat::fcZero },
 2391     { PZero, PSmallestValue, "0x0p+0", APFloat::opOK, APFloat::fcZero },
 2391     { PZero, PSmallestValue, "0x0p+0", APFloat::opOK, APFloat::fcZero },
 2392     { PZero, MSmallestValue, "-0x0p+0", APFloat::opOK, APFloat::fcZero },
 2392     { PZero, MSmallestValue, "-0x0p+0", APFloat::opOK, APFloat::fcZero },
 2393     { PZero, PSmallestNormalized, "0x0p+0", APFloat::opOK, APFloat::fcZero },
 2393     { PZero, PSmallestNormalized, "0x0p+0", APFloat::opOK, APFloat::fcZero },
 2394     { PZero, MSmallestNormalized, "-0x0p+0", APFloat::opOK, APFloat::fcZero },
 2394     { PZero, MSmallestNormalized, "-0x0p+0", APFloat::opOK, APFloat::fcZero },
 2395     { MZero, PInf, "nan", APFloat::opInvalidOp, APFloat::fcNaN },
 2395     { MZero, PInf, "nan", APFloat::opInvalidOp, APFloat::fcNaN },
 2396     { MZero, MInf, "nan", APFloat::opInvalidOp, APFloat::fcNaN },
 2396     { MZero, MInf, "nan", APFloat::opInvalidOp, APFloat::fcNaN },
 2397     { MZero, PZero, "-0x0p+0", APFloat::opOK, APFloat::fcZero },
 2397     { MZero, PZero, "-0x0p+0", APFloat::opOK, APFloat::fcZero },
 2398     { MZero, MZero, "0x0p+0", APFloat::opOK, APFloat::fcZero },
 2398     { MZero, MZero, "0x0p+0", APFloat::opOK, APFloat::fcZero },
 2399     { MZero, QNaN, "nan", APFloat::opOK, APFloat::fcNaN },
 2399     { MZero, QNaN, "nan", APFloat::opOK, APFloat::fcNaN },
 2404     { MZero, PNormalValue, "-0x0p+0", APFloat::opOK, APFloat::fcZero },
 2404     { MZero, PNormalValue, "-0x0p+0", APFloat::opOK, APFloat::fcZero },
 2405     { MZero, MNormalValue, "0x0p+0", APFloat::opOK, APFloat::fcZero },
 2405     { MZero, MNormalValue, "0x0p+0", APFloat::opOK, APFloat::fcZero },
 2406     { MZero, PLargestValue, "-0x0p+0", APFloat::opOK, APFloat::fcZero },
 2406     { MZero, PLargestValue, "-0x0p+0", APFloat::opOK, APFloat::fcZero },
 2407     { MZero, MLargestValue, "0x0p+0", APFloat::opOK, APFloat::fcZero },
 2407     { MZero, MLargestValue, "0x0p+0", APFloat::opOK, APFloat::fcZero },
 2408     { MZero, PSmallestValue, "-0x0p+0", APFloat::opOK, APFloat::fcZero },
 2408     { MZero, PSmallestValue, "-0x0p+0", APFloat::opOK, APFloat::fcZero },
 2409     { MZero, MSmallestValue, "0x0p+0", APFloat::opOK, APFloat::fcZero },
 2409     { MZero, MSmallestValue, "0x0p+0", APFloat::opOK, APFloat::fcZero },
 2410     { MZero, PSmallestNormalized, "-0x0p+0", APFloat::opOK, APFloat::fcZero },
 2410     { MZero, PSmallestNormalized, "-0x0p+0", APFloat::opOK, APFloat::fcZero },
 2411     { MZero, MSmallestNormalized, "0x0p+0", APFloat::opOK, APFloat::fcZero },
 2411     { MZero, MSmallestNormalized, "0x0p+0", APFloat::opOK, APFloat::fcZero },
 2412     { QNaN, PInf, "nan", APFloat::opOK, APFloat::fcNaN },
 2412     { QNaN, PInf, "nan", APFloat::opOK, APFloat::fcNaN },
 2413     { QNaN, MInf, "nan", APFloat::opOK, APFloat::fcNaN },
 2413     { QNaN, MInf, "nan", APFloat::opOK, APFloat::fcNaN },
 2414     { QNaN, PZero, "nan", APFloat::opOK, APFloat::fcNaN },
 2414     { QNaN, PZero, "nan", APFloat::opOK, APFloat::fcNaN },
 2415     { QNaN, MZero, "nan", APFloat::opOK, APFloat::fcNaN },
 2415     { QNaN, MZero, "nan", APFloat::opOK, APFloat::fcNaN },
 2416     { QNaN, QNaN, "nan", APFloat::opOK, APFloat::fcNaN },
 2416     { QNaN, QNaN, "nan", APFloat::opOK, APFloat::fcNaN },
 2421     { QNaN, PNormalValue, "nan", APFloat::opOK, APFloat::fcNaN },
 2421     { QNaN, PNormalValue, "nan", APFloat::opOK, APFloat::fcNaN },
 2422     { QNaN, MNormalValue, "nan", APFloat::opOK, APFloat::fcNaN },
 2422     { QNaN, MNormalValue, "nan", APFloat::opOK, APFloat::fcNaN },
 2423     { QNaN, PLargestValue, "nan", APFloat::opOK, APFloat::fcNaN },
 2423     { QNaN, PLargestValue, "nan", APFloat::opOK, APFloat::fcNaN },
 2424     { QNaN, MLargestValue, "nan", APFloat::opOK, APFloat::fcNaN },
 2424     { QNaN, MLargestValue, "nan", APFloat::opOK, APFloat::fcNaN },
 2425     { QNaN, PSmallestValue, "nan", APFloat::opOK, APFloat::fcNaN },
 2425     { QNaN, PSmallestValue, "nan", APFloat::opOK, APFloat::fcNaN },
 2426     { QNaN, MSmallestValue, "nan", APFloat::opOK, APFloat::fcNaN },
 2426     { QNaN, MSmallestValue, "nan", APFloat::opOK, APFloat::fcNaN },
 2427     { QNaN, PSmallestNormalized, "nan", APFloat::opOK, APFloat::fcNaN },
 2427     { QNaN, PSmallestNormalized, "nan", APFloat::opOK, APFloat::fcNaN },
 2428     { QNaN, MSmallestNormalized, "nan", APFloat::opOK, APFloat::fcNaN },
 2428     { QNaN, MSmallestNormalized, "nan", APFloat::opOK, APFloat::fcNaN },
 2446     { PNormalValue, PInf, "inf", APFloat::opOK, APFloat::fcInfinity },
 2446     { PNormalValue, PInf, "inf", APFloat::opOK, APFloat::fcInfinity },
 2447     { PNormalValue, MInf, "-inf", APFloat::opOK, APFloat::fcInfinity },
 2447     { PNormalValue, MInf, "-inf", APFloat::opOK, APFloat::fcInfinity },
 2448     { PNormalValue, PZero, "0x0p+0", APFloat::opOK, APFloat::fcZero },
 2448     { PNormalValue, PZero, "0x0p+0", APFloat::opOK, APFloat::fcZero },
 2449     { PNormalValue, MZero, "-0x0p+0", APFloat::opOK, APFloat::fcZero },
 2449     { PNormalValue, MZero, "-0x0p+0", APFloat::opOK, APFloat::fcZero },
 2450     { PNormalValue, QNaN, "nan", APFloat::opOK, APFloat::fcNaN },
 2450     { PNormalValue, QNaN, "nan", APFloat::opOK, APFloat::fcNaN },
 2455     { PNormalValue, PNormalValue, "0x1p+0", APFloat::opOK, APFloat::fcNormal },
 2455     { PNormalValue, PNormalValue, "0x1p+0", APFloat::opOK, APFloat::fcNormal },
 2456     { PNormalValue, MNormalValue, "-0x1p+0", APFloat::opOK, APFloat::fcNormal },
 2456     { PNormalValue, MNormalValue, "-0x1p+0", APFloat::opOK, APFloat::fcNormal },
 2457     { PNormalValue, PLargestValue, "0x1.fffffep+127", APFloat::opOK, APFloat::fcNormal },
 2457     { PNormalValue, PLargestValue, "0x1.fffffep+127", APFloat::opOK, APFloat::fcNormal },
 2458     { PNormalValue, MLargestValue, "-0x1.fffffep+127", APFloat::opOK, APFloat::fcNormal },
 2458     { PNormalValue, MLargestValue, "-0x1.fffffep+127", APFloat::opOK, APFloat::fcNormal },
 2459     { PNormalValue, PSmallestValue, "0x1p-149", APFloat::opOK, APFloat::fcNormal },
 2459     { PNormalValue, PSmallestValue, "0x1p-149", APFloat::opOK, APFloat::fcNormal },
 2460     { PNormalValue, MSmallestValue, "-0x1p-149", APFloat::opOK, APFloat::fcNormal },
 2460     { PNormalValue, MSmallestValue, "-0x1p-149", APFloat::opOK, APFloat::fcNormal },
 2461     { PNormalValue, PSmallestNormalized, "0x1p-126", APFloat::opOK, APFloat::fcNormal },
 2461     { PNormalValue, PSmallestNormalized, "0x1p-126", APFloat::opOK, APFloat::fcNormal },
 2462     { PNormalValue, MSmallestNormalized, "-0x1p-126", APFloat::opOK, APFloat::fcNormal },
 2462     { PNormalValue, MSmallestNormalized, "-0x1p-126", APFloat::opOK, APFloat::fcNormal },
 2463     { MNormalValue, PInf, "-inf", APFloat::opOK, APFloat::fcInfinity },
 2463     { MNormalValue, PInf, "-inf", APFloat::opOK, APFloat::fcInfinity },
 2464     { MNormalValue, MInf, "inf", APFloat::opOK, APFloat::fcInfinity },
 2464     { MNormalValue, MInf, "inf", APFloat::opOK, APFloat::fcInfinity },
 2465     { MNormalValue, PZero, "-0x0p+0", APFloat::opOK, APFloat::fcZero },
 2465     { MNormalValue, PZero, "-0x0p+0", APFloat::opOK, APFloat::fcZero },
 2466     { MNormalValue, MZero, "0x0p+0", APFloat::opOK, APFloat::fcZero },
 2466     { MNormalValue, MZero, "0x0p+0", APFloat::opOK, APFloat::fcZero },
 2467     { MNormalValue, QNaN, "nan", APFloat::opOK, APFloat::fcNaN },
 2467     { MNormalValue, QNaN, "nan", APFloat::opOK, APFloat::fcNaN },
 2472     { MNormalValue, PNormalValue, "-0x1p+0", APFloat::opOK, APFloat::fcNormal },
 2472     { MNormalValue, PNormalValue, "-0x1p+0", APFloat::opOK, APFloat::fcNormal },
 2473     { MNormalValue, MNormalValue, "0x1p+0", APFloat::opOK, APFloat::fcNormal },
 2473     { MNormalValue, MNormalValue, "0x1p+0", APFloat::opOK, APFloat::fcNormal },
 2474     { MNormalValue, PLargestValue, "-0x1.fffffep+127", APFloat::opOK, APFloat::fcNormal },
 2474     { MNormalValue, PLargestValue, "-0x1.fffffep+127", APFloat::opOK, APFloat::fcNormal },
 2475     { MNormalValue, MLargestValue, "0x1.fffffep+127", APFloat::opOK, APFloat::fcNormal },
 2475     { MNormalValue, MLargestValue, "0x1.fffffep+127", APFloat::opOK, APFloat::fcNormal },
 2476     { MNormalValue, PSmallestValue, "-0x1p-149", APFloat::opOK, APFloat::fcNormal },
 2476     { MNormalValue, PSmallestValue, "-0x1p-149", APFloat::opOK, APFloat::fcNormal },
 2477     { MNormalValue, MSmallestValue, "0x1p-149", APFloat::opOK, APFloat::fcNormal },
 2477     { MNormalValue, MSmallestValue, "0x1p-149", APFloat::opOK, APFloat::fcNormal },
 2478     { MNormalValue, PSmallestNormalized, "-0x1p-126", APFloat::opOK, APFloat::fcNormal },
 2478     { MNormalValue, PSmallestNormalized, "-0x1p-126", APFloat::opOK, APFloat::fcNormal },
 2479     { MNormalValue, MSmallestNormalized, "0x1p-126", APFloat::opOK, APFloat::fcNormal },
 2479     { MNormalValue, MSmallestNormalized, "0x1p-126", APFloat::opOK, APFloat::fcNormal },
 2480     { PLargestValue, PInf, "inf", APFloat::opOK, APFloat::fcInfinity },
 2480     { PLargestValue, PInf, "inf", APFloat::opOK, APFloat::fcInfinity },
 2481     { PLargestValue, MInf, "-inf", APFloat::opOK, APFloat::fcInfinity },
 2481     { PLargestValue, MInf, "-inf", APFloat::opOK, APFloat::fcInfinity },
 2482     { PLargestValue, PZero, "0x0p+0", APFloat::opOK, APFloat::fcZero },
 2482     { PLargestValue, PZero, "0x0p+0", APFloat::opOK, APFloat::fcZero },
 2483     { PLargestValue, MZero, "-0x0p+0", APFloat::opOK, APFloat::fcZero },
 2483     { PLargestValue, MZero, "-0x0p+0", APFloat::opOK, APFloat::fcZero },
 2484     { PLargestValue, QNaN, "nan", APFloat::opOK, APFloat::fcNaN },
 2484     { PLargestValue, QNaN, "nan", APFloat::opOK, APFloat::fcNaN },
 2489     { PLargestValue, PNormalValue, "0x1.fffffep+127", APFloat::opOK, APFloat::fcNormal },
 2489     { PLargestValue, PNormalValue, "0x1.fffffep+127", APFloat::opOK, APFloat::fcNormal },
 2490     { PLargestValue, MNormalValue, "-0x1.fffffep+127", APFloat::opOK, APFloat::fcNormal },
 2490     { PLargestValue, MNormalValue, "-0x1.fffffep+127", APFloat::opOK, APFloat::fcNormal },
 2491     { PLargestValue, PLargestValue, "inf", OverflowStatus, APFloat::fcInfinity },
 2492     { PLargestValue, MLargestValue, "-inf", OverflowStatus, APFloat::fcInfinity },
 2493     { PLargestValue, PSmallestValue, "0x1.fffffep-22", APFloat::opOK, APFloat::fcNormal },
 2493     { PLargestValue, PSmallestValue, "0x1.fffffep-22", APFloat::opOK, APFloat::fcNormal },
 2494     { PLargestValue, MSmallestValue, "-0x1.fffffep-22", APFloat::opOK, APFloat::fcNormal },
 2494     { PLargestValue, MSmallestValue, "-0x1.fffffep-22", APFloat::opOK, APFloat::fcNormal },
 2495     { PLargestValue, PSmallestNormalized, "0x1.fffffep+1", APFloat::opOK, APFloat::fcNormal },
 2495     { PLargestValue, PSmallestNormalized, "0x1.fffffep+1", APFloat::opOK, APFloat::fcNormal },
 2496     { PLargestValue, MSmallestNormalized, "-0x1.fffffep+1", APFloat::opOK, APFloat::fcNormal },
 2496     { PLargestValue, MSmallestNormalized, "-0x1.fffffep+1", APFloat::opOK, APFloat::fcNormal },
 2497     { MLargestValue, PInf, "-inf", APFloat::opOK, APFloat::fcInfinity },
 2497     { MLargestValue, PInf, "-inf", APFloat::opOK, APFloat::fcInfinity },
 2498     { MLargestValue, MInf, "inf", APFloat::opOK, APFloat::fcInfinity },
 2498     { MLargestValue, MInf, "inf", APFloat::opOK, APFloat::fcInfinity },
 2499     { MLargestValue, PZero, "-0x0p+0", APFloat::opOK, APFloat::fcZero },
 2499     { MLargestValue, PZero, "-0x0p+0", APFloat::opOK, APFloat::fcZero },
 2500     { MLargestValue, MZero, "0x0p+0", APFloat::opOK, APFloat::fcZero },
 2500     { MLargestValue, MZero, "0x0p+0", APFloat::opOK, APFloat::fcZero },
 2501     { MLargestValue, QNaN, "nan", APFloat::opOK, APFloat::fcNaN },
 2501     { MLargestValue, QNaN, "nan", APFloat::opOK, APFloat::fcNaN },
 2506     { MLargestValue, PNormalValue, "-0x1.fffffep+127", APFloat::opOK, APFloat::fcNormal },
 2506     { MLargestValue, PNormalValue, "-0x1.fffffep+127", APFloat::opOK, APFloat::fcNormal },
 2507     { MLargestValue, MNormalValue, "0x1.fffffep+127", APFloat::opOK, APFloat::fcNormal },
 2507     { MLargestValue, MNormalValue, "0x1.fffffep+127", APFloat::opOK, APFloat::fcNormal },
 2508     { MLargestValue, PLargestValue, "-inf", OverflowStatus, APFloat::fcInfinity },
 2509     { MLargestValue, MLargestValue, "inf", OverflowStatus, APFloat::fcInfinity },
 2510     { MLargestValue, PSmallestValue, "-0x1.fffffep-22", APFloat::opOK, APFloat::fcNormal },
 2510     { MLargestValue, PSmallestValue, "-0x1.fffffep-22", APFloat::opOK, APFloat::fcNormal },
 2511     { MLargestValue, MSmallestValue, "0x1.fffffep-22", APFloat::opOK, APFloat::fcNormal },
 2511     { MLargestValue, MSmallestValue, "0x1.fffffep-22", APFloat::opOK, APFloat::fcNormal },
 2512     { MLargestValue, PSmallestNormalized, "-0x1.fffffep+1", APFloat::opOK, APFloat::fcNormal },
 2512     { MLargestValue, PSmallestNormalized, "-0x1.fffffep+1", APFloat::opOK, APFloat::fcNormal },
 2513     { MLargestValue, MSmallestNormalized, "0x1.fffffep+1", APFloat::opOK, APFloat::fcNormal },
 2513     { MLargestValue, MSmallestNormalized, "0x1.fffffep+1", APFloat::opOK, APFloat::fcNormal },
 2514     { PSmallestValue, PInf, "inf", APFloat::opOK, APFloat::fcInfinity },
 2514     { PSmallestValue, PInf, "inf", APFloat::opOK, APFloat::fcInfinity },
 2515     { PSmallestValue, MInf, "-inf", APFloat::opOK, APFloat::fcInfinity },
 2515     { PSmallestValue, MInf, "-inf", APFloat::opOK, APFloat::fcInfinity },
 2516     { PSmallestValue, PZero, "0x0p+0", APFloat::opOK, APFloat::fcZero },
 2516     { PSmallestValue, PZero, "0x0p+0", APFloat::opOK, APFloat::fcZero },
 2517     { PSmallestValue, MZero, "-0x0p+0", APFloat::opOK, APFloat::fcZero },
 2517     { PSmallestValue, MZero, "-0x0p+0", APFloat::opOK, APFloat::fcZero },
 2518     { PSmallestValue, QNaN, "nan", APFloat::opOK, APFloat::fcNaN },
 2518     { PSmallestValue, QNaN, "nan", APFloat::opOK, APFloat::fcNaN },
 2523     { PSmallestValue, PNormalValue, "0x1p-149", APFloat::opOK, APFloat::fcNormal },
 2523     { PSmallestValue, PNormalValue, "0x1p-149", APFloat::opOK, APFloat::fcNormal },
 2524     { PSmallestValue, MNormalValue, "-0x1p-149", APFloat::opOK, APFloat::fcNormal },
 2524     { PSmallestValue, MNormalValue, "-0x1p-149", APFloat::opOK, APFloat::fcNormal },
 2525     { PSmallestValue, PLargestValue, "0x1.fffffep-22", APFloat::opOK, APFloat::fcNormal },
 2525     { PSmallestValue, PLargestValue, "0x1.fffffep-22", APFloat::opOK, APFloat::fcNormal },
 2526     { PSmallestValue, MLargestValue, "-0x1.fffffep-22", APFloat::opOK, APFloat::fcNormal },
 2526     { PSmallestValue, MLargestValue, "-0x1.fffffep-22", APFloat::opOK, APFloat::fcNormal },
 2527     { PSmallestValue, PSmallestValue, "0x0p+0", UnderflowStatus, APFloat::fcZero },
 2528     { PSmallestValue, MSmallestValue, "-0x0p+0", UnderflowStatus, APFloat::fcZero },
 2529     { PSmallestValue, PSmallestNormalized, "0x0p+0", UnderflowStatus, APFloat::fcZero },
 2530     { PSmallestValue, MSmallestNormalized, "-0x0p+0", UnderflowStatus, APFloat::fcZero },
 2531     { MSmallestValue, PInf, "-inf", APFloat::opOK, APFloat::fcInfinity },
 2531     { MSmallestValue, PInf, "-inf", APFloat::opOK, APFloat::fcInfinity },
 2532     { MSmallestValue, MInf, "inf", APFloat::opOK, APFloat::fcInfinity },
 2532     { MSmallestValue, MInf, "inf", APFloat::opOK, APFloat::fcInfinity },
 2533     { MSmallestValue, PZero, "-0x0p+0", APFloat::opOK, APFloat::fcZero },
 2533     { MSmallestValue, PZero, "-0x0p+0", APFloat::opOK, APFloat::fcZero },
 2534     { MSmallestValue, MZero, "0x0p+0", APFloat::opOK, APFloat::fcZero },
 2534     { MSmallestValue, MZero, "0x0p+0", APFloat::opOK, APFloat::fcZero },
 2535     { MSmallestValue, QNaN, "nan", APFloat::opOK, APFloat::fcNaN },
 2535     { MSmallestValue, QNaN, "nan", APFloat::opOK, APFloat::fcNaN },
 2540     { MSmallestValue, PNormalValue, "-0x1p-149", APFloat::opOK, APFloat::fcNormal },
 2540     { MSmallestValue, PNormalValue, "-0x1p-149", APFloat::opOK, APFloat::fcNormal },
 2541     { MSmallestValue, MNormalValue, "0x1p-149", APFloat::opOK, APFloat::fcNormal },
 2541     { MSmallestValue, MNormalValue, "0x1p-149", APFloat::opOK, APFloat::fcNormal },
 2542     { MSmallestValue, PLargestValue, "-0x1.fffffep-22", APFloat::opOK, APFloat::fcNormal },
 2542     { MSmallestValue, PLargestValue, "-0x1.fffffep-22", APFloat::opOK, APFloat::fcNormal },
 2543     { MSmallestValue, MLargestValue, "0x1.fffffep-22", APFloat::opOK, APFloat::fcNormal },
 2543     { MSmallestValue, MLargestValue, "0x1.fffffep-22", APFloat::opOK, APFloat::fcNormal },
 2544     { MSmallestValue, PSmallestValue, "-0x0p+0", UnderflowStatus, APFloat::fcZero },
 2545     { MSmallestValue, MSmallestValue, "0x0p+0", UnderflowStatus, APFloat::fcZero },
 2546     { MSmallestValue, PSmallestNormalized, "-0x0p+0", UnderflowStatus, APFloat::fcZero },
 2547     { MSmallestValue, MSmallestNormalized, "0x0p+0", UnderflowStatus, APFloat::fcZero },
 2548     { PSmallestNormalized, PInf, "inf", APFloat::opOK, APFloat::fcInfinity },
 2548     { PSmallestNormalized, PInf, "inf", APFloat::opOK, APFloat::fcInfinity },
 2549     { PSmallestNormalized, MInf, "-inf", APFloat::opOK, APFloat::fcInfinity },
 2549     { PSmallestNormalized, MInf, "-inf", APFloat::opOK, APFloat::fcInfinity },
 2550     { PSmallestNormalized, PZero, "0x0p+0", APFloat::opOK, APFloat::fcZero },
 2550     { PSmallestNormalized, PZero, "0x0p+0", APFloat::opOK, APFloat::fcZero },
 2551     { PSmallestNormalized, MZero, "-0x0p+0", APFloat::opOK, APFloat::fcZero },
 2551     { PSmallestNormalized, MZero, "-0x0p+0", APFloat::opOK, APFloat::fcZero },
 2552     { PSmallestNormalized, QNaN, "nan", APFloat::opOK, APFloat::fcNaN },
 2552     { PSmallestNormalized, QNaN, "nan", APFloat::opOK, APFloat::fcNaN },
 2557     { PSmallestNormalized, PNormalValue, "0x1p-126", APFloat::opOK, APFloat::fcNormal },
 2557     { PSmallestNormalized, PNormalValue, "0x1p-126", APFloat::opOK, APFloat::fcNormal },
 2558     { PSmallestNormalized, MNormalValue, "-0x1p-126", APFloat::opOK, APFloat::fcNormal },
 2558     { PSmallestNormalized, MNormalValue, "-0x1p-126", APFloat::opOK, APFloat::fcNormal },
 2559     { PSmallestNormalized, PLargestValue, "0x1.fffffep+1", APFloat::opOK, APFloat::fcNormal },
 2559     { PSmallestNormalized, PLargestValue, "0x1.fffffep+1", APFloat::opOK, APFloat::fcNormal },
 2560     { PSmallestNormalized, MLargestValue, "-0x1.fffffep+1", APFloat::opOK, APFloat::fcNormal },
 2560     { PSmallestNormalized, MLargestValue, "-0x1.fffffep+1", APFloat::opOK, APFloat::fcNormal },
 2561     { PSmallestNormalized, PSmallestValue, "0x0p+0", UnderflowStatus, APFloat::fcZero },
 2562     { PSmallestNormalized, MSmallestValue, "-0x0p+0", UnderflowStatus, APFloat::fcZero },
 2563     { PSmallestNormalized, PSmallestNormalized, "0x0p+0", UnderflowStatus, APFloat::fcZero },
 2564     { PSmallestNormalized, MSmallestNormalized, "-0x0p+0", UnderflowStatus, APFloat::fcZero },
 2565     { MSmallestNormalized, PInf, "-inf", APFloat::opOK, APFloat::fcInfinity },
 2565     { MSmallestNormalized, PInf, "-inf", APFloat::opOK, APFloat::fcInfinity },
 2566     { MSmallestNormalized, MInf, "inf", APFloat::opOK, APFloat::fcInfinity },
 2566     { MSmallestNormalized, MInf, "inf", APFloat::opOK, APFloat::fcInfinity },
 2567     { MSmallestNormalized, PZero, "-0x0p+0", APFloat::opOK, APFloat::fcZero },
 2567     { MSmallestNormalized, PZero, "-0x0p+0", APFloat::opOK, APFloat::fcZero },
 2568     { MSmallestNormalized, MZero, "0x0p+0", APFloat::opOK, APFloat::fcZero },
 2568     { MSmallestNormalized, MZero, "0x0p+0", APFloat::opOK, APFloat::fcZero },
 2569     { MSmallestNormalized, QNaN, "nan", APFloat::opOK, APFloat::fcNaN },
 2569     { MSmallestNormalized, QNaN, "nan", APFloat::opOK, APFloat::fcNaN },
 2574     { MSmallestNormalized, PNormalValue, "-0x1p-126", APFloat::opOK, APFloat::fcNormal },
 2574     { MSmallestNormalized, PNormalValue, "-0x1p-126", APFloat::opOK, APFloat::fcNormal },
 2575     { MSmallestNormalized, MNormalValue, "0x1p-126", APFloat::opOK, APFloat::fcNormal },
 2575     { MSmallestNormalized, MNormalValue, "0x1p-126", APFloat::opOK, APFloat::fcNormal },
 2576     { MSmallestNormalized, PLargestValue, "-0x1.fffffep+1", APFloat::opOK, APFloat::fcNormal },
 2576     { MSmallestNormalized, PLargestValue, "-0x1.fffffep+1", APFloat::opOK, APFloat::fcNormal },
 2577     { MSmallestNormalized, MLargestValue, "0x1.fffffep+1", APFloat::opOK, APFloat::fcNormal },
 2577     { MSmallestNormalized, MLargestValue, "0x1.fffffep+1", APFloat::opOK, APFloat::fcNormal },
 2578     { MSmallestNormalized, PSmallestValue, "-0x0p+0", UnderflowStatus, APFloat::fcZero },
 2579     { MSmallestNormalized, MSmallestValue, "0x0p+0", UnderflowStatus, APFloat::fcZero },
 2580     { MSmallestNormalized, PSmallestNormalized, "-0x0p+0", UnderflowStatus, APFloat::fcZero },
 2581     { MSmallestNormalized, MSmallestNormalized, "0x0p+0", UnderflowStatus, APFloat::fcZero }
 2585     APFloat x(SpecialCaseTests[i].x);
 2586     APFloat y(SpecialCaseTests[i].y);
 2587     APFloat::opStatus status = x.multiply(y, APFloat::rmNearestTiesToEven);
 2587     APFloat::opStatus status = x.multiply(y, APFloat::rmNearestTiesToEven);
 2589     APFloat result(APFloat::IEEEsingle(), SpecialCaseTests[i].result);
 2589     APFloat result(APFloat::IEEEsingle(), SpecialCaseTests[i].result);
 2605   APFloat PInf = APFloat::getInf(APFloat::IEEEsingle(), false);
 2605   APFloat PInf = APFloat::getInf(APFloat::IEEEsingle(), false);
 2605   APFloat PInf = APFloat::getInf(APFloat::IEEEsingle(), false);
 2606   APFloat MInf = APFloat::getInf(APFloat::IEEEsingle(), true);
 2606   APFloat MInf = APFloat::getInf(APFloat::IEEEsingle(), true);
 2606   APFloat MInf = APFloat::getInf(APFloat::IEEEsingle(), true);
 2607   APFloat PZero = APFloat::getZero(APFloat::IEEEsingle(), false);
 2607   APFloat PZero = APFloat::getZero(APFloat::IEEEsingle(), false);
 2607   APFloat PZero = APFloat::getZero(APFloat::IEEEsingle(), false);
 2608   APFloat MZero = APFloat::getZero(APFloat::IEEEsingle(), true);
 2608   APFloat MZero = APFloat::getZero(APFloat::IEEEsingle(), true);
 2608   APFloat MZero = APFloat::getZero(APFloat::IEEEsingle(), true);
 2609   APFloat QNaN = APFloat::getNaN(APFloat::IEEEsingle(), false);
 2609   APFloat QNaN = APFloat::getNaN(APFloat::IEEEsingle(), false);
 2609   APFloat QNaN = APFloat::getNaN(APFloat::IEEEsingle(), false);
 2610   APFloat SNaN = APFloat::getSNaN(APFloat::IEEEsingle(), false);
 2610   APFloat SNaN = APFloat::getSNaN(APFloat::IEEEsingle(), false);
 2610   APFloat SNaN = APFloat::getSNaN(APFloat::IEEEsingle(), false);
 2611   APFloat PNormalValue = APFloat(APFloat::IEEEsingle(), "0x1p+0");
 2611   APFloat PNormalValue = APFloat(APFloat::IEEEsingle(), "0x1p+0");
 2612   APFloat MNormalValue = APFloat(APFloat::IEEEsingle(), "-0x1p+0");
 2612   APFloat MNormalValue = APFloat(APFloat::IEEEsingle(), "-0x1p+0");
 2613   APFloat PLargestValue = APFloat::getLargest(APFloat::IEEEsingle(), false);
 2613   APFloat PLargestValue = APFloat::getLargest(APFloat::IEEEsingle(), false);
 2613   APFloat PLargestValue = APFloat::getLargest(APFloat::IEEEsingle(), false);
 2614   APFloat MLargestValue = APFloat::getLargest(APFloat::IEEEsingle(), true);
 2614   APFloat MLargestValue = APFloat::getLargest(APFloat::IEEEsingle(), true);
 2614   APFloat MLargestValue = APFloat::getLargest(APFloat::IEEEsingle(), true);
 2615   APFloat PSmallestValue = APFloat::getSmallest(APFloat::IEEEsingle(), false);
 2615   APFloat PSmallestValue = APFloat::getSmallest(APFloat::IEEEsingle(), false);
 2615   APFloat PSmallestValue = APFloat::getSmallest(APFloat::IEEEsingle(), false);
 2616   APFloat MSmallestValue = APFloat::getSmallest(APFloat::IEEEsingle(), true);
 2616   APFloat MSmallestValue = APFloat::getSmallest(APFloat::IEEEsingle(), true);
 2616   APFloat MSmallestValue = APFloat::getSmallest(APFloat::IEEEsingle(), true);
 2617   APFloat PSmallestNormalized =
 2618     APFloat::getSmallestNormalized(APFloat::IEEEsingle(), false);
 2618     APFloat::getSmallestNormalized(APFloat::IEEEsingle(), false);
 2619   APFloat MSmallestNormalized =
 2620     APFloat::getSmallestNormalized(APFloat::IEEEsingle(), true);
 2620     APFloat::getSmallestNormalized(APFloat::IEEEsingle(), true);
 2622   const int OverflowStatus = APFloat::opOverflow | APFloat::opInexact;
 2622   const int OverflowStatus = APFloat::opOverflow | APFloat::opInexact;
 2623   const int UnderflowStatus = APFloat::opUnderflow | APFloat::opInexact;
 2623   const int UnderflowStatus = APFloat::opUnderflow | APFloat::opInexact;
 2627     APFloat x;
 2628     APFloat y;
 2633     { PInf, PInf, "nan", APFloat::opInvalidOp, APFloat::fcNaN },
 2633     { PInf, PInf, "nan", APFloat::opInvalidOp, APFloat::fcNaN },
 2634     { PInf, MInf, "nan", APFloat::opInvalidOp, APFloat::fcNaN },
 2634     { PInf, MInf, "nan", APFloat::opInvalidOp, APFloat::fcNaN },
 2635     { PInf, PZero, "inf", APFloat::opOK, APFloat::fcInfinity },
 2635     { PInf, PZero, "inf", APFloat::opOK, APFloat::fcInfinity },
 2636     { PInf, MZero, "-inf", APFloat::opOK, APFloat::fcInfinity },
 2636     { PInf, MZero, "-inf", APFloat::opOK, APFloat::fcInfinity },
 2637     { PInf, QNaN, "nan", APFloat::opOK, APFloat::fcNaN },
 2637     { PInf, QNaN, "nan", APFloat::opOK, APFloat::fcNaN },
 2642     { PInf, PNormalValue, "inf", APFloat::opOK, APFloat::fcInfinity },
 2642     { PInf, PNormalValue, "inf", APFloat::opOK, APFloat::fcInfinity },
 2643     { PInf, MNormalValue, "-inf", APFloat::opOK, APFloat::fcInfinity },
 2643     { PInf, MNormalValue, "-inf", APFloat::opOK, APFloat::fcInfinity },
 2644     { PInf, PLargestValue, "inf", APFloat::opOK, APFloat::fcInfinity },
 2644     { PInf, PLargestValue, "inf", APFloat::opOK, APFloat::fcInfinity },
 2645     { PInf, MLargestValue, "-inf", APFloat::opOK, APFloat::fcInfinity },
 2645     { PInf, MLargestValue, "-inf", APFloat::opOK, APFloat::fcInfinity },
 2646     { PInf, PSmallestValue, "inf", APFloat::opOK, APFloat::fcInfinity },
 2646     { PInf, PSmallestValue, "inf", APFloat::opOK, APFloat::fcInfinity },
 2647     { PInf, MSmallestValue, "-inf", APFloat::opOK, APFloat::fcInfinity },
 2647     { PInf, MSmallestValue, "-inf", APFloat::opOK, APFloat::fcInfinity },
 2648     { PInf, PSmallestNormalized, "inf", APFloat::opOK, APFloat::fcInfinity },
 2648     { PInf, PSmallestNormalized, "inf", APFloat::opOK, APFloat::fcInfinity },
 2649     { PInf, MSmallestNormalized, "-inf", APFloat::opOK, APFloat::fcInfinity },
 2649     { PInf, MSmallestNormalized, "-inf", APFloat::opOK, APFloat::fcInfinity },
 2650     { MInf, PInf, "nan", APFloat::opInvalidOp, APFloat::fcNaN },
 2650     { MInf, PInf, "nan", APFloat::opInvalidOp, APFloat::fcNaN },
 2651     { MInf, MInf, "nan", APFloat::opInvalidOp, APFloat::fcNaN },
 2651     { MInf, MInf, "nan", APFloat::opInvalidOp, APFloat::fcNaN },
 2652     { MInf, PZero, "-inf", APFloat::opOK, APFloat::fcInfinity },
 2652     { MInf, PZero, "-inf", APFloat::opOK, APFloat::fcInfinity },
 2653     { MInf, MZero, "inf", APFloat::opOK, APFloat::fcInfinity },
 2653     { MInf, MZero, "inf", APFloat::opOK, APFloat::fcInfinity },
 2654     { MInf, QNaN, "nan", APFloat::opOK, APFloat::fcNaN },
 2654     { MInf, QNaN, "nan", APFloat::opOK, APFloat::fcNaN },
 2659     { MInf, PNormalValue, "-inf", APFloat::opOK, APFloat::fcInfinity },
 2659     { MInf, PNormalValue, "-inf", APFloat::opOK, APFloat::fcInfinity },
 2660     { MInf, MNormalValue, "inf", APFloat::opOK, APFloat::fcInfinity },
 2660     { MInf, MNormalValue, "inf", APFloat::opOK, APFloat::fcInfinity },
 2661     { MInf, PLargestValue, "-inf", APFloat::opOK, APFloat::fcInfinity },
 2661     { MInf, PLargestValue, "-inf", APFloat::opOK, APFloat::fcInfinity },
 2662     { MInf, MLargestValue, "inf", APFloat::opOK, APFloat::fcInfinity },
 2662     { MInf, MLargestValue, "inf", APFloat::opOK, APFloat::fcInfinity },
 2663     { MInf, PSmallestValue, "-inf", APFloat::opOK, APFloat::fcInfinity },
 2663     { MInf, PSmallestValue, "-inf", APFloat::opOK, APFloat::fcInfinity },
 2664     { MInf, MSmallestValue, "inf", APFloat::opOK, APFloat::fcInfinity },
 2664     { MInf, MSmallestValue, "inf", APFloat::opOK, APFloat::fcInfinity },
 2665     { MInf, PSmallestNormalized, "-inf", APFloat::opOK, APFloat::fcInfinity },
 2665     { MInf, PSmallestNormalized, "-inf", APFloat::opOK, APFloat::fcInfinity },
 2666     { MInf, MSmallestNormalized, "inf", APFloat::opOK, APFloat::fcInfinity },
 2666     { MInf, MSmallestNormalized, "inf", APFloat::opOK, APFloat::fcInfinity },
 2667     { PZero, PInf, "0x0p+0", APFloat::opOK, APFloat::fcZero },
 2667     { PZero, PInf, "0x0p+0", APFloat::opOK, APFloat::fcZero },
 2668     { PZero, MInf, "-0x0p+0", APFloat::opOK, APFloat::fcZero },
 2668     { PZero, MInf, "-0x0p+0", APFloat::opOK, APFloat::fcZero },
 2669     { PZero, PZero, "nan", APFloat::opInvalidOp, APFloat::fcNaN },
 2669     { PZero, PZero, "nan", APFloat::opInvalidOp, APFloat::fcNaN },
 2670     { PZero, MZero, "nan", APFloat::opInvalidOp, APFloat::fcNaN },
 2670     { PZero, MZero, "nan", APFloat::opInvalidOp, APFloat::fcNaN },
 2671     { PZero, QNaN, "nan", APFloat::opOK, APFloat::fcNaN },
 2671     { PZero, QNaN, "nan", APFloat::opOK, APFloat::fcNaN },
 2676     { PZero, PNormalValue, "0x0p+0", APFloat::opOK, APFloat::fcZero },
 2676     { PZero, PNormalValue, "0x0p+0", APFloat::opOK, APFloat::fcZero },
 2677     { PZero, MNormalValue, "-0x0p+0", APFloat::opOK, APFloat::fcZero },
 2677     { PZero, MNormalValue, "-0x0p+0", APFloat::opOK, APFloat::fcZero },
 2678     { PZero, PLargestValue, "0x0p+0", APFloat::opOK, APFloat::fcZero },
 2678     { PZero, PLargestValue, "0x0p+0", APFloat::opOK, APFloat::fcZero },
 2679     { PZero, MLargestValue, "-0x0p+0", APFloat::opOK, APFloat::fcZero },
 2679     { PZero, MLargestValue, "-0x0p+0", APFloat::opOK, APFloat::fcZero },
 2680     { PZero, PSmallestValue, "0x0p+0", APFloat::opOK, APFloat::fcZero },
 2680     { PZero, PSmallestValue, "0x0p+0", APFloat::opOK, APFloat::fcZero },
 2681     { PZero, MSmallestValue, "-0x0p+0", APFloat::opOK, APFloat::fcZero },
 2681     { PZero, MSmallestValue, "-0x0p+0", APFloat::opOK, APFloat::fcZero },
 2682     { PZero, PSmallestNormalized, "0x0p+0", APFloat::opOK, APFloat::fcZero },
 2682     { PZero, PSmallestNormalized, "0x0p+0", APFloat::opOK, APFloat::fcZero },
 2683     { PZero, MSmallestNormalized, "-0x0p+0", APFloat::opOK, APFloat::fcZero },
 2683     { PZero, MSmallestNormalized, "-0x0p+0", APFloat::opOK, APFloat::fcZero },
 2684     { MZero, PInf, "-0x0p+0", APFloat::opOK, APFloat::fcZero },
 2684     { MZero, PInf, "-0x0p+0", APFloat::opOK, APFloat::fcZero },
 2685     { MZero, MInf, "0x0p+0", APFloat::opOK, APFloat::fcZero },
 2685     { MZero, MInf, "0x0p+0", APFloat::opOK, APFloat::fcZero },
 2686     { MZero, PZero, "nan", APFloat::opInvalidOp, APFloat::fcNaN },
 2686     { MZero, PZero, "nan", APFloat::opInvalidOp, APFloat::fcNaN },
 2687     { MZero, MZero, "nan", APFloat::opInvalidOp, APFloat::fcNaN },
 2687     { MZero, MZero, "nan", APFloat::opInvalidOp, APFloat::fcNaN },
 2688     { MZero, QNaN, "nan", APFloat::opOK, APFloat::fcNaN },
 2688     { MZero, QNaN, "nan", APFloat::opOK, APFloat::fcNaN },
 2693     { MZero, PNormalValue, "-0x0p+0", APFloat::opOK, APFloat::fcZero },
 2693     { MZero, PNormalValue, "-0x0p+0", APFloat::opOK, APFloat::fcZero },
 2694     { MZero, MNormalValue, "0x0p+0", APFloat::opOK, APFloat::fcZero },
 2694     { MZero, MNormalValue, "0x0p+0", APFloat::opOK, APFloat::fcZero },
 2695     { MZero, PLargestValue, "-0x0p+0", APFloat::opOK, APFloat::fcZero },
 2695     { MZero, PLargestValue, "-0x0p+0", APFloat::opOK, APFloat::fcZero },
 2696     { MZero, MLargestValue, "0x0p+0", APFloat::opOK, APFloat::fcZero },
 2696     { MZero, MLargestValue, "0x0p+0", APFloat::opOK, APFloat::fcZero },
 2697     { MZero, PSmallestValue, "-0x0p+0", APFloat::opOK, APFloat::fcZero },
 2697     { MZero, PSmallestValue, "-0x0p+0", APFloat::opOK, APFloat::fcZero },
 2698     { MZero, MSmallestValue, "0x0p+0", APFloat::opOK, APFloat::fcZero },
 2698     { MZero, MSmallestValue, "0x0p+0", APFloat::opOK, APFloat::fcZero },
 2699     { MZero, PSmallestNormalized, "-0x0p+0", APFloat::opOK, APFloat::fcZero },
 2699     { MZero, PSmallestNormalized, "-0x0p+0", APFloat::opOK, APFloat::fcZero },
 2700     { MZero, MSmallestNormalized, "0x0p+0", APFloat::opOK, APFloat::fcZero },
 2700     { MZero, MSmallestNormalized, "0x0p+0", APFloat::opOK, APFloat::fcZero },
 2701     { QNaN, PInf, "nan", APFloat::opOK, APFloat::fcNaN },
 2701     { QNaN, PInf, "nan", APFloat::opOK, APFloat::fcNaN },
 2702     { QNaN, MInf, "nan", APFloat::opOK, APFloat::fcNaN },
 2702     { QNaN, MInf, "nan", APFloat::opOK, APFloat::fcNaN },
 2703     { QNaN, PZero, "nan", APFloat::opOK, APFloat::fcNaN },
 2703     { QNaN, PZero, "nan", APFloat::opOK, APFloat::fcNaN },
 2704     { QNaN, MZero, "nan", APFloat::opOK, APFloat::fcNaN },
 2704     { QNaN, MZero, "nan", APFloat::opOK, APFloat::fcNaN },
 2705     { QNaN, QNaN, "nan", APFloat::opOK, APFloat::fcNaN },
 2705     { QNaN, QNaN, "nan", APFloat::opOK, APFloat::fcNaN },
 2710     { QNaN, PNormalValue, "nan", APFloat::opOK, APFloat::fcNaN },
 2710     { QNaN, PNormalValue, "nan", APFloat::opOK, APFloat::fcNaN },
 2711     { QNaN, MNormalValue, "nan", APFloat::opOK, APFloat::fcNaN },
 2711     { QNaN, MNormalValue, "nan", APFloat::opOK, APFloat::fcNaN },
 2712     { QNaN, PLargestValue, "nan", APFloat::opOK, APFloat::fcNaN },
 2712     { QNaN, PLargestValue, "nan", APFloat::opOK, APFloat::fcNaN },
 2713     { QNaN, MLargestValue, "nan", APFloat::opOK, APFloat::fcNaN },
 2713     { QNaN, MLargestValue, "nan", APFloat::opOK, APFloat::fcNaN },
 2714     { QNaN, PSmallestValue, "nan", APFloat::opOK, APFloat::fcNaN },
 2714     { QNaN, PSmallestValue, "nan", APFloat::opOK, APFloat::fcNaN },
 2715     { QNaN, MSmallestValue, "nan", APFloat::opOK, APFloat::fcNaN },
 2715     { QNaN, MSmallestValue, "nan", APFloat::opOK, APFloat::fcNaN },
 2716     { QNaN, PSmallestNormalized, "nan", APFloat::opOK, APFloat::fcNaN },
 2716     { QNaN, PSmallestNormalized, "nan", APFloat::opOK, APFloat::fcNaN },
 2717     { QNaN, MSmallestNormalized, "nan", APFloat::opOK, APFloat::fcNaN },
 2717     { QNaN, MSmallestNormalized, "nan", APFloat::opOK, APFloat::fcNaN },
 2735     { PNormalValue, PInf, "0x0p+0", APFloat::opOK, APFloat::fcZero },
 2735     { PNormalValue, PInf, "0x0p+0", APFloat::opOK, APFloat::fcZero },
 2736     { PNormalValue, MInf, "-0x0p+0", APFloat::opOK, APFloat::fcZero },
 2736     { PNormalValue, MInf, "-0x0p+0", APFloat::opOK, APFloat::fcZero },
 2737     { PNormalValue, PZero, "inf", APFloat::opDivByZero, APFloat::fcInfinity },
 2737     { PNormalValue, PZero, "inf", APFloat::opDivByZero, APFloat::fcInfinity },
 2738     { PNormalValue, MZero, "-inf", APFloat::opDivByZero, APFloat::fcInfinity },
 2738     { PNormalValue, MZero, "-inf", APFloat::opDivByZero, APFloat::fcInfinity },
 2739     { PNormalValue, QNaN, "nan", APFloat::opOK, APFloat::fcNaN },
 2739     { PNormalValue, QNaN, "nan", APFloat::opOK, APFloat::fcNaN },
 2744     { PNormalValue, PNormalValue, "0x1p+0", APFloat::opOK, APFloat::fcNormal },
 2744     { PNormalValue, PNormalValue, "0x1p+0", APFloat::opOK, APFloat::fcNormal },
 2745     { PNormalValue, MNormalValue, "-0x1p+0", APFloat::opOK, APFloat::fcNormal },
 2745     { PNormalValue, MNormalValue, "-0x1p+0", APFloat::opOK, APFloat::fcNormal },
 2746     { PNormalValue, PLargestValue, "0x1p-128", UnderflowStatus, APFloat::fcNormal },
 2747     { PNormalValue, MLargestValue, "-0x1p-128", UnderflowStatus, APFloat::fcNormal },
 2748     { PNormalValue, PSmallestValue, "inf", OverflowStatus, APFloat::fcInfinity },
 2749     { PNormalValue, MSmallestValue, "-inf", OverflowStatus, APFloat::fcInfinity },
 2750     { PNormalValue, PSmallestNormalized, "0x1p+126", APFloat::opOK, APFloat::fcNormal },
 2750     { PNormalValue, PSmallestNormalized, "0x1p+126", APFloat::opOK, APFloat::fcNormal },
 2751     { PNormalValue, MSmallestNormalized, "-0x1p+126", APFloat::opOK, APFloat::fcNormal },
 2751     { PNormalValue, MSmallestNormalized, "-0x1p+126", APFloat::opOK, APFloat::fcNormal },
 2752     { MNormalValue, PInf, "-0x0p+0", APFloat::opOK, APFloat::fcZero },
 2752     { MNormalValue, PInf, "-0x0p+0", APFloat::opOK, APFloat::fcZero },
 2753     { MNormalValue, MInf, "0x0p+0", APFloat::opOK, APFloat::fcZero },
 2753     { MNormalValue, MInf, "0x0p+0", APFloat::opOK, APFloat::fcZero },
 2754     { MNormalValue, PZero, "-inf", APFloat::opDivByZero, APFloat::fcInfinity },
 2754     { MNormalValue, PZero, "-inf", APFloat::opDivByZero, APFloat::fcInfinity },
 2755     { MNormalValue, MZero, "inf", APFloat::opDivByZero, APFloat::fcInfinity },
 2755     { MNormalValue, MZero, "inf", APFloat::opDivByZero, APFloat::fcInfinity },
 2756     { MNormalValue, QNaN, "nan", APFloat::opOK, APFloat::fcNaN },
 2756     { MNormalValue, QNaN, "nan", APFloat::opOK, APFloat::fcNaN },
 2761     { MNormalValue, PNormalValue, "-0x1p+0", APFloat::opOK, APFloat::fcNormal },
 2761     { MNormalValue, PNormalValue, "-0x1p+0", APFloat::opOK, APFloat::fcNormal },
 2762     { MNormalValue, MNormalValue, "0x1p+0", APFloat::opOK, APFloat::fcNormal },
 2762     { MNormalValue, MNormalValue, "0x1p+0", APFloat::opOK, APFloat::fcNormal },
 2763     { MNormalValue, PLargestValue, "-0x1p-128", UnderflowStatus, APFloat::fcNormal },
 2764     { MNormalValue, MLargestValue, "0x1p-128", UnderflowStatus, APFloat::fcNormal },
 2765     { MNormalValue, PSmallestValue, "-inf", OverflowStatus, APFloat::fcInfinity },
 2766     { MNormalValue, MSmallestValue, "inf", OverflowStatus, APFloat::fcInfinity },
 2767     { MNormalValue, PSmallestNormalized, "-0x1p+126", APFloat::opOK, APFloat::fcNormal },
 2767     { MNormalValue, PSmallestNormalized, "-0x1p+126", APFloat::opOK, APFloat::fcNormal },
 2768     { MNormalValue, MSmallestNormalized, "0x1p+126", APFloat::opOK, APFloat::fcNormal },
 2768     { MNormalValue, MSmallestNormalized, "0x1p+126", APFloat::opOK, APFloat::fcNormal },
 2769     { PLargestValue, PInf, "0x0p+0", APFloat::opOK, APFloat::fcZero },
 2769     { PLargestValue, PInf, "0x0p+0", APFloat::opOK, APFloat::fcZero },
 2770     { PLargestValue, MInf, "-0x0p+0", APFloat::opOK, APFloat::fcZero },
 2770     { PLargestValue, MInf, "-0x0p+0", APFloat::opOK, APFloat::fcZero },
 2771     { PLargestValue, PZero, "inf", APFloat::opDivByZero, APFloat::fcInfinity },
 2771     { PLargestValue, PZero, "inf", APFloat::opDivByZero, APFloat::fcInfinity },
 2772     { PLargestValue, MZero, "-inf", APFloat::opDivByZero, APFloat::fcInfinity },
 2772     { PLargestValue, MZero, "-inf", APFloat::opDivByZero, APFloat::fcInfinity },
 2773     { PLargestValue, QNaN, "nan", APFloat::opOK, APFloat::fcNaN },
 2773     { PLargestValue, QNaN, "nan", APFloat::opOK, APFloat::fcNaN },
 2778     { PLargestValue, PNormalValue, "0x1.fffffep+127", APFloat::opOK, APFloat::fcNormal },
 2778     { PLargestValue, PNormalValue, "0x1.fffffep+127", APFloat::opOK, APFloat::fcNormal },
 2779     { PLargestValue, MNormalValue, "-0x1.fffffep+127", APFloat::opOK, APFloat::fcNormal },
 2779     { PLargestValue, MNormalValue, "-0x1.fffffep+127", APFloat::opOK, APFloat::fcNormal },
 2780     { PLargestValue, PLargestValue, "0x1p+0", APFloat::opOK, APFloat::fcNormal },
 2780     { PLargestValue, PLargestValue, "0x1p+0", APFloat::opOK, APFloat::fcNormal },
 2781     { PLargestValue, MLargestValue, "-0x1p+0", APFloat::opOK, APFloat::fcNormal },
 2781     { PLargestValue, MLargestValue, "-0x1p+0", APFloat::opOK, APFloat::fcNormal },
 2782     { PLargestValue, PSmallestValue, "inf", OverflowStatus, APFloat::fcInfinity },
 2783     { PLargestValue, MSmallestValue, "-inf", OverflowStatus, APFloat::fcInfinity },
 2784     { PLargestValue, PSmallestNormalized, "inf", OverflowStatus, APFloat::fcInfinity },
 2785     { PLargestValue, MSmallestNormalized, "-inf", OverflowStatus, APFloat::fcInfinity },
 2786     { MLargestValue, PInf, "-0x0p+0", APFloat::opOK, APFloat::fcZero },
 2786     { MLargestValue, PInf, "-0x0p+0", APFloat::opOK, APFloat::fcZero },
 2787     { MLargestValue, MInf, "0x0p+0", APFloat::opOK, APFloat::fcZero },
 2787     { MLargestValue, MInf, "0x0p+0", APFloat::opOK, APFloat::fcZero },
 2788     { MLargestValue, PZero, "-inf", APFloat::opDivByZero, APFloat::fcInfinity },
 2788     { MLargestValue, PZero, "-inf", APFloat::opDivByZero, APFloat::fcInfinity },
 2789     { MLargestValue, MZero, "inf", APFloat::opDivByZero, APFloat::fcInfinity },
 2789     { MLargestValue, MZero, "inf", APFloat::opDivByZero, APFloat::fcInfinity },
 2790     { MLargestValue, QNaN, "nan", APFloat::opOK, APFloat::fcNaN },
 2790     { MLargestValue, QNaN, "nan", APFloat::opOK, APFloat::fcNaN },
 2795     { MLargestValue, PNormalValue, "-0x1.fffffep+127", APFloat::opOK, APFloat::fcNormal },
 2795     { MLargestValue, PNormalValue, "-0x1.fffffep+127", APFloat::opOK, APFloat::fcNormal },
 2796     { MLargestValue, MNormalValue, "0x1.fffffep+127", APFloat::opOK, APFloat::fcNormal },
 2796     { MLargestValue, MNormalValue, "0x1.fffffep+127", APFloat::opOK, APFloat::fcNormal },
 2797     { MLargestValue, PLargestValue, "-0x1p+0", APFloat::opOK, APFloat::fcNormal },
 2797     { MLargestValue, PLargestValue, "-0x1p+0", APFloat::opOK, APFloat::fcNormal },
 2798     { MLargestValue, MLargestValue, "0x1p+0", APFloat::opOK, APFloat::fcNormal },
 2798     { MLargestValue, MLargestValue, "0x1p+0", APFloat::opOK, APFloat::fcNormal },
 2799     { MLargestValue, PSmallestValue, "-inf", OverflowStatus, APFloat::fcInfinity },
 2800     { MLargestValue, MSmallestValue, "inf", OverflowStatus, APFloat::fcInfinity },
 2801     { MLargestValue, PSmallestNormalized, "-inf", OverflowStatus, APFloat::fcInfinity },
 2802     { MLargestValue, MSmallestNormalized, "inf", OverflowStatus, APFloat::fcInfinity },
 2803     { PSmallestValue, PInf, "0x0p+0", APFloat::opOK, APFloat::fcZero },
 2803     { PSmallestValue, PInf, "0x0p+0", APFloat::opOK, APFloat::fcZero },
 2804     { PSmallestValue, MInf, "-0x0p+0", APFloat::opOK, APFloat::fcZero },
 2804     { PSmallestValue, MInf, "-0x0p+0", APFloat::opOK, APFloat::fcZero },
 2805     { PSmallestValue, PZero, "inf", APFloat::opDivByZero, APFloat::fcInfinity },
 2805     { PSmallestValue, PZero, "inf", APFloat::opDivByZero, APFloat::fcInfinity },
 2806     { PSmallestValue, MZero, "-inf", APFloat::opDivByZero, APFloat::fcInfinity },
 2806     { PSmallestValue, MZero, "-inf", APFloat::opDivByZero, APFloat::fcInfinity },
 2807     { PSmallestValue, QNaN, "nan", APFloat::opOK, APFloat::fcNaN },
 2807     { PSmallestValue, QNaN, "nan", APFloat::opOK, APFloat::fcNaN },
 2812     { PSmallestValue, PNormalValue, "0x1p-149", APFloat::opOK, APFloat::fcNormal },
 2812     { PSmallestValue, PNormalValue, "0x1p-149", APFloat::opOK, APFloat::fcNormal },
 2813     { PSmallestValue, MNormalValue, "-0x1p-149", APFloat::opOK, APFloat::fcNormal },
 2813     { PSmallestValue, MNormalValue, "-0x1p-149", APFloat::opOK, APFloat::fcNormal },
 2814     { PSmallestValue, PLargestValue, "0x0p+0", UnderflowStatus, APFloat::fcZero },
 2815     { PSmallestValue, MLargestValue, "-0x0p+0", UnderflowStatus, APFloat::fcZero },
 2816     { PSmallestValue, PSmallestValue, "0x1p+0", APFloat::opOK, APFloat::fcNormal },
 2816     { PSmallestValue, PSmallestValue, "0x1p+0", APFloat::opOK, APFloat::fcNormal },
 2817     { PSmallestValue, MSmallestValue, "-0x1p+0", APFloat::opOK, APFloat::fcNormal },
 2817     { PSmallestValue, MSmallestValue, "-0x1p+0", APFloat::opOK, APFloat::fcNormal },
 2818     { PSmallestValue, PSmallestNormalized, "0x1p-23", APFloat::opOK, APFloat::fcNormal },
 2818     { PSmallestValue, PSmallestNormalized, "0x1p-23", APFloat::opOK, APFloat::fcNormal },
 2819     { PSmallestValue, MSmallestNormalized, "-0x1p-23", APFloat::opOK, APFloat::fcNormal },
 2819     { PSmallestValue, MSmallestNormalized, "-0x1p-23", APFloat::opOK, APFloat::fcNormal },
 2820     { MSmallestValue, PInf, "-0x0p+0", APFloat::opOK, APFloat::fcZero },
 2820     { MSmallestValue, PInf, "-0x0p+0", APFloat::opOK, APFloat::fcZero },
 2821     { MSmallestValue, MInf, "0x0p+0", APFloat::opOK, APFloat::fcZero },
 2821     { MSmallestValue, MInf, "0x0p+0", APFloat::opOK, APFloat::fcZero },
 2822     { MSmallestValue, PZero, "-inf", APFloat::opDivByZero, APFloat::fcInfinity },
 2822     { MSmallestValue, PZero, "-inf", APFloat::opDivByZero, APFloat::fcInfinity },
 2823     { MSmallestValue, MZero, "inf", APFloat::opDivByZero, APFloat::fcInfinity },
 2823     { MSmallestValue, MZero, "inf", APFloat::opDivByZero, APFloat::fcInfinity },
 2824     { MSmallestValue, QNaN, "nan", APFloat::opOK, APFloat::fcNaN },
 2824     { MSmallestValue, QNaN, "nan", APFloat::opOK, APFloat::fcNaN },
 2829     { MSmallestValue, PNormalValue, "-0x1p-149", APFloat::opOK, APFloat::fcNormal },
 2829     { MSmallestValue, PNormalValue, "-0x1p-149", APFloat::opOK, APFloat::fcNormal },
 2830     { MSmallestValue, MNormalValue, "0x1p-149", APFloat::opOK, APFloat::fcNormal },
 2830     { MSmallestValue, MNormalValue, "0x1p-149", APFloat::opOK, APFloat::fcNormal },
 2831     { MSmallestValue, PLargestValue, "-0x0p+0", UnderflowStatus, APFloat::fcZero },
 2832     { MSmallestValue, MLargestValue, "0x0p+0", UnderflowStatus, APFloat::fcZero },
 2833     { MSmallestValue, PSmallestValue, "-0x1p+0", APFloat::opOK, APFloat::fcNormal },
 2833     { MSmallestValue, PSmallestValue, "-0x1p+0", APFloat::opOK, APFloat::fcNormal },
 2834     { MSmallestValue, MSmallestValue, "0x1p+0", APFloat::opOK, APFloat::fcNormal },
 2834     { MSmallestValue, MSmallestValue, "0x1p+0", APFloat::opOK, APFloat::fcNormal },
 2835     { MSmallestValue, PSmallestNormalized, "-0x1p-23", APFloat::opOK, APFloat::fcNormal },
 2835     { MSmallestValue, PSmallestNormalized, "-0x1p-23", APFloat::opOK, APFloat::fcNormal },
 2836     { MSmallestValue, MSmallestNormalized, "0x1p-23", APFloat::opOK, APFloat::fcNormal },
 2836     { MSmallestValue, MSmallestNormalized, "0x1p-23", APFloat::opOK, APFloat::fcNormal },
 2837     { PSmallestNormalized, PInf, "0x0p+0", APFloat::opOK, APFloat::fcZero },
 2837     { PSmallestNormalized, PInf, "0x0p+0", APFloat::opOK, APFloat::fcZero },
 2838     { PSmallestNormalized, MInf, "-0x0p+0", APFloat::opOK, APFloat::fcZero },
 2838     { PSmallestNormalized, MInf, "-0x0p+0", APFloat::opOK, APFloat::fcZero },
 2839     { PSmallestNormalized, PZero, "inf", APFloat::opDivByZero, APFloat::fcInfinity },
 2839     { PSmallestNormalized, PZero, "inf", APFloat::opDivByZero, APFloat::fcInfinity },
 2840     { PSmallestNormalized, MZero, "-inf", APFloat::opDivByZero, APFloat::fcInfinity },
 2840     { PSmallestNormalized, MZero, "-inf", APFloat::opDivByZero, APFloat::fcInfinity },
 2841     { PSmallestNormalized, QNaN, "nan", APFloat::opOK, APFloat::fcNaN },
 2841     { PSmallestNormalized, QNaN, "nan", APFloat::opOK, APFloat::fcNaN },
 2846     { PSmallestNormalized, PNormalValue, "0x1p-126", APFloat::opOK, APFloat::fcNormal },
 2846     { PSmallestNormalized, PNormalValue, "0x1p-126", APFloat::opOK, APFloat::fcNormal },
 2847     { PSmallestNormalized, MNormalValue, "-0x1p-126", APFloat::opOK, APFloat::fcNormal },
 2847     { PSmallestNormalized, MNormalValue, "-0x1p-126", APFloat::opOK, APFloat::fcNormal },
 2848     { PSmallestNormalized, PLargestValue, "0x0p+0", UnderflowStatus, APFloat::fcZero },
 2849     { PSmallestNormalized, MLargestValue, "-0x0p+0", UnderflowStatus, APFloat::fcZero },
 2850     { PSmallestNormalized, PSmallestValue, "0x1p+23", APFloat::opOK, APFloat::fcNormal },
 2850     { PSmallestNormalized, PSmallestValue, "0x1p+23", APFloat::opOK, APFloat::fcNormal },
 2851     { PSmallestNormalized, MSmallestValue, "-0x1p+23", APFloat::opOK, APFloat::fcNormal },
 2851     { PSmallestNormalized, MSmallestValue, "-0x1p+23", APFloat::opOK, APFloat::fcNormal },
 2852     { PSmallestNormalized, PSmallestNormalized, "0x1p+0", APFloat::opOK, APFloat::fcNormal },
 2852     { PSmallestNormalized, PSmallestNormalized, "0x1p+0", APFloat::opOK, APFloat::fcNormal },
 2853     { PSmallestNormalized, MSmallestNormalized, "-0x1p+0", APFloat::opOK, APFloat::fcNormal },
 2853     { PSmallestNormalized, MSmallestNormalized, "-0x1p+0", APFloat::opOK, APFloat::fcNormal },
 2854     { MSmallestNormalized, PInf, "-0x0p+0", APFloat::opOK, APFloat::fcZero },
 2854     { MSmallestNormalized, PInf, "-0x0p+0", APFloat::opOK, APFloat::fcZero },
 2855     { MSmallestNormalized, MInf, "0x0p+0", APFloat::opOK, APFloat::fcZero },
 2855     { MSmallestNormalized, MInf, "0x0p+0", APFloat::opOK, APFloat::fcZero },
 2856     { MSmallestNormalized, PZero, "-inf", APFloat::opDivByZero, APFloat::fcInfinity },
 2856     { MSmallestNormalized, PZero, "-inf", APFloat::opDivByZero, APFloat::fcInfinity },
 2857     { MSmallestNormalized, MZero, "inf", APFloat::opDivByZero, APFloat::fcInfinity },
 2857     { MSmallestNormalized, MZero, "inf", APFloat::opDivByZero, APFloat::fcInfinity },
 2858     { MSmallestNormalized, QNaN, "nan", APFloat::opOK, APFloat::fcNaN },
 2858     { MSmallestNormalized, QNaN, "nan", APFloat::opOK, APFloat::fcNaN },
 2863     { MSmallestNormalized, PNormalValue, "-0x1p-126", APFloat::opOK, APFloat::fcNormal },
 2863     { MSmallestNormalized, PNormalValue, "-0x1p-126", APFloat::opOK, APFloat::fcNormal },
 2864     { MSmallestNormalized, MNormalValue, "0x1p-126", APFloat::opOK, APFloat::fcNormal },
 2864     { MSmallestNormalized, MNormalValue, "0x1p-126", APFloat::opOK, APFloat::fcNormal },
 2865     { MSmallestNormalized, PLargestValue, "-0x0p+0", UnderflowStatus, APFloat::fcZero },
 2866     { MSmallestNormalized, MLargestValue, "0x0p+0", UnderflowStatus, APFloat::fcZero },
 2867     { MSmallestNormalized, PSmallestValue, "-0x1p+23", APFloat::opOK, APFloat::fcNormal },
 2867     { MSmallestNormalized, PSmallestValue, "-0x1p+23", APFloat::opOK, APFloat::fcNormal },
 2868     { MSmallestNormalized, MSmallestValue, "0x1p+23", APFloat::opOK, APFloat::fcNormal },
 2868     { MSmallestNormalized, MSmallestValue, "0x1p+23", APFloat::opOK, APFloat::fcNormal },
 2869     { MSmallestNormalized, PSmallestNormalized, "-0x1p+0", APFloat::opOK, APFloat::fcNormal },
 2869     { MSmallestNormalized, PSmallestNormalized, "-0x1p+0", APFloat::opOK, APFloat::fcNormal },
 2870     { MSmallestNormalized, MSmallestNormalized, "0x1p+0", APFloat::opOK, APFloat::fcNormal },
 2870     { MSmallestNormalized, MSmallestNormalized, "0x1p+0", APFloat::opOK, APFloat::fcNormal },
 2874     APFloat x(SpecialCaseTests[i].x);
 2875     APFloat y(SpecialCaseTests[i].y);
 2876     APFloat::opStatus status = x.divide(y, APFloat::rmNearestTiesToEven);
 2876     APFloat::opStatus status = x.divide(y, APFloat::rmNearestTiesToEven);
 2878     APFloat result(APFloat::IEEEsingle(), SpecialCaseTests[i].result);
 2878     APFloat result(APFloat::IEEEsingle(), SpecialCaseTests[i].result);
 2888   APFloat One = APFloat(APFloat::IEEEsingle(), "0x1p+0");
 2888   APFloat One = APFloat(APFloat::IEEEsingle(), "0x1p+0");
 2889   APFloat Two = APFloat(APFloat::IEEEsingle(), "0x2p+0");
 2889   APFloat Two = APFloat(APFloat::IEEEsingle(), "0x2p+0");
 2897   APFloat PInf = APFloat::getInf(APFloat::IEEEsingle(), false);
 2897   APFloat PInf = APFloat::getInf(APFloat::IEEEsingle(), false);
 2897   APFloat PInf = APFloat::getInf(APFloat::IEEEsingle(), false);
 2898   APFloat MInf = APFloat::getInf(APFloat::IEEEsingle(), true);
 2898   APFloat MInf = APFloat::getInf(APFloat::IEEEsingle(), true);
 2898   APFloat MInf = APFloat::getInf(APFloat::IEEEsingle(), true);
 2899   APFloat PZero = APFloat::getZero(APFloat::IEEEsingle(), false);
 2899   APFloat PZero = APFloat::getZero(APFloat::IEEEsingle(), false);
 2899   APFloat PZero = APFloat::getZero(APFloat::IEEEsingle(), false);
 2900   APFloat MZero = APFloat::getZero(APFloat::IEEEsingle(), true);
 2900   APFloat MZero = APFloat::getZero(APFloat::IEEEsingle(), true);
 2900   APFloat MZero = APFloat::getZero(APFloat::IEEEsingle(), true);
 2901   APFloat PQNaN = APFloat::getNaN(APFloat::IEEEsingle(), false);
 2901   APFloat PQNaN = APFloat::getNaN(APFloat::IEEEsingle(), false);
 2901   APFloat PQNaN = APFloat::getNaN(APFloat::IEEEsingle(), false);
 2902   APFloat MQNaN = APFloat::getNaN(APFloat::IEEEsingle(), true);
 2902   APFloat MQNaN = APFloat::getNaN(APFloat::IEEEsingle(), true);
 2902   APFloat MQNaN = APFloat::getNaN(APFloat::IEEEsingle(), true);
 2903   APFloat PSNaN = APFloat::getSNaN(APFloat::IEEEsingle(), false);
 2903   APFloat PSNaN = APFloat::getSNaN(APFloat::IEEEsingle(), false);
 2903   APFloat PSNaN = APFloat::getSNaN(APFloat::IEEEsingle(), false);
 2904   APFloat MSNaN = APFloat::getSNaN(APFloat::IEEEsingle(), true);
 2904   APFloat MSNaN = APFloat::getSNaN(APFloat::IEEEsingle(), true);
 2904   APFloat MSNaN = APFloat::getSNaN(APFloat::IEEEsingle(), true);
 2905   APFloat PNormalValue = APFloat(APFloat::IEEEsingle(), "0x1p+0");
 2905   APFloat PNormalValue = APFloat(APFloat::IEEEsingle(), "0x1p+0");
 2906   APFloat MNormalValue = APFloat(APFloat::IEEEsingle(), "-0x1p+0");
 2906   APFloat MNormalValue = APFloat(APFloat::IEEEsingle(), "-0x1p+0");
 2907   APFloat PLargestValue = APFloat::getLargest(APFloat::IEEEsingle(), false);
 2907   APFloat PLargestValue = APFloat::getLargest(APFloat::IEEEsingle(), false);
 2907   APFloat PLargestValue = APFloat::getLargest(APFloat::IEEEsingle(), false);
 2908   APFloat MLargestValue = APFloat::getLargest(APFloat::IEEEsingle(), true);
 2908   APFloat MLargestValue = APFloat::getLargest(APFloat::IEEEsingle(), true);
 2908   APFloat MLargestValue = APFloat::getLargest(APFloat::IEEEsingle(), true);
 2909   APFloat PSmallestValue = APFloat::getSmallest(APFloat::IEEEsingle(), false);
 2909   APFloat PSmallestValue = APFloat::getSmallest(APFloat::IEEEsingle(), false);
 2909   APFloat PSmallestValue = APFloat::getSmallest(APFloat::IEEEsingle(), false);
 2910   APFloat MSmallestValue = APFloat::getSmallest(APFloat::IEEEsingle(), true);
 2910   APFloat MSmallestValue = APFloat::getSmallest(APFloat::IEEEsingle(), true);
 2910   APFloat MSmallestValue = APFloat::getSmallest(APFloat::IEEEsingle(), true);
 2911   APFloat PSmallestNormalized =
 2912     APFloat::getSmallestNormalized(APFloat::IEEEsingle(), false);
 2912     APFloat::getSmallestNormalized(APFloat::IEEEsingle(), false);
 2913   APFloat MSmallestNormalized =
 2914     APFloat::getSmallestNormalized(APFloat::IEEEsingle(), true);
 2914     APFloat::getSmallestNormalized(APFloat::IEEEsingle(), true);
 2935   APFloat One = APFloat(APFloat::IEEEsingle(), "1.0");
 2935   APFloat One = APFloat(APFloat::IEEEsingle(), "1.0");
 2936   APFloat NegOne = APFloat(APFloat::IEEEsingle(), "-1.0");
 2936   APFloat NegOne = APFloat(APFloat::IEEEsingle(), "-1.0");
 2937   APFloat Zero = APFloat::getZero(APFloat::IEEEsingle(), false);
 2937   APFloat Zero = APFloat::getZero(APFloat::IEEEsingle(), false);
 2937   APFloat Zero = APFloat::getZero(APFloat::IEEEsingle(), false);
 2938   APFloat NegZero = APFloat::getZero(APFloat::IEEEsingle(), true);
 2938   APFloat NegZero = APFloat::getZero(APFloat::IEEEsingle(), true);
 2938   APFloat NegZero = APFloat::getZero(APFloat::IEEEsingle(), true);
 2939   APFloat Inf = APFloat::getInf(APFloat::IEEEsingle(), false);
 2939   APFloat Inf = APFloat::getInf(APFloat::IEEEsingle(), false);
 2939   APFloat Inf = APFloat::getInf(APFloat::IEEEsingle(), false);
 2940   APFloat NegInf = APFloat::getInf(APFloat::IEEEsingle(), true);
 2940   APFloat NegInf = APFloat::getInf(APFloat::IEEEsingle(), true);
 2940   APFloat NegInf = APFloat::getInf(APFloat::IEEEsingle(), true);
 2941   APFloat QNaN = APFloat::getNaN(APFloat::IEEEsingle(), false);
 2941   APFloat QNaN = APFloat::getNaN(APFloat::IEEEsingle(), false);
 2941   APFloat QNaN = APFloat::getNaN(APFloat::IEEEsingle(), false);
 2942   APFloat NegQNaN = APFloat::getNaN(APFloat::IEEEsingle(), true);
 2942   APFloat NegQNaN = APFloat::getNaN(APFloat::IEEEsingle(), true);
 2942   APFloat NegQNaN = APFloat::getNaN(APFloat::IEEEsingle(), true);
 3001   const APFloat::roundingMode RM = APFloat::rmNearestTiesToEven;
 3001   const APFloat::roundingMode RM = APFloat::rmNearestTiesToEven;
 3012   APFloat PInf = APFloat::getInf(APFloat::IEEEsingle(), false);
 3012   APFloat PInf = APFloat::getInf(APFloat::IEEEsingle(), false);
 3012   APFloat PInf = APFloat::getInf(APFloat::IEEEsingle(), false);
 3013   APFloat MInf = APFloat::getInf(APFloat::IEEEsingle(), true);
 3013   APFloat MInf = APFloat::getInf(APFloat::IEEEsingle(), true);
 3013   APFloat MInf = APFloat::getInf(APFloat::IEEEsingle(), true);
 3014   APFloat PZero = APFloat::getZero(APFloat::IEEEsingle(), false);
 3014   APFloat PZero = APFloat::getZero(APFloat::IEEEsingle(), false);
 3014   APFloat PZero = APFloat::getZero(APFloat::IEEEsingle(), false);
 3015   APFloat MZero = APFloat::getZero(APFloat::IEEEsingle(), true);
 3015   APFloat MZero = APFloat::getZero(APFloat::IEEEsingle(), true);
 3015   APFloat MZero = APFloat::getZero(APFloat::IEEEsingle(), true);
 3016   APFloat QPNaN = APFloat::getNaN(APFloat::IEEEsingle(), false);
 3016   APFloat QPNaN = APFloat::getNaN(APFloat::IEEEsingle(), false);
 3016   APFloat QPNaN = APFloat::getNaN(APFloat::IEEEsingle(), false);
 3017   APFloat QMNaN = APFloat::getNaN(APFloat::IEEEsingle(), true);
 3017   APFloat QMNaN = APFloat::getNaN(APFloat::IEEEsingle(), true);
 3017   APFloat QMNaN = APFloat::getNaN(APFloat::IEEEsingle(), true);
 3018   APFloat SNaN = APFloat::getSNaN(APFloat::IEEEsingle(), false);
 3018   APFloat SNaN = APFloat::getSNaN(APFloat::IEEEsingle(), false);
 3018   APFloat SNaN = APFloat::getSNaN(APFloat::IEEEsingle(), false);
 3028   APFloat ScalbnSNaN = scalbn(SNaN, 1, RM);
 3037   APFloat SNaNWithPayload = APFloat::getSNaN(APFloat::IEEEdouble(), false,
 3037   APFloat SNaNWithPayload = APFloat::getSNaN(APFloat::IEEEdouble(), false,
 3037   APFloat SNaNWithPayload = APFloat::getSNaN(APFloat::IEEEdouble(), false,
 3039   APFloat QuietPayload = scalbn(SNaNWithPayload, 1, RM);
 3059   APFloat SmallestF64 = APFloat::getSmallest(APFloat::IEEEdouble(), false);
 3059   APFloat SmallestF64 = APFloat::getSmallest(APFloat::IEEEdouble(), false);
 3059   APFloat SmallestF64 = APFloat::getSmallest(APFloat::IEEEdouble(), false);
 3060   APFloat NegSmallestF64 = APFloat::getSmallest(APFloat::IEEEdouble(), true);
 3060   APFloat NegSmallestF64 = APFloat::getSmallest(APFloat::IEEEdouble(), true);
 3060   APFloat NegSmallestF64 = APFloat::getSmallest(APFloat::IEEEdouble(), true);
 3062   APFloat LargestF64 = APFloat::getLargest(APFloat::IEEEdouble(), false);
 3062   APFloat LargestF64 = APFloat::getLargest(APFloat::IEEEdouble(), false);
 3062   APFloat LargestF64 = APFloat::getLargest(APFloat::IEEEdouble(), false);
 3063   APFloat NegLargestF64 = APFloat::getLargest(APFloat::IEEEdouble(), true);
 3063   APFloat NegLargestF64 = APFloat::getLargest(APFloat::IEEEdouble(), true);
 3063   APFloat NegLargestF64 = APFloat::getLargest(APFloat::IEEEdouble(), true);
 3065   APFloat SmallestNormalizedF64
 3066     = APFloat::getSmallestNormalized(APFloat::IEEEdouble(), false);
 3066     = APFloat::getSmallestNormalized(APFloat::IEEEdouble(), false);
 3067   APFloat NegSmallestNormalizedF64
 3068     = APFloat::getSmallestNormalized(APFloat::IEEEdouble(), true);
 3068     = APFloat::getSmallestNormalized(APFloat::IEEEdouble(), true);
 3070   APFloat LargestDenormalF64(APFloat::IEEEdouble(), "0x1.ffffffffffffep-1023");
 3070   APFloat LargestDenormalF64(APFloat::IEEEdouble(), "0x1.ffffffffffffep-1023");
 3071   APFloat NegLargestDenormalF64(APFloat::IEEEdouble(), "-0x1.ffffffffffffep-1023");
 3071   APFloat NegLargestDenormalF64(APFloat::IEEEdouble(), "-0x1.ffffffffffffep-1023");
 3126   APFloat RandomDenormalF64(APFloat::IEEEdouble(), "0x1.c60f120d9f87cp+51");
 3126   APFloat RandomDenormalF64(APFloat::IEEEdouble(), "0x1.c60f120d9f87cp+51");
 3171   const APFloat::roundingMode RM = APFloat::rmNearestTiesToEven;
 3171   const APFloat::roundingMode RM = APFloat::rmNearestTiesToEven;
 3173   APFloat PZero = APFloat::getZero(APFloat::IEEEdouble(), false);
 3173   APFloat PZero = APFloat::getZero(APFloat::IEEEdouble(), false);
 3173   APFloat PZero = APFloat::getZero(APFloat::IEEEdouble(), false);
 3174   APFloat MZero = APFloat::getZero(APFloat::IEEEdouble(), true);
 3174   APFloat MZero = APFloat::getZero(APFloat::IEEEdouble(), true);
 3174   APFloat MZero = APFloat::getZero(APFloat::IEEEdouble(), true);
 3175   APFloat One(1.0);
 3176   APFloat MOne(-1.0);
 3177   APFloat Two(2.0);
 3178   APFloat MTwo(-2.0);
 3180   APFloat LargestDenormal(APFloat::IEEEdouble(), "0x1.ffffffffffffep-1023");
 3180   APFloat LargestDenormal(APFloat::IEEEdouble(), "0x1.ffffffffffffep-1023");
 3181   APFloat NegLargestDenormal(APFloat::IEEEdouble(), "-0x1.ffffffffffffep-1023");
 3181   APFloat NegLargestDenormal(APFloat::IEEEdouble(), "-0x1.ffffffffffffep-1023");
 3183   APFloat Smallest = APFloat::getSmallest(APFloat::IEEEdouble(), false);
 3183   APFloat Smallest = APFloat::getSmallest(APFloat::IEEEdouble(), false);
 3183   APFloat Smallest = APFloat::getSmallest(APFloat::IEEEdouble(), false);
 3184   APFloat NegSmallest = APFloat::getSmallest(APFloat::IEEEdouble(), true);
 3184   APFloat NegSmallest = APFloat::getSmallest(APFloat::IEEEdouble(), true);
 3184   APFloat NegSmallest = APFloat::getSmallest(APFloat::IEEEdouble(), true);
 3186   APFloat Largest = APFloat::getLargest(APFloat::IEEEdouble(), false);
 3186   APFloat Largest = APFloat::getLargest(APFloat::IEEEdouble(), false);
 3186   APFloat Largest = APFloat::getLargest(APFloat::IEEEdouble(), false);
 3187   APFloat NegLargest = APFloat::getLargest(APFloat::IEEEdouble(), true);
 3187   APFloat NegLargest = APFloat::getLargest(APFloat::IEEEdouble(), true);
 3187   APFloat NegLargest = APFloat::getLargest(APFloat::IEEEdouble(), true);
 3189   APFloat PInf = APFloat::getInf(APFloat::IEEEdouble(), false);
 3189   APFloat PInf = APFloat::getInf(APFloat::IEEEdouble(), false);
 3189   APFloat PInf = APFloat::getInf(APFloat::IEEEdouble(), false);
 3190   APFloat MInf = APFloat::getInf(APFloat::IEEEdouble(), true);
 3190   APFloat MInf = APFloat::getInf(APFloat::IEEEdouble(), true);
 3190   APFloat MInf = APFloat::getInf(APFloat::IEEEdouble(), true);
 3192   APFloat QPNaN = APFloat::getNaN(APFloat::IEEEdouble(), false);
 3192   APFloat QPNaN = APFloat::getNaN(APFloat::IEEEdouble(), false);
 3192   APFloat QPNaN = APFloat::getNaN(APFloat::IEEEdouble(), false);
 3193   APFloat QMNaN = APFloat::getNaN(APFloat::IEEEdouble(), true);
 3193   APFloat QMNaN = APFloat::getNaN(APFloat::IEEEdouble(), true);
 3193   APFloat QMNaN = APFloat::getNaN(APFloat::IEEEdouble(), true);
 3194   APFloat SNaN = APFloat::getSNaN(APFloat::IEEEdouble(), false);
 3194   APFloat SNaN = APFloat::getSNaN(APFloat::IEEEdouble(), false);
 3194   APFloat SNaN = APFloat::getSNaN(APFloat::IEEEdouble(), false);
 3202   APFloat SNaNWithPayload = APFloat::getSNaN(APFloat::IEEEdouble(), false,
 3202   APFloat SNaNWithPayload = APFloat::getSNaN(APFloat::IEEEdouble(), false,
 3202   APFloat SNaNWithPayload = APFloat::getSNaN(APFloat::IEEEdouble(), false,
 3205   APFloat SmallestNormalized
 3206     = APFloat::getSmallestNormalized(APFloat::IEEEdouble(), false);
 3206     = APFloat::getSmallestNormalized(APFloat::IEEEdouble(), false);
 3207   APFloat NegSmallestNormalized
 3208     = APFloat::getSmallestNormalized(APFloat::IEEEdouble(), true);
 3208     = APFloat::getSmallestNormalized(APFloat::IEEEdouble(), true);
 3211   APFloat Frac(APFloat::IEEEdouble());
 3211   APFloat Frac(APFloat::IEEEdouble());
 3283   Frac = frexp(APFloat(APFloat::IEEEdouble(), "0x0.ffffp-1"), Exp, RM);
 3287   Frac = frexp(APFloat(APFloat::IEEEdouble(), "0x1p-51"), Exp, RM);
 3291   Frac = frexp(APFloat(APFloat::IEEEdouble(), "0x1.c60f120d9f87cp+51"), Exp, RM);
 3298     APFloat f1(APFloat::IEEEdouble(), "1.5");
 3298     APFloat f1(APFloat::IEEEdouble(), "1.5");
 3299     APFloat f2(APFloat::IEEEdouble(), "1.0");
 3299     APFloat f2(APFloat::IEEEdouble(), "1.0");
 3300     APFloat expected(APFloat::IEEEdouble(), "0.5");
 3300     APFloat expected(APFloat::IEEEdouble(), "0.5");
 3305     APFloat f1(APFloat::IEEEdouble(), "0.5");
 3305     APFloat f1(APFloat::IEEEdouble(), "0.5");
 3306     APFloat f2(APFloat::IEEEdouble(), "1.0");
 3306     APFloat f2(APFloat::IEEEdouble(), "1.0");
 3307     APFloat expected(APFloat::IEEEdouble(), "0.5");
 3307     APFloat expected(APFloat::IEEEdouble(), "0.5");
 3312     APFloat f1(APFloat::IEEEdouble(), "0x1.3333333333333p-2"); // 0.3
 3312     APFloat f1(APFloat::IEEEdouble(), "0x1.3333333333333p-2"); // 0.3
 3313     APFloat f2(APFloat::IEEEdouble(), "0x1.47ae147ae147bp-7"); // 0.01
 3313     APFloat f2(APFloat::IEEEdouble(), "0x1.47ae147ae147bp-7"); // 0.01
 3314     APFloat expected(APFloat::IEEEdouble(),
 3314     APFloat expected(APFloat::IEEEdouble(),
 3320     APFloat f1(APFloat::IEEEdouble(), "0x1p64"); // 1.8446744073709552e19
 3320     APFloat f1(APFloat::IEEEdouble(), "0x1p64"); // 1.8446744073709552e19
 3321     APFloat f2(APFloat::IEEEdouble(), "1.5");
 3321     APFloat f2(APFloat::IEEEdouble(), "1.5");
 3322     APFloat expected(APFloat::IEEEdouble(), "1.0");
 3322     APFloat expected(APFloat::IEEEdouble(), "1.0");
 3327     APFloat f1(APFloat::IEEEdouble(), "0x1p1000");
 3327     APFloat f1(APFloat::IEEEdouble(), "0x1p1000");
 3328     APFloat f2(APFloat::IEEEdouble(), "0x1p-1000");
 3328     APFloat f2(APFloat::IEEEdouble(), "0x1p-1000");
 3329     APFloat expected(APFloat::IEEEdouble(), "0.0");
 3329     APFloat expected(APFloat::IEEEdouble(), "0.0");
 3334     APFloat f1(APFloat::IEEEdouble(), "0.0");
 3334     APFloat f1(APFloat::IEEEdouble(), "0.0");
 3335     APFloat f2(APFloat::IEEEdouble(), "1.0");
 3335     APFloat f2(APFloat::IEEEdouble(), "1.0");
 3336     APFloat expected(APFloat::IEEEdouble(), "0.0");
 3336     APFloat expected(APFloat::IEEEdouble(), "0.0");
 3341     APFloat f1(APFloat::IEEEdouble(), "1.0");
 3341     APFloat f1(APFloat::IEEEdouble(), "1.0");
 3342     APFloat f2(APFloat::IEEEdouble(), "0.0");
 3342     APFloat f2(APFloat::IEEEdouble(), "0.0");
 3347     APFloat f1(APFloat::IEEEdouble(), "0.0");
 3347     APFloat f1(APFloat::IEEEdouble(), "0.0");
 3348     APFloat f2(APFloat::IEEEdouble(), "0.0");
 3348     APFloat f2(APFloat::IEEEdouble(), "0.0");
 3353     APFloat f1 = APFloat::getInf(APFloat::IEEEdouble(), false);
 3353     APFloat f1 = APFloat::getInf(APFloat::IEEEdouble(), false);
 3353     APFloat f1 = APFloat::getInf(APFloat::IEEEdouble(), false);
 3354     APFloat f2(APFloat::IEEEdouble(), "1.0");
 3354     APFloat f2(APFloat::IEEEdouble(), "1.0");
 3359     APFloat f1(APFloat::IEEEdouble(), "-4.0");
 3359     APFloat f1(APFloat::IEEEdouble(), "-4.0");
 3360     APFloat f2(APFloat::IEEEdouble(), "-2.0");
 3360     APFloat f2(APFloat::IEEEdouble(), "-2.0");
 3361     APFloat expected(APFloat::IEEEdouble(), "-0.0");
 3361     APFloat expected(APFloat::IEEEdouble(), "-0.0");
 3366     APFloat f1(APFloat::IEEEdouble(), "-4.0");
 3366     APFloat f1(APFloat::IEEEdouble(), "-4.0");
 3367     APFloat f2(APFloat::IEEEdouble(), "2.0");
 3367     APFloat f2(APFloat::IEEEdouble(), "2.0");
 3368     APFloat expected(APFloat::IEEEdouble(), "-0.0");
 3368     APFloat expected(APFloat::IEEEdouble(), "-0.0");
 3376                               APFloat::fltCategory, APFloat::roundingMode>;
 3376                               APFloat::fltCategory, APFloat::roundingMode>;
 3380                       APFloat::fcZero, APFloat::rmNearestTiesToEven),
 3380                       APFloat::fcZero, APFloat::rmNearestTiesToEven),
 3383                       0x7948000000000000ull, 0ull, APFloat::fcInfinity,
 3384                       APFloat::rmNearestTiesToEven),
 3391                       APFloat::fcNormal, APFloat::rmNearestTiesToEven),
 3391                       APFloat::fcNormal, APFloat::rmNearestTiesToEven),
 3395                       APFloat::fcInfinity, APFloat::rmNearestTiesToEven),
 3395                       APFloat::fcInfinity, APFloat::rmNearestTiesToEven),
 3398                       APFloat::fcNaN, APFloat::rmNearestTiesToEven),
 3398                       APFloat::fcNaN, APFloat::rmNearestTiesToEven),
 3403     APFloat::fltCategory Expected;
 3404     APFloat::roundingMode RM;
 3408       APFloat A1(APFloat::PPCDoubleDouble(), APInt(128, 2, Op1));
 3408       APFloat A1(APFloat::PPCDoubleDouble(), APInt(128, 2, Op1));
 3409       APFloat A2(APFloat::PPCDoubleDouble(), APInt(128, 2, Op2));
 3409       APFloat A2(APFloat::PPCDoubleDouble(), APInt(128, 2, Op2));
 3418       APFloat A1(APFloat::PPCDoubleDouble(), APInt(128, 2, Op1));
 3418       APFloat A1(APFloat::PPCDoubleDouble(), APInt(128, 2, Op1));
 3419       APFloat A2(APFloat::PPCDoubleDouble(), APInt(128, 2, Op2));
 3419       APFloat A2(APFloat::PPCDoubleDouble(), APInt(128, 2, Op2));
 3432                               uint64_t, APFloat::roundingMode>;
 3437                       APFloat::rmNearestTiesToEven),
 3441                       APFloat::rmNearestTiesToEven),
 3445                       0x3960000000000000ull, APFloat::rmNearestTiesToEven),
 3449                       APFloat::rmNearestTiesToEven),
 3456                       0x7c8ffffffffffffeull, APFloat::rmNearestTiesToEven),
 3463                       0x7c8ffffffffffffeull, APFloat::rmNearestTiesToEven),
 3468     APFloat::roundingMode RM;
 3472       APFloat A1(APFloat::PPCDoubleDouble(), APInt(128, 2, Op1));
 3472       APFloat A1(APFloat::PPCDoubleDouble(), APInt(128, 2, Op1));
 3473       APFloat A2(APFloat::PPCDoubleDouble(), APInt(128, 2, Op2));
 3473       APFloat A2(APFloat::PPCDoubleDouble(), APInt(128, 2, Op2));
 3486       APFloat A1(APFloat::PPCDoubleDouble(), APInt(128, 2, Op1));
 3486       APFloat A1(APFloat::PPCDoubleDouble(), APInt(128, 2, Op1));
 3487       APFloat A2(APFloat::PPCDoubleDouble(), APInt(128, 2, Op2));
 3487       APFloat A2(APFloat::PPCDoubleDouble(), APInt(128, 2, Op2));
 3504                               uint64_t, APFloat::roundingMode>;
 3509                       APFloat::rmNearestTiesToEven),
 3513                       APFloat::rmNearestTiesToEven),
 3518     APFloat::roundingMode RM;
 3521     APFloat A1(APFloat::PPCDoubleDouble(), APInt(128, 2, Op1));
 3521     APFloat A1(APFloat::PPCDoubleDouble(), APInt(128, 2, Op1));
 3522     APFloat A2(APFloat::PPCDoubleDouble(), APInt(128, 2, Op2));
 3522     APFloat A2(APFloat::PPCDoubleDouble(), APInt(128, 2, Op2));
 3538                               APFloat::fltCategory, APFloat::roundingMode>;
 3538                               APFloat::fltCategory, APFloat::roundingMode>;
 3542                       APFloat::fcNaN, APFloat::rmNearestTiesToEven),
 3542                       APFloat::fcNaN, APFloat::rmNearestTiesToEven),
 3544       std::make_tuple(0x7ff8000000000000ull, 0, 0, 0, APFloat::fcNaN,
 3545                       APFloat::rmNearestTiesToEven),
 3548                       APFloat::fcNaN, APFloat::rmNearestTiesToEven),
 3548                       APFloat::fcNaN, APFloat::rmNearestTiesToEven),
 3551                       APFloat::fcNaN, APFloat::rmNearestTiesToEven),
 3551                       APFloat::fcNaN, APFloat::rmNearestTiesToEven),
 3554                       APFloat::fcInfinity, APFloat::rmNearestTiesToEven),
 3554                       APFloat::fcInfinity, APFloat::rmNearestTiesToEven),
 3556       std::make_tuple(0x7ff0000000000000ull, 0, 0, 0, APFloat::fcNaN,
 3557                       APFloat::rmNearestTiesToEven),
 3560                       APFloat::fcInfinity, APFloat::rmNearestTiesToEven),
 3560                       APFloat::fcInfinity, APFloat::rmNearestTiesToEven),
 3562       std::make_tuple(0, 0, 0, 0, APFloat::fcZero,
 3563                       APFloat::rmNearestTiesToEven),
 3565       std::make_tuple(0, 0, 0x3ff0000000000000ull, 0, APFloat::fcZero,
 3566                       APFloat::rmNearestTiesToEven),
 3571     APFloat::fltCategory Expected;
 3572     APFloat::roundingMode RM;
 3576       APFloat A1(APFloat::PPCDoubleDouble(), APInt(128, 2, Op1));
 3576       APFloat A1(APFloat::PPCDoubleDouble(), APInt(128, 2, Op1));
 3577       APFloat A2(APFloat::PPCDoubleDouble(), APInt(128, 2, Op2));
 3577       APFloat A2(APFloat::PPCDoubleDouble(), APInt(128, 2, Op2));
 3586       APFloat A1(APFloat::PPCDoubleDouble(), APInt(128, 2, Op1));
 3586       APFloat A1(APFloat::PPCDoubleDouble(), APInt(128, 2, Op1));
 3587       APFloat A2(APFloat::PPCDoubleDouble(), APInt(128, 2, Op2));
 3587       APFloat A2(APFloat::PPCDoubleDouble(), APInt(128, 2, Op2));
 3600                               uint64_t, APFloat::roundingMode>;
 3605                       APFloat::rmNearestTiesToEven),
 3609                       0x0000000000000001ull, APFloat::rmNearestTiesToEven),
 3614                       APFloat::rmNearestTiesToEven),
 3618                       0xbff0000000000000ull, 0, APFloat::rmNearestTiesToEven),
 3622                       0x0000000000000001ull, APFloat::rmNearestTiesToEven),
 3626                       APFloat::rmNearestTiesToEven),
 3630                       0x7ff0000000000000ull, 0, APFloat::rmNearestTiesToEven),
 3635                       APFloat::rmNearestTiesToEven),
 3640                       APFloat::rmNearestTiesToEven),
 3645     APFloat::roundingMode RM;
 3649       APFloat A1(APFloat::PPCDoubleDouble(), APInt(128, 2, Op1));
 3649       APFloat A1(APFloat::PPCDoubleDouble(), APInt(128, 2, Op1));
 3650       APFloat A2(APFloat::PPCDoubleDouble(), APInt(128, 2, Op2));
 3650       APFloat A2(APFloat::PPCDoubleDouble(), APInt(128, 2, Op2));
 3663       APFloat A1(APFloat::PPCDoubleDouble(), APInt(128, 2, Op1));
 3663       APFloat A1(APFloat::PPCDoubleDouble(), APInt(128, 2, Op1));
 3664       APFloat A2(APFloat::PPCDoubleDouble(), APInt(128, 2, Op2));
 3664       APFloat A2(APFloat::PPCDoubleDouble(), APInt(128, 2, Op2));
 3681                               uint64_t, APFloat::roundingMode>;
 3688                       APFloat::rmNearestTiesToEven),
 3693     APFloat::roundingMode RM;
 3696     APFloat A1(APFloat::PPCDoubleDouble(), APInt(128, 2, Op1));
 3696     APFloat A1(APFloat::PPCDoubleDouble(), APInt(128, 2, Op1));
 3697     APFloat A2(APFloat::PPCDoubleDouble(), APInt(128, 2, Op2));
 3697     APFloat A2(APFloat::PPCDoubleDouble(), APInt(128, 2, Op2));
 3729     APFloat A1(APFloat::PPCDoubleDouble(), APInt(128, 2, Op1));
 3729     APFloat A1(APFloat::PPCDoubleDouble(), APInt(128, 2, Op1));
 3730     APFloat A2(APFloat::PPCDoubleDouble(), APInt(128, 2, Op2));
 3730     APFloat A2(APFloat::PPCDoubleDouble(), APInt(128, 2, Op2));
 3764     APFloat A1(APFloat::PPCDoubleDouble(), APInt(128, 2, Op1));
 3764     APFloat A1(APFloat::PPCDoubleDouble(), APInt(128, 2, Op1));
 3765     APFloat A2(APFloat::PPCDoubleDouble(), APInt(128, 2, Op2));
 3765     APFloat A2(APFloat::PPCDoubleDouble(), APInt(128, 2, Op2));
 3781   APFloat A(APFloat::PPCDoubleDouble(), "2");
 3781   APFloat A(APFloat::PPCDoubleDouble(), "2");
 3782   A.fusedMultiplyAdd(APFloat(APFloat::PPCDoubleDouble(), "3"),
 3783                      APFloat(APFloat::PPCDoubleDouble(), "4"),
 3784                      APFloat::rmNearestTiesToEven);
 3791     APFloat A(APFloat::PPCDoubleDouble(), "1.5");
 3791     APFloat A(APFloat::PPCDoubleDouble(), "1.5");
 3792     A.roundToIntegral(APFloat::rmNearestTiesToEven);
 3797     APFloat A(APFloat::PPCDoubleDouble(), "2.5");
 3797     APFloat A(APFloat::PPCDoubleDouble(), "2.5");
 3798     A.roundToIntegral(APFloat::rmNearestTiesToEven);
 3806       std::tuple<uint64_t, uint64_t, uint64_t, uint64_t, APFloat::cmpResult>;
 3811                       APFloat::cmpEqual),
 3814                       APFloat::cmpLessThan),
 3817                       APFloat::cmpGreaterThan),
 3820                       0x0000000000000001ull, APFloat::cmpLessThan),
 3823                       APFloat::cmpUnordered),
 3826                       APFloat::cmpUnordered),
 3829                       APFloat::cmpEqual),
 3834     APFloat::cmpResult Expected;
 3837     APFloat A1(APFloat::PPCDoubleDouble(), APInt(128, 2, Op1));
 3837     APFloat A1(APFloat::PPCDoubleDouble(), APInt(128, 2, Op1));
 3838     APFloat A2(APFloat::PPCDoubleDouble(), APInt(128, 2, Op2));
 3838     APFloat A2(APFloat::PPCDoubleDouble(), APInt(128, 2, Op2));
 3869     APFloat A1(APFloat::PPCDoubleDouble(), APInt(128, 2, Op1));
 3869     APFloat A1(APFloat::PPCDoubleDouble(), APInt(128, 2, Op1));
 3870     APFloat A2(APFloat::PPCDoubleDouble(), APInt(128, 2, Op2));
 3870     APFloat A2(APFloat::PPCDoubleDouble(), APInt(128, 2, Op2));
 3891   APFloat Float(APFloat::PPCDoubleDouble(), APInt(128, 2, Data));
 3891   APFloat Float(APFloat::PPCDoubleDouble(), APInt(128, 2, Data));
 3893     APFloat Actual =
 3894         APFloat::copySign(Float, APFloat(APFloat::IEEEdouble(), "1"));
 3894         APFloat::copySign(Float, APFloat(APFloat::IEEEdouble(), "1"));
 3899     APFloat Actual =
 3900         APFloat::copySign(Float, APFloat(APFloat::IEEEdouble(), "-1"));
 3900         APFloat::copySign(Float, APFloat(APFloat::IEEEdouble(), "-1"));
 3991   APFloat Result =
 3992       scalbn(APFloat(APFloat::PPCDoubleDouble(), APInt(128, 2, Input)), 1,
 3993              APFloat::rmNearestTiesToEven);
 4006   APFloat Result =
 4007       frexp(APFloat(APFloat::PPCDoubleDouble(), APInt(128, 2, Input)), Exp,
 4008             APFloat::rmNearestTiesToEven);
unittests/CodeGen/GlobalISel/MachineIRBuilderTest.cpp
   24   APFloat KVal(APFloat::IEEEdouble(), "4.0");
   24   APFloat KVal(APFloat::IEEEdouble(), "4.0");
   65   APFloat DoubleVal(APFloat::IEEEdouble());
   65   APFloat DoubleVal(APFloat::IEEEdouble());
unittests/CodeGen/GlobalISel/PatternMatchTest.cpp
  163   APFloat APF((float).5);
  174   APFloat APF64(.5);
  187   APFloat APF16(.5);
  188   APF16.convert(APFloat::IEEEhalf(), APFloat::rmNearestTiesToEven, &Ignored);
  188   APF16.convert(APFloat::IEEEhalf(), APFloat::rmNearestTiesToEven, &Ignored);
usr/include/c++/7.4.0/bits/alloc_traits.h
  387       using allocator_type = allocator<_Tp>;
  389       using value_type = _Tp;
  392       using pointer = _Tp*;
  395       using const_pointer = const _Tp*;
  474 	construct(allocator_type& __a, _Up* __p, _Args&&... __args)
  474 	construct(allocator_type& __a, _Up* __p, _Args&&... __args)
  486 	destroy(allocator_type& __a, _Up* __p)
usr/include/c++/7.4.0/bits/allocator.h
  108     class allocator: public __allocator_base<_Tp>
  113       typedef _Tp*       pointer;
  114       typedef const _Tp* const_pointer;
  115       typedef _Tp&       reference;
  116       typedef const _Tp& const_reference;
  117       typedef _Tp        value_type;
  137 	allocator(const allocator<_Tp1>&) throw() { }
usr/include/c++/7.4.0/bits/move.h
   46     inline _GLIBCXX_CONSTEXPR _Tp*
   47     __addressof(_Tp& __r) _GLIBCXX_NOEXCEPT
   72     constexpr _Tp&&
   83     constexpr _Tp&&
   98     move(_Tp&& __t) noexcept
  104     : public __and_<__not_<is_nothrow_move_constructible<_Tp>>,
  105                     is_copy_constructible<_Tp>>::type { };
usr/include/c++/7.4.0/bits/stl_construct.h
   74     _Construct(_T1* __p, _Args&&... __args)
   74     _Construct(_T1* __p, _Args&&... __args)
   75     { ::new(static_cast<void*>(__p)) _T1(std::forward<_Args>(__args)...); }
   97     _Destroy(_Tp* __pointer)
  204 	     allocator<_Tp>&)
usr/include/c++/7.4.0/bits/stl_iterator.h
 1224     __make_move_if_noexcept_iterator(_Tp* __i)
usr/include/c++/7.4.0/bits/stl_iterator_base_types.h
  181       typedef _Tp                         value_type;
  183       typedef _Tp*                        pointer;
  184       typedef _Tp&                        reference;
  192       typedef _Tp                         value_type;
  194       typedef const _Tp*                  pointer;
  195       typedef const _Tp&                  reference;
usr/include/c++/7.4.0/bits/stl_pair.h
  209     : private __pair_base<_T1, _T2>
  211       typedef _T1 first_type;    /// @c first_type is the first bound type
  214       _T1 first;                 /// @c first is a copy of the first object
  252       using _PCCP = _PCC<true, _T1, _T2>;
  260       constexpr pair(const _T1& __a, const _T2& __b)
  269       explicit constexpr pair(const _T1& __a, const _T2& __b)
  283 			    _T1, _T2>;
  325        constexpr pair(const _T1& __x, _U2&& __y)
  332        explicit pair(const _T1& __x, _U2&& __y)
  379 		__and_<is_copy_assignable<_T1>,
  390 		__and_<is_move_assignable<_T1>,
  413       typename enable_if<__and_<is_assignable<_T1&, _U1&&>,
  413       typename enable_if<__and_<is_assignable<_T1&, _U1&&>,
  416 	operator=(pair<_U1, _U2>&& __p)
usr/include/c++/7.4.0/bits/stl_uninitialized.h
  288 			   _ForwardIterator __result, allocator<_Tp>&)
usr/include/c++/7.4.0/bits/stl_vector.h
   77 	rebind<_Tp>::other _Tp_alloc_type;
  216     class vector : protected _Vector_base<_Tp, _Alloc>
  227       typedef _Vector_base<_Tp, _Alloc>			_Base;
  232       typedef _Tp					value_type;
  919       _Tp*
  923       const _Tp*
 1483 	_M_realloc_insert(iterator __position, _Args&&... __args);
usr/include/c++/7.4.0/bits/unique_ptr.h
  103         default_delete(const default_delete<_Up[]>&) noexcept { }
  107       typename enable_if<is_convertible<_Up(*)[], _Tp(*)[]>::value>::type
  107       typename enable_if<is_convertible<_Up(*)[], _Tp(*)[]>::value>::type
  108 	operator()(_Up* __ptr) const
  110 	static_assert(sizeof(_Tp)>0,
  122 	  using type = _Up*;
  137       using pointer = typename _Ptr<_Tp, _Dp>::type;
  401 	typename __uniq_ptr_impl<_Tp, _Up>::_DeleterConstraint::type;
  403       __uniq_ptr_impl<_Tp, _Dp> _M_t;
  411 	  = __and_< is_base_of<_Tp, _Up>,
  412 		    __not_<is_same<__remove_cv<_Tp>, __remove_cv<_Up>>> >;
  412 		    __not_<is_same<__remove_cv<_Tp>, __remove_cv<_Up>>> >;
  412 		    __not_<is_same<__remove_cv<_Tp>, __remove_cv<_Up>>> >;
  415       using pointer	  = typename __uniq_ptr_impl<_Tp, _Dp>::pointer;
  416       using element_type  = _Tp;
usr/include/c++/7.4.0/ext/alloc_traits.h
  117       { typedef typename _Base_type::template rebind_alloc<_Tp> other; };
usr/include/c++/7.4.0/ext/new_allocator.h
   63       typedef _Tp*       pointer;
   64       typedef const _Tp* const_pointer;
   65       typedef _Tp&       reference;
   66       typedef const _Tp& const_reference;
   67       typedef _Tp        value_type;
  111 	return static_cast<_Tp*>(::operator new(__n * sizeof(_Tp)));
  130       { return size_t(-1) / sizeof(_Tp); }
  135 	construct(_Up* __p, _Args&&... __args)
  135 	construct(_Up* __p, _Args&&... __args)
  136 	{ ::new((void *)__p) _Up(std::forward<_Args>(__args)...); }
  140 	destroy(_Up* __p) { __p->~_Up(); }
usr/include/c++/7.4.0/type_traits
  215     : public __is_void_helper<typename remove_cv<_Tp>::type>::type
  326     : public __is_integral_helper<typename remove_cv<_Tp>::type>::type
  354     : public __is_floating_point_helper<typename remove_cv<_Tp>::type>::type
  381     : public __is_pointer_helper<typename remove_cv<_Tp>::type>::type
  567     : public __is_null_pointer_helper<typename remove_cv<_Tp>::type>::type
  581     : public __or_<is_lvalue_reference<_Tp>,
  582                    is_rvalue_reference<_Tp>>::type
  588     : public __or_<is_integral<_Tp>, is_floating_point<_Tp>>::type
  588     : public __or_<is_integral<_Tp>, is_floating_point<_Tp>>::type
  601     : public __not_<__or_<is_function<_Tp>, is_reference<_Tp>,
  601     : public __not_<__or_<is_function<_Tp>, is_reference<_Tp>,
  602                           is_void<_Tp>>>::type
  611     : public __or_<is_arithmetic<_Tp>, is_enum<_Tp>, is_pointer<_Tp>,
  611     : public __or_<is_arithmetic<_Tp>, is_enum<_Tp>, is_pointer<_Tp>,
  611     : public __or_<is_arithmetic<_Tp>, is_enum<_Tp>, is_pointer<_Tp>,
  612                    is_member_pointer<_Tp>, is_null_pointer<_Tp>>::type
  612                    is_member_pointer<_Tp>, is_null_pointer<_Tp>>::type
  631     : public __is_member_pointer_helper<typename remove_cv<_Tp>::type>::type
  638     : public __or_<is_object<_Tp>, is_reference<_Tp>>::type
  638     : public __or_<is_object<_Tp>, is_reference<_Tp>>::type
  762     typename add_rvalue_reference<_Tp>::type declval() noexcept;
  777     : public __and_<is_array<_Tp>, __not_<extent<_Tp>>>
  777     : public __and_<is_array<_Tp>, __not_<extent<_Tp>>>
  798       typedef decltype(__test<_Tp>(0)) type;
  811                remove_all_extents<_Tp>::type>::type
  825     : public __is_destructible_safe<_Tp>::type
  889       typedef decltype(__test<_Tp>(0)) type;
  894     : public __and_<__not_<is_void<_Tp>>,
  895                     __is_default_constructible_impl<_Tp>>
  915     : public __is_default_constructible_atom<_Tp>::type
  921     : public __is_default_constructible_safe<_Tp>::type
  984       typedef decltype(__test<_Tp, _Arg>(0)) type;
  989     : public __and_<is_destructible<_Tp>,
  990                     __is_direct_constructible_impl<_Tp, _Arg>>
 1072 			 __is_direct_constructible_ref_cast<_Tp, _Arg>,
 1073 			 __is_direct_constructible_new_safe<_Tp, _Arg>
 1079     : public __is_direct_constructible_new<_Tp, _Arg>::type
 1119     : public __is_direct_constructible<_Tp, _Arg>
 1130     : public __is_constructible_impl<_Tp, _Args...>::type
 1142     : public is_constructible<_Tp, const _Tp&>
 1142     : public is_constructible<_Tp, const _Tp&>
 1148     : public __is_copy_constructible_impl<_Tp>
 1160     : public is_constructible<_Tp, _Tp&&>
 1160     : public is_constructible<_Tp, _Tp&&>
 1166     : public __is_move_constructible_impl<_Tp>
 1215     : public __and_<is_constructible<_Tp, _Args...>,
 1216 		    __is_nt_constructible_impl<_Tp, _Args...>>
 1246     : public is_nothrow_constructible<_Tp, _Tp&&>
 1246     : public is_nothrow_constructible<_Tp, _Tp&&>
 1252     : public __is_nothrow_move_constructible_impl<_Tp>
 1286     : public is_assignable<_Tp&, const _Tp&>
 1286     : public is_assignable<_Tp&, const _Tp&>
 1292     : public __is_copy_assignable_impl<_Tp>
 1304     : public is_assignable<_Tp&, _Tp&&>
 1304     : public is_assignable<_Tp&, _Tp&&>
 1310     : public __is_move_assignable_impl<_Tp>
 1400       : public __and_<is_default_constructible<_Tp>,
 1401                       __is_implicitly_default_constructible_safe<_Tp>>
 1538       typedef decltype(__test<_From, _To>(0)) type;
 1545     : public __is_convertible_helper<_From, _To>::type
 1554     { typedef _Tp     type; };
 1563     { typedef _Tp     type; };
 1574       remove_const<typename remove_volatile<_Tp>::type>::type     type;
 1629     { typedef _Tp   type; };
 1633     { typedef _Tp   type; };
 1645     { typedef _Tp&   type; };
 1650     : public __add_lvalue_reference_helper<_Tp>
 1659     { typedef _Tp&&   type; };
 1664     : public __add_rvalue_reference_helper<_Tp>
 1955     { typedef _Tp     type; };
 1983     { typedef _Up     type; };