mirror of
https://github.com/bytecodealliance/wasm-micro-runtime.git
synced 2025-05-09 21:26:21 +00:00
Fix fmin/fmax in AOT XIP intrinsics (#1848)
This commit is contained in:
parent
41eb938a95
commit
d1fe589d43
|
@ -218,41 +218,45 @@ aot_intrinsic_copysign_f64(float64 a, float64 b)
|
||||||
float32
|
float32
|
||||||
aot_intrinsic_fmin_f32(float32 a, float32 b)
|
aot_intrinsic_fmin_f32(float32 a, float32 b)
|
||||||
{
|
{
|
||||||
if (isnan(a))
|
if (isnan(a) || isnan(b))
|
||||||
return a;
|
return NAN;
|
||||||
else if (isnan(b))
|
else if (a == 0 && a == b)
|
||||||
return b;
|
return signbit(a) ? a : b;
|
||||||
else
|
else
|
||||||
return fminf(a, b);
|
return a > b ? b : a;
|
||||||
}
|
}
|
||||||
|
|
||||||
float64
|
float64
|
||||||
aot_intrinsic_fmin_f64(float64 a, float64 b)
|
aot_intrinsic_fmin_f64(float64 a, float64 b)
|
||||||
{
|
{
|
||||||
float64 c = fmin(a, b);
|
if (isnan(a) || isnan(b))
|
||||||
if (c == 0 && a == b)
|
return NAN;
|
||||||
|
else if (a == 0 && a == b)
|
||||||
return signbit(a) ? a : b;
|
return signbit(a) ? a : b;
|
||||||
return c;
|
else
|
||||||
|
return a > b ? b : a;
|
||||||
}
|
}
|
||||||
|
|
||||||
float32
|
float32
|
||||||
aot_intrinsic_fmax_f32(float32 a, float32 b)
|
aot_intrinsic_fmax_f32(float32 a, float32 b)
|
||||||
{
|
{
|
||||||
if (isnan(a))
|
if (isnan(a) || isnan(b))
|
||||||
return a;
|
return NAN;
|
||||||
else if (isnan(b))
|
else if (a == 0 && a == b)
|
||||||
return b;
|
return signbit(a) ? b : a;
|
||||||
else
|
else
|
||||||
return fmaxf(a, b);
|
return a > b ? a : b;
|
||||||
}
|
}
|
||||||
|
|
||||||
float64
|
float64
|
||||||
aot_intrinsic_fmax_f64(float64 a, float64 b)
|
aot_intrinsic_fmax_f64(float64 a, float64 b)
|
||||||
{
|
{
|
||||||
float64 c = fmax(a, b);
|
if (isnan(a) || isnan(b))
|
||||||
if (c == 0 && a == b)
|
return NAN;
|
||||||
|
else if (a == 0 && a == b)
|
||||||
return signbit(a) ? b : a;
|
return signbit(a) ? b : a;
|
||||||
return c;
|
else
|
||||||
|
return a > b ? a : b;
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32
|
uint32
|
||||||
|
|
Loading…
Reference in New Issue
Block a user