https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78851
--- Comment #6 from Vadim Zeitlin <vz-gcc at zeitlins dot org> --- > One might complain that it only does this transformation when the second > argument is a constant, not for casts of integer variables to long double. Yes, in the light of new information, this is what this bug is really about: due to disabling the old overloads selecting __builtin_powil() explicitly, the results are now (i.e. with C++11) different when an integer constant and an integer variable containing the same value are used, whereas they were the same before. IMHO this is a regression, albeit a minor one, but I can understand if you decide it's not worth doing anything about it -- please just close this bug in this case. Thanks again for your explanations!