On Wed, May 28, 2025 at 8:03 PM yunzezhu <yunze...@linux.alibaba.com> wrote: > > > I thought this issue should be fixed when we implement those > > implication rules correctly? Does march=rv32imaf_zca/mabi=ilp32 still > > not able select march=rv32imac/mabi=ilp32 still happen after this[1] > > patch? > > > > [1] > > https://github.com/gcc-mirror/gcc/commit/42ce61eaefc4db70e2e7ea2d8ef091daa458eb48 > > Yes, march=rv32imaf_zca/mabi=ilp32 still not able to select > march=rv32imac/mabi=ilp32. > In my opinion that in order to imply C from zca and f ext, the arch must > contain zcf, because C+F is equivalent to F+Zca+Zcf and vice versa. The arch > rv32imaf_zca contains F and zca but no zcf so we cannot imply C and therefore > multilb rv32imac/mabi=ilp32 cannot be selected.
But rv32imaf_zca means we don't have zcf, so it can not select rv32imac, otherwise that means the final binary will have zcf instruction and that won't be able to run on env that only have rv32imaf_zca.