GCC manual section 6.54 wrote:
GCC includes built-in versions of many of the functions in the standard C library. The versions prefixed with __builtin_ will always be treated as having the same meaning as the C library function even if you specify the -fno-builtin option. (see C Dialect Options) Many of these functions are only optimized in certain cases; if they are not optimized in a particular case, a call to the library function will be emitted.Builtins are provided, but may not be used. I was testing a bit, and floor(1.5) got optimized to a constant load, while inhibiting optimizations plus moving data sources around got it to emit a call to the library function (all other options being the same).