https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112406

--- Comment #15 from Robin Dapp <rdapp at gcc dot gnu.org> ---
Hmm, that's definitely related to the original change but most likely not to
the fixes.

      gcc_assert (code == IFN_COND_ADD || code == IFN_COND_SUB
                  || code == IFN_COND_MUL || code == IFN_COND_AND
                  || code == IFN_COND_IOR || code == IFN_COND_XOR);
      gcc_assert (op.num_ops == 4 && (op.ops[1] == op.ops[3]));

The second assert fails and op.num_ops must be correct because of the first
assert.  Maybe, via LTO, we somehow propagate a constant into the else or so?
I just noticed that since we now have the internal_fn_else_index, we could use
this here as well for clarity.

Reply via email to