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

Andrew Pinski <pinskia at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Assignee|unassigned at gcc dot gnu.org      |pinskia at gcc dot 
gnu.org
             Status|NEW                         |ASSIGNED

--- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
894       return emit_store_flag (x, code, XEXP (cond, 0),
895                               XEXP (cond, 1), VOIDmode,
896                               (code == LTU || code == LEU
897                                || code == GEU || code == GTU), normalize);


x is:
(gdb) p debug_rtx(x)
(reg:XI 180)

cond is:
(gdb) p debug_rtx(cond)
(ge (reg/v:SI 106 [ BS_VAR_1 ])
    (const_int 0 [0]))


The problem is XImode is just not valid here.

890       /* Don't even try if the comparison operands or the mode of X are
weird.  */

We try to not do it for odd modes of X
So I think we should reject it for XImode too. That is modes which greater in
size than 2x the WORD_MODE.

So I will fix this.

Reply via email to