I am trying to understand how the std::pow function works in GCC. I was looking at the source code for the cmath library here https://code.woboq.org/gcc/libstdc++-v3/include/c_global/cmath.html#_ZSt3powff.
On line 388 of that file, they give the definition of pow when float types are passed as the argument as shown here
#ifndef __CORRECT_ISO_CPP_MATH_H_PROTO
inline _GLIBCXX_CONSTEXPR float
pow(float __x, float __y)
{ return __builtin_powf(__x, __y); }
This pow function calls another function __builtin_powf.
What I want to know is, where is __builtin_powf defined? I read that it is a built in function, but that still does not help me understand where its implementation lives. I can not seem to find __builtin_powf anywhere else in the GCC source code. Also, how is it translated to assembly?