@@ -121,21 +121,44 @@ impl Intrinsic {
121121 constraints
122122 } ;
123123
124+ let returns_f16 = match self . results . kind ( ) {
125+ TypeKind :: Float => self . results . inner_size ( ) == 16 && self . results . num_lanes ( ) == 1 ,
126+ _ => false ,
127+ } ;
128+
124129 let indentation2 = indentation. nested ( ) ;
125130 let indentation3 = indentation2. nested ( ) ;
126- format ! (
127- "{indentation}for i in 0..{passes} {{\n \
128- {indentation2}unsafe {{\n \
129- {loaded_args}\
130- {indentation3}let __return_value = {intrinsic_call}{const}({args});\n \
131- {indentation3}println!(\" Result {additional}-{{}}: {{:.150?}}\" , i + 1, __return_value);\n \
132- {indentation2}}}\n \
133- {indentation}}}",
134- loaded_args = self . arguments. load_values_rust( indentation3) ,
135- intrinsic_call = self . name,
136- const = constraints,
137- args = self . arguments. as_call_param_rust( ) ,
138- additional = additional,
139- )
131+
132+ if returns_f16 {
133+ format ! (
134+ "{indentation}for i in 0..{passes} {{\n \
135+ {indentation2}unsafe {{\n \
136+ {loaded_args}\
137+ {indentation3}let __return_value = {intrinsic_call}{const}({args});\n \
138+ {indentation3}println!(\" Result {additional}-{{}}: {{:#06x?}}\" , i + 1, __return_value.to_bits());\n \
139+ {indentation2}}}\n \
140+ {indentation}}}",
141+ loaded_args = self . arguments. load_values_rust( indentation3) ,
142+ intrinsic_call = self . name,
143+ const = constraints,
144+ args = self . arguments. as_call_param_rust( ) ,
145+ additional = additional,
146+ )
147+ } else {
148+ format ! (
149+ "{indentation}for i in 0..{passes} {{\n \
150+ {indentation2}unsafe {{\n \
151+ {loaded_args}\
152+ {indentation3}let __return_value = {intrinsic_call}{const}({args});\n \
153+ {indentation3}println!(\" Result {additional}-{{}}: {{:.150?}}\" , i + 1, __return_value);\n \
154+ {indentation2}}}\n \
155+ {indentation}}}",
156+ loaded_args = self . arguments. load_values_rust( indentation3) ,
157+ intrinsic_call = self . name,
158+ const = constraints,
159+ args = self . arguments. as_call_param_rust( ) ,
160+ additional = additional,
161+ )
162+ }
140163 }
141164}
0 commit comments