X-Git-Url: https://git.saurik.com/apple/javascriptcore.git/blobdiff_plain/2d39b0e377c0896910ee49ae70082ba665faf986..ed1e77d3adeb83d26fd1dfb16dd84cabdcefd250:/tests/stress/math-sqrt-basics-disable-architecture-specific-optimizations.js diff --git a/tests/stress/math-sqrt-basics-disable-architecture-specific-optimizations.js b/tests/stress/math-sqrt-basics-disable-architecture-specific-optimizations.js new file mode 100644 index 0000000..c29bf56 --- /dev/null +++ b/tests/stress/math-sqrt-basics-disable-architecture-specific-optimizations.js @@ -0,0 +1,48 @@ +//@ run("no-architecture-specific-optimizations", "--enableArchitectureSpecificOptimizations=false", *NO_CJIT_OPTIONS) +//@ run("no-architecture-specific-optimizations-ftl", "--enableArchitectureSpecificOptimizations=false", *FTL_OPTIONS) + +// Basic cases of Math.sqrt(). +function sqrtOnInteger(radicand) { + return Math.sqrt(radicand); +} +noInline(sqrtOnInteger); + +function testSquareRoot16() { + for (var i = 0; i < 10000; ++i) { + var result = sqrtOnInteger(16); + if (result !== 4) + throw "sqrtOnInteger(16) = " + result + ", expected 4"; + } +} +testSquareRoot16(); + +var sqrtOnIntegerNegativeNumber = sqrtOnDouble(-4); +if (!isNaN(sqrtOnIntegerNegativeNumber)) + throw "sqrtOnDouble(-4) = " + sqrtOnIntegerNegativeNumber + ", expected NaN"; + +var sqrtOnIntegerFallback = sqrtOnInteger(Math.PI); +if (sqrtOnIntegerFallback != 1.7724538509055159) + throw "sqrtOnInteger(Math.PI) = " + sqrtOnIntegerFallback + ", expected 1.7724538509055159"; + + +function sqrtOnDouble(radicand) { + return Math.sqrt(radicand); +} +noInline(sqrtOnDouble); + +function testSquareRootDouble() { + for (var i = 0; i < 10000; ++i) { + var result = sqrtOnInteger(Math.LN2); + if (result !== 0.8325546111576977) + throw "sqrtOnInteger(Math.LN2) = " + result + ", expected 0.8325546111576977"; + } +} +testSquareRootDouble(); + +var sqrtOnDoubleNegativeNumber = sqrtOnDouble(-Math.PI); +if (!isNaN(sqrtOnDoubleNegativeNumber)) + throw "sqrtOnDouble(-Math.PI) = " + sqrtOnDoubleNegativeNumber + ", expected NaN"; + +var sqrtOnDoubleFallback = sqrtOnDouble(4); +if (sqrtOnDoubleFallback !== 2) + throw "sqrtOnDouble(4) = " + sqrtOnDoubleFallback + ", expected 2"; \ No newline at end of file