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.