mirror of
https://github.com/RGBCube/serenity
synced 2025-07-26 01:57:45 +00:00
AK: Add an SSE2 specific implementation of sqrt(double)
This commit is contained in:
parent
6c41267dcf
commit
d4fe02152a
1 changed files with 15 additions and 0 deletions
15
AK/Math.h
15
AK/Math.h
|
@ -130,6 +130,21 @@ constexpr float sqrt(float x)
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# ifdef __SSE2__
|
||||||
|
template<>
|
||||||
|
constexpr double sqrt(double x)
|
||||||
|
{
|
||||||
|
if (is_constant_evaluated())
|
||||||
|
return __builtin_sqrt(x);
|
||||||
|
|
||||||
|
double res;
|
||||||
|
asm("sqrtsd %1, %0"
|
||||||
|
: "=x"(res)
|
||||||
|
: "x"(x));
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
# endif
|
||||||
|
|
||||||
template<>
|
template<>
|
||||||
constexpr float rsqrt(float x)
|
constexpr float rsqrt(float x)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue