Implement math.sqrt with intrinsics.sqrt

This commit is contained in:
gingerBill
2021-11-16 14:11:20 +00:00
parent 6a101e69a2
commit 91949b0992
2 changed files with 17 additions and 9 deletions
+12 -7
View File
@@ -1,15 +1,10 @@
//+build !js
package math
import "core:intrinsics"
@(default_calling_convention="none")
foreign _ {
@(link_name="llvm.sqrt.f16")
sqrt_f16 :: proc(x: f16) -> f16 ---
@(link_name="llvm.sqrt.f32")
sqrt_f32 :: proc(x: f32) -> f32 ---
@(link_name="llvm.sqrt.f64")
sqrt_f64 :: proc(x: f64) -> f64 ---
@(link_name="llvm.sin.f16")
sin_f16 :: proc(θ: f16) -> f16 ---
@(link_name="llvm.sin.f32")
@@ -52,3 +47,13 @@ foreign _ {
@(link_name="llvm.exp.f64")
exp_f64 :: proc(x: f64) -> f64 ---
}
sqrt_f16 :: proc "contextless" (x: f16) -> f16 {
return intrinsics.sqrt(x)
}
sqrt_f32 :: proc "contextless" (x: f32) -> f32 {
return intrinsics.sqrt(x)
}
sqrt_f64 :: proc "contextless" (x: f64) -> f64 {
return intrinsics.sqrt(x)
}