Quoting Ian Lance Taylor <i...@google.com>:
That said, this is not a very interesting use of splits these days and it could probably be removed without doing any noticeable harm. These days most people just write the complex pattern using define_insn, and then write a define_split (or a define_insn_and_split) which splits up the insn just before register allocation or just before instruction scheduling.
Although such patterns are justified in some cases, adding them willy-nilly can make your port worse, if such patterns that need to be split into multiple insns are generated by rtl passes from simpler instructions to increase the total instruction count after splitting, or when they hide scheduling opportunities. combine-split patterns are still the pattern of choice when you want to prevent the whole pattern tfrom being considered a single instruction.