https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91940
--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> ---
Another option is to elide the promotion?
int foo (unsigned short x)
{
return __builtin_bswap16 (x);
}
return (int) __builtin_bswap16 ((int) x);
but BUILT_IN_BSWAP16 is BT_FN_UINT16_UINT16, not sure why there's
a truncation missing?! Is that the frontend "promote according to ABI"
thing? Yeah, I guess so :/
