@@ -233,13 +233,6 @@ fn f16_builtin<'gcc, 'tcx>(
233233 sym:: maxnumf16 => "__builtin_fmaxf" ,
234234 sym:: minnumf16 => "__builtin_fminf" ,
235235 sym:: powf16 => "__builtin_powf" ,
236- sym:: powif16 => {
237- let func = cx. context . get_builtin_function ( "__builtin_powif" ) ;
238- let arg0 = cx. context . new_cast ( None , args[ 0 ] . immediate ( ) , f32_type) ;
239- let args = [ arg0, args[ 1 ] . immediate ( ) ] ;
240- let result = cx. context . new_call ( None , func, & args) ;
241- return cx. context . new_cast ( None , result, cx. type_f16 ( ) ) ;
242- }
243236 sym:: roundf16 => "__builtin_roundf" ,
244237 sym:: round_ties_even_f16 => "__builtin_rintf" ,
245238 sym:: sqrtf16 => "__builtin_sqrtf" ,
@@ -300,7 +293,6 @@ impl<'a, 'gcc, 'tcx> IntrinsicCallBuilderMethods<'tcx> for Builder<'a, 'gcc, 'tc
300293 | sym:: maxnumf16
301294 | sym:: minnumf16
302295 | sym:: powf16
303- | sym:: powif16
304296 | sym:: roundf16
305297 | sym:: round_ties_even_f16
306298 | sym:: sqrtf16
@@ -325,6 +317,13 @@ impl<'a, 'gcc, 'tcx> IntrinsicCallBuilderMethods<'tcx> for Builder<'a, 'gcc, 'tc
325317 & args. iter ( ) . map ( |arg| arg. immediate ( ) ) . collect :: < Vec < _ > > ( ) ,
326318 )
327319 }
320+ sym:: powif16 => {
321+ let func = self . cx . context . get_builtin_function ( "__builtin_powif" ) ;
322+ let arg0 = self . cx . context . new_cast ( None , args[ 0 ] . immediate ( ) , self . cx . type_f32 ( ) ) ;
323+ let args = [ arg0, args[ 1 ] . immediate ( ) ] ;
324+ let result = self . cx . context . new_call ( None , func, & args) ;
325+ self . cx . context . new_cast ( None , result, self . cx . type_f16 ( ) )
326+ }
328327 sym:: powif128 => {
329328 let f128_type = self . cx . type_f128 ( ) ;
330329 let func = self . cx . context . new_function (
0 commit comments