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.

Reply via email to