https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110748
--- Comment #9 from Vineet Gupta <vineetg at gcc dot gnu.org> --- (In reply to Vineet Gupta from comment #8) > (In reply to Jeffrey A. Law from comment #5) > > I'd bet it's const_0_operand not allowing CONST_DOUBLE. > > Correct. > > > The question is what unintended side effects we'd have if we allowed > > CONST_DOUBLE 0.0 in const_0_operand. > > Exactly. I had the same concern. [...] > However to Kito's point, this indeed works in gcc 12 so I first need to > bisect what regressed it in 13. The mystery is solved. Guess what it was my change ef85d150b5963 ("RISC-V: Enable TARGET_SUPPORTS_WIDE_INT") in gcc-13 cycle which made the booboo. + * config/riscv/predicates.md (const_0_operand): Remove + const_double. And I don't recall why I did that part. But I guess reinstating it back won't be that radical, since it wa sin tree for a while. I'll throw it at full testsuite to see if there are any fallouts.