@@ -125,6 +125,9 @@ struct fltSemantics {
125125
126126 /* Whether this semantics can represent signed values */
127127 bool hasSignedRepr = true ;
128+
129+ /* Whether the sign bit of this semantics is the most significant bit */
130+ bool hasSignBitInMSB = true ;
128131};
129132
130133static constexpr fltSemantics semIEEEhalf = {15 , -14 , 11 , 16 };
@@ -144,9 +147,15 @@ static constexpr fltSemantics semFloat8E4M3B11FNUZ = {
144147 4 , -10 , 4 , 8 , fltNonfiniteBehavior::NanOnly, fltNanEncoding::NegativeZero};
145148static constexpr fltSemantics semFloat8E3M4 = {3 , -2 , 5 , 8 };
146149static constexpr fltSemantics semFloatTF32 = {127 , -126 , 11 , 19 };
147- static constexpr fltSemantics semFloat8E8M0FNU = {
148- 127 , -127 , 1 , 8 , fltNonfiniteBehavior::NanOnly, fltNanEncoding::AllOnes,
149- false , false };
150+ static constexpr fltSemantics semFloat8E8M0FNU = {127 ,
151+ -127 ,
152+ 1 ,
153+ 8 ,
154+ fltNonfiniteBehavior::NanOnly,
155+ fltNanEncoding::AllOnes,
156+ false ,
157+ false ,
158+ false };
150159
151160static constexpr fltSemantics semFloat6E3M2FN = {
152161 4 , -2 , 3 , 6 , fltNonfiniteBehavior::FiniteOnly};
@@ -358,6 +367,10 @@ bool APFloatBase::isIEEELikeFP(const fltSemantics &semantics) {
358367 return SemanticsToEnum (semantics) <= S_IEEEquad;
359368}
360369
370+ bool APFloatBase::hasSignBitInMSB (const fltSemantics &semantics) {
371+ return semantics.hasSignBitInMSB ;
372+ }
373+
361374bool APFloatBase::isRepresentableAsNormalIn (const fltSemantics &Src,
362375 const fltSemantics &Dst) {
363376 // Exponent range must be larger.
0 commit comments