This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH, rtl-optimization]: Fix PR37997: ICE shifting byte to the right with constant > 7FFFFFFF


> By returning early, we miss conversion of VOIDmode const_ints. In
> attached test, we request QImode conversion of a big constant, and since
> OLDmode equals mode, we return the same RTL from convert_modes,
> resulting in:
>
> pr39779.c:8: error: unrecognizable insn:
> (insn 7 6 8 3 pr39779.c:6 (set (reg:QI 61)
>          (const_int -557921043 [0xffffffffdebecced])) -1 (nil))
> pr39779.c:8: internal compiler error: in extract_insn, at recog.c:2048

Then why old_mode is QImode if the constant is not valid for QImode?

> 2009-09-08  Uros Bizjak <ubizjak@gmail.com>
>
>      PR rtl-optimization/39779
>      * simplify-rtx.c (convert_modes): Return when mode == oldmode after
>      CONST_INTs are processed.

expr.c.

-- 
Eric Botcazou


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]