https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94837
--- Comment #5 from Uroš Bizjak <ubizjak at gmail dot com> --- Probably some secondary effect of subregs on register allocation, changing "float" to "int" in the original testcase gets us expected alternative and optimal code using BSWAP.