https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106586
--- Comment #8 from Andrew Pinski <pinskia at gcc dot gnu.org> --- (In reply to jiawei from comment #7) > I had roll back the RISC-V commit and found that this modification cause > this building failure. > > https://gcc.gnu.org/git/?p=gcc.git;a=blobdiff;f=gcc/config/riscv/riscv.h; > h=6f7f4d3fbdcfa6c8ca03604fbe5817aad6278e2e; > hp=5083a1c24b08233810dd3b2aa4278b3ef8a75791; > hb=4e72ccad80d69a76d149fba59603b8173fffe8fe; > hpb=d19b4342c19e5a7fd84888aa06ebc106438d0c46 > > But I am not sure what's wrong with it, any suggestions? Yes the problem is a bit complex, the problem is representation of INT_MIN is sign extended (always) and HOST_WIDE_INT is always 64bit. Anyways the fix is to improve the predicate to be correct and fix the constraints too. I am working towards that but I am doing some other cleanups along the way to the backend so the riscv backend looks more like a modern backend.