https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92140
--- Comment #10 from Uroš Bizjak <ubizjak at gmail dot com> --- (In reply to Jakub Jelinek from comment #9) > Created attachment 47065 [details] > gcc10-pr92140-wip.patch > > If pre-reload splitters are reliable, my patch can be greatly simplified and > using the formatting, && can_create_pseudos (), && 1 and <general_operand> + > force_reg ideas from your patch this is the merge of both, which can handle > all f1-f14 plus tst1-3. You can use define_special_predicate to check the mode of the operand inside relational operator. To avoid pattern explosion, maybe compound instructions should be synthesized by peephole pass. Regarding reliability of pre-reload splitters, IIRC they should be safe, but I'll leave the final verdict to RTL experts.