Martin Liška <mli...@suse.cz> writes: > Hi. > > There's a new patch that adds normal internal functions for the 4 > VCOND* functions. > > The patch that survives bootstrap and regression > tests on x86_64-linux-gnu and ppc64le-linux-gnu.
I think this has the same problem as the previous one. What I meant in yesterday's message is that: expand_insn (icode, 6, ops); is simply not valid when icode is allowed to FAIL. That's true in any context, not just internal functions. If icode does FAIL, the expand_insn call will ICE: if (!maybe_expand_insn (icode, nops, ops)) gcc_unreachable (); When using optabs you either: (a) declare that the md patterns aren't allowed to FAIL. expand_insn is for this case. (b) allow the md patterns to FAIL and provide a fallback when they do. maybe_expand_insn is for this case. So if we keep IFN_VCOND, we need to use maybe_expand_insn and find some way of implementing the IFN_VCOND when the pattern FAILs. Thanks, Richard