@@ -30,8 +30,10 @@ pub enum BuiltinUint {
3030
3131#[ derive( Copy , Clone , Debug , PartialEq , Eq , PartialOrd , Ord , Hash ) ]
3232pub enum BuiltinFloat {
33+ F16 ,
3334 F32 ,
3435 F64 ,
36+ F128 ,
3537}
3638
3739#[ derive( Debug , Clone , Copy , PartialEq , Eq , Hash ) ]
@@ -65,8 +67,10 @@ impl BuiltinType {
6567 ( name ! [ u64 ] , BuiltinType :: Uint ( BuiltinUint :: U64 ) ) ,
6668 ( name ! [ u128 ] , BuiltinType :: Uint ( BuiltinUint :: U128 ) ) ,
6769
70+ ( name ! [ f16] , BuiltinType :: Float ( BuiltinFloat :: F16 ) ) ,
6871 ( name ! [ f32 ] , BuiltinType :: Float ( BuiltinFloat :: F32 ) ) ,
6972 ( name ! [ f64 ] , BuiltinType :: Float ( BuiltinFloat :: F64 ) ) ,
73+ ( name ! [ f128] , BuiltinType :: Float ( BuiltinFloat :: F128 ) ) ,
7074 ] ;
7175
7276 pub fn by_name ( name : & Name ) -> Option < Self > {
@@ -97,8 +101,10 @@ impl AsName for BuiltinType {
97101 BuiltinUint :: U128 => name ! [ u128 ] ,
98102 } ,
99103 BuiltinType :: Float ( it) => match it {
104+ BuiltinFloat :: F16 => name ! [ f16] ,
100105 BuiltinFloat :: F32 => name ! [ f32 ] ,
101106 BuiltinFloat :: F64 => name ! [ f64 ] ,
107+ BuiltinFloat :: F128 => name ! [ f128] ,
102108 } ,
103109 }
104110 }
@@ -155,8 +161,10 @@ impl BuiltinUint {
155161impl BuiltinFloat {
156162 pub fn from_suffix ( suffix : & str ) -> Option < BuiltinFloat > {
157163 let res = match suffix {
164+ "f16" => BuiltinFloat :: F16 ,
158165 "f32" => BuiltinFloat :: F32 ,
159166 "f64" => BuiltinFloat :: F64 ,
167+ "f128" => BuiltinFloat :: F128 ,
160168 _ => return None ,
161169 } ;
162170 Some ( res)
@@ -192,8 +200,10 @@ impl fmt::Display for BuiltinUint {
192200impl fmt:: Display for BuiltinFloat {
193201 fn fmt ( & self , f : & mut fmt:: Formatter < ' _ > ) -> fmt:: Result {
194202 f. write_str ( match self {
203+ BuiltinFloat :: F16 => "f16" ,
195204 BuiltinFloat :: F32 => "f32" ,
196205 BuiltinFloat :: F64 => "f64" ,
206+ BuiltinFloat :: F128 => "f128" ,
197207 } )
198208 }
199209}
0 commit comments