diff --git a/nac3core/src/codegen/llvm_intrinsics.rs b/nac3core/src/codegen/llvm_intrinsics.rs index 46b5aeea6..27f6b59c0 100644 --- a/nac3core/src/codegen/llvm_intrinsics.rs +++ b/nac3core/src/codegen/llvm_intrinsics.rs @@ -671,13 +671,14 @@ pub fn call_float_round<'ctx>( } /// Invokes the -/// [`llvm.roundeven`](https://llvm.org/docs/LangRef.html#llvm-roundeven-intrinsic) intrinsic. +/// [`llvm.nearbyint`](https://llvm.org/docs/LangRef.html#llvm-nearbyint-intrinsic) +/// Note [`llvm.roundeven`](https://llvm.org/docs/LangRef.html#llvm-roundeven-intrinsic) not supported on all platforms pub fn call_float_roundeven<'ctx>( ctx: &CodeGenContext<'ctx, '_>, val: FloatValue<'ctx>, name: Option<&str>, ) -> FloatValue<'ctx> { - const FN_NAME: &str = "llvm.roundeven"; + const FN_NAME: &str = "llvm.nearbyint"; let llvm_float_t = val.get_type(); diff --git a/nac3standalone/demo/src/math.py b/nac3standalone/demo/src/math.py index 290c2123d..a376de63a 100644 --- a/nac3standalone/demo/src/math.py +++ b/nac3standalone/demo/src/math.py @@ -37,7 +37,7 @@ def test_round64(): output_int64(round64(x)) def test_np_round(): - for x in [-1.5, -0.5, 0.5, 1.5, dbl_inf(), -dbl_inf(), dbl_nan()]: + for x in [-1.5, -0.5, 0.5, 1.5, dbl_inf(), -dbl_inf(), dbl_nan(), 0.0, -0.0, 1.6, 1.4, -1.4, -1.6]: output_float64(np_round(x)) def test_np_isnan():