https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104140
--- Comment #3 from Roger Sayle <roger at nextmovesoftware dot com> --- Sorry for the noise, but interestingly riscv.md also defines a usmulsi3_highpart instruction, providing highpart multiplication with different operand signedness. So in theory an alternate fix might be to allow/support this in MULT_HIGHPART_EXPR (like in WIDEN_MULT_EXPR). Perhaps a simple fix for GCC 12, and a more intrusive solution (providing improved riscv support) for GCC 13, once we return to stage 1.