From 071bc0fd8e9ce738f00a3f699c24460806058b38 Mon Sep 17 00:00:00 2001 From: Dan Gohman Date: Mon, 8 Jun 2015 12:39:21 -0800 Subject: Move floating-point libary intrinsics into FutureFeatures.md. --- AstSemantics.md | 34 ---------------------------------- FutureFeatures.md | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+), 34 deletions(-) diff --git a/AstSemantics.md b/AstSemantics.md index 896f2f6..0cc4a31 100644 --- a/AstSemantics.md +++ b/AstSemantics.md @@ -413,37 +413,3 @@ overflow to infinity or negative infinity as specified by IEEE-754. Conversion from floating point to integer where IEEE-754 would specify an invalid operation exception (e.g. when the floating point value is NaN or outside the range which rounds to an integer in range) traps. - -## Post-MVP intrinsics - -The following list of intrinsics is being considered for addition after the MVP. The -rationale is that, for the MVP, these operations can be statically linked into the -WebAssembly module by the code generator at small size cost and this avoids a -non-trivial specification burden of their semantics/precision. Adding these -intrinsics post-MVP would allow for better high-level backend optimization of -these intrinsics that require builtin knowledge of their semantics. On the other -hand, a code generator may continue to statically link in its own implementation -since this provides greater control over precision/performance tradeoffs. - - * Float64Sin - trigonometric sine - * Float64Cos - trigonometric cosine - * Float64Tan - trigonometric tangent - * Float64ASin - trigonometric arcsine - * Float64ACos - trigonometric arccosine - * Float64ATan - trigonometric arctangent - * Float64ATan2 - trigonometric arctangent with two arguments - * Float64Exp - exponentiate e - * Float64Ln - natural logarithm - * Float64Pow - exponentiate - * Float32Sin - trigonometric sine - * Float32Cos - trigonometric cosine - * Float32Tan - trigonometric tangent - * Float32ASin - trigonometric arcsine - * Float32ACos - trigonometric arccosine - * Float32ATan - trigonometric arctangent - * Float32ATan2 - trigonometric arctangent with two arguments - * Float32Exp - exponentiate e - * Float32Ln - natural logarithm - * Float32Pow - exponentiate - -The rounding behavior of these operations would need clarification. diff --git a/FutureFeatures.md b/FutureFeatures.md index 8e32bc7..7eaca32 100644 --- a/FutureFeatures.md +++ b/FutureFeatures.md @@ -238,3 +238,37 @@ use cases: * Float64MaxNum - maximum; if exactly one operand is NaN, returns the other operand MinNum, and MaxNum operations would treat -0 as being effectively less than 0. + +## Floating-point library intrinsics + +These operations aren't needed because they can be implemented in WebAssembly +code and linked into WebAssembly modules as at small size cost, and this avoids +a non-trivial specification burden of their semantics/precision. Adding these +intrinsics would allow for better high-level backend optimization of these +intrinsics that require builtin knowledge of their semantics. On the other +hand, a code generator may continue to statically link in its own +implementation since this provides greater control over precision/performance +tradeoffs. + + * Float64Sin - trigonometric sine + * Float64Cos - trigonometric cosine + * Float64Tan - trigonometric tangent + * Float64ASin - trigonometric arcsine + * Float64ACos - trigonometric arccosine + * Float64ATan - trigonometric arctangent + * Float64ATan2 - trigonometric arctangent with two arguments + * Float64Exp - exponentiate e + * Float64Ln - natural logarithm + * Float64Pow - exponentiate + * Float32Sin - trigonometric sine + * Float32Cos - trigonometric cosine + * Float32Tan - trigonometric tangent + * Float32ASin - trigonometric arcsine + * Float32ACos - trigonometric arccosine + * Float32ATan - trigonometric arctangent + * Float32ATan2 - trigonometric arctangent with two arguments + * Float32Exp - exponentiate e + * Float32Ln - natural logarithm + * Float32Pow - exponentiate + +The rounding behavior of these operations would need clarification. -- cgit v1.2.3