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

--- Comment #36 from Richard Earnshaw <rearnsha at gcc dot gnu.org> ---
I've been looking at this.  I think the real problem is that trunc_int_for mode
is doing something incompatible with what the later code expects.  We have

  /* Canonicalize BImode to 0 and STORE_FLAG_VALUE.  */
  if (smode == BImode)
    return c & 1 ? STORE_FLAG_VALUE : 0;

But this doesn't handle other boolen modes, such as B2I or B4I.  This then
causes the assertion later on because we expect a bool value to be in a fixed
form.

Reply via email to