https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93453
--- Comment #3 from Segher Boessenkool <segher at gcc dot gnu.org> --- Splitters run after all RTL transforms, so anything that can be done on the split result has to be done manually. This does not scale. Splitters are not suitable for this kind of thing. You can do define_insns to recognise some special case rl*imi patterns we do not yet recognise.