https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63259
thopre01 at gcc dot gnu.org changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |ASSIGNED --- Comment #3 from thopre01 at gcc dot gnu.org --- The reason is that the last gimple statement of this bswap is a rotation right on the result of a bitwise OR. Right now bswap are searched only from bitwise OR statement doing recursion until the source. Therefore the analysis is only done on a subset of the statements making up this bswap. The fix is easy but needs compilation benchmarking to make sure this doesn't increase the cost of compiling in a noticeable way. The more statement are considered as finishing a bswap, the closer we are to a O(n²) algorithm.