File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -218,41 +218,45 @@ aot_intrinsic_copysign_f64(float64 a, float64 b)
218218float32
219219aot_intrinsic_fmin_f32 (float32 a , float32 b )
220220{
221- if (isnan (a ))
222- return a ;
223- else if (isnan ( b ) )
224- return b ;
221+ if (isnan (a ) || isnan ( b ) )
222+ return NAN ;
223+ else if (a == 0 && a == b )
224+ return signbit ( a ) ? a : b ;
225225 else
226- return fminf ( a , b ) ;
226+ return a > b ? b : a ;
227227}
228228
229229float64
230230aot_intrinsic_fmin_f64 (float64 a , float64 b )
231231{
232- float64 c = fmin (a , b );
233- if (c == 0 && a == b )
232+ if (isnan (a ) || isnan (b ))
233+ return NAN ;
234+ else if (a == 0 && a == b )
234235 return signbit (a ) ? a : b ;
235- return c ;
236+ else
237+ return a > b ? b : a ;
236238}
237239
238240float32
239241aot_intrinsic_fmax_f32 (float32 a , float32 b )
240242{
241- if (isnan (a ))
242- return a ;
243- else if (isnan ( b ) )
244- return b ;
243+ if (isnan (a ) || isnan ( b ) )
244+ return NAN ;
245+ else if (a == 0 && a == b )
246+ return signbit ( a ) ? b : a ;
245247 else
246- return fmaxf ( a , b ) ;
248+ return a > b ? a : b ;
247249}
248250
249251float64
250252aot_intrinsic_fmax_f64 (float64 a , float64 b )
251253{
252- float64 c = fmax (a , b );
253- if (c == 0 && a == b )
254+ if (isnan (a ) || isnan (b ))
255+ return NAN ;
256+ else if (a == 0 && a == b )
254257 return signbit (a ) ? b : a ;
255- return c ;
258+ else
259+ return a > b ? a : b ;
256260}
257261
258262uint32
You can’t perform that action at this time.
0 commit comments