ONYX_INTRINSIC_F64_MIN, ONYX_INTRINSIC_F64_MAX,
ONYX_INTRINSIC_F64_COPYSIGN,
+ ONYX_INTRINSIC_I32_REINTERPRET_F32,
+ ONYX_INTRINSIC_I64_REINTERPRET_F64,
+ ONYX_INTRINSIC_F32_REINTERPRET_I32,
+ ONYX_INTRINSIC_F64_REINTERPRET_I64,
ONYX_INTRINSIC_V128_CONST,
{ "max_f64", ONYX_INTRINSIC_F64_MAX },
{ "copysign_f64", ONYX_INTRINSIC_F64_COPYSIGN },
+ { "reinterpret_f32", ONYX_INTRINSIC_I32_REINTERPRET_F32 },
+ { "reinterpret_f64", ONYX_INTRINSIC_I64_REINTERPRET_F64 },
+ { "reinterpret_i32", ONYX_INTRINSIC_F32_REINTERPRET_I32 },
+ { "reinterpret_i64", ONYX_INTRINSIC_F64_REINTERPRET_I64 },
+
// SIMD Intrinsics
{ "v128_const", ONYX_INTRINSIC_V128_CONST },
case ONYX_INTRINSIC_F64_MAX: WI(call->token, WI_F64_MAX); break;
case ONYX_INTRINSIC_F64_COPYSIGN: WI(call->token, WI_F64_COPYSIGN); break;
+ case ONYX_INTRINSIC_I32_REINTERPRET_F32: WI(call->token, WI_I32_REINTERPRET_F32); break;
+ case ONYX_INTRINSIC_I64_REINTERPRET_F64: WI(call->token, WI_I64_REINTERPRET_F64); break;
+ case ONYX_INTRINSIC_F32_REINTERPRET_I32: WI(call->token, WI_F32_REINTERPRET_I32); break;
+ case ONYX_INTRINSIC_F64_REINTERPRET_I64: WI(call->token, WI_F64_REINTERPRET_I64); break;
+
case ONYX_INTRINSIC_I8X16_CONST:
case ONYX_INTRINSIC_V128_CONST: SIMD_INT_CONST_INTRINSIC(u8, 16); break;
case ONYX_INTRINSIC_I16X8_CONST: SIMD_INT_CONST_INTRINSIC(u16, 8); break;
min_f64 :: (lhs: f64, rhs: f64) -> f64 #intrinsic ---
max_f64 :: (lhs: f64, rhs: f64) -> f64 #intrinsic ---
copysign_f64 :: (lhs: f64, rhs: f64) -> f64 #intrinsic ---
+
+reinterpret_f32 :: (val: f32) -> i32 #intrinsic ---
+reinterpret_f64 :: (val: f64) -> i64 #intrinsic ---
+reinterpret_i32 :: (val: i32) -> f32 #intrinsic ---
+reinterpret_i64 :: (val: i64) -> f64 #intrinsic ---
#doc "Generates a random floating point number between `lo` and `hi`."
float :: (self: &Random, lo := 0.0f, hi := 1.0f) -> f32 {
- return (cast(f32) (self->int() % (1 << 20)) / cast(f32) (1 << 20)) * (hi - lo) + lo;
+ return (cast(f32) (self->int() % (1 << 23)) / cast(f32) (1 << 23)) * (hi - lo) + lo;
}
#doc "Returns a random element from a slice."