https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113035
Jovan Vukic <jovan.vu...@rt-rk.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |jovan.vu...@rt-rk.com --- Comment #5 from Jovan Vukic <jovan.vu...@rt-rk.com> --- Since we have many zicond tests failing here for the sifive-7-series (currently 275 FAILs), I analyzed the issue this week. In short, in the function riscv_expand_conditional_move (from riscv.cc), the SFB is always preferred when both TARGET_SFB_ALU and TARGET_ZICOND_LIKE are set to 1. During the meeting this week, it was clarified to me that we generally steer towards zicond. A simple change in the riscv_expand_conditional_move function could help us achieve this here too and eliminate 120 FAILs. - if (TARGET_SFB_ALU || TARGET_XTHEADCONDMOV) + if ((TARGET_SFB_ALU || TARGET_XTHEADCONDMOV) + && (!TARGET_ZICOND_LIKE || (code != EQ && code != NE))) However, it was also noted that zicond + SFB cases are not currently that relevant. So, even though I initially thought about turning this into a patch, I assume it's better to leave this here as an observation.