@@ -121,21 +121,44 @@ impl Intrinsic {
121
121
constraints
122
122
} ;
123
123
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
+
124
129
let indentation2 = indentation. nested ( ) ;
125
130
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
+ }
140
163
}
141
164
}
0 commit comments