https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103376
--- Comment #10 from Roger Sayle <roger at nextmovesoftware dot com> --- Many thanks to Jakub for the speedy fix (and Richard B for the speedy review), and my apologies for the inconvenience. As diagnosed by Jakub, I hadn't realized that the bswap pass was performing additional optimizations, and simplifying x op x as just x, doesn't work for plus and xor the same way as it does for ior. Thank you to Jakub again.