https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104345
--- Comment #8 from Thomas Schwinge <tschwinge at gcc dot gnu.org> --- Well. Here's another problem. Re-testing things using a "bad" '__muldc3' from a build with your three patches applied, I notice that my '_muldc3-WIP.o' "old"/replacement code uses a 'set.u32.leu.f64', 'neg.s32', 'mov.u32' sequence. That works. However, if I replace that with a localized (its own '.reg .pred %r138_;') 'setp.leu.f64', 'selp.u32' sequence (as per your code generation changes), then it doesn't in fact work! Huh. Will later continue looking into this.