https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70299
--- Comment #2 from Jonathan Wakely <redi at gcc dot gnu.org> --- The difference is due to a change between C++03 and C++11, see http://cplusplus.github.io/LWG/lwg-defects.html#550, but I don't know why the calls to __builtin_powl and __builtin_powil should give different results.