https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112935
--- Comment #1 from Xi Ruoyao <xry111 at gcc dot gnu.org> --- Note that for int t(int x, _Bool y) { return x * y; } even GCC 13 is generating the sub-optimal mul.w instruction. So perhaps this is just a target issue after all...