http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50762
Uros Bizjak <ubizjak at gmail dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |ebotcazou at gcc dot | |gnu.org --- Comment #12 from Uros Bizjak <ubizjak at gmail dot com> 2011-11-10 13:16:54 UTC --- This time we hit assert in simplify_rtx.c: case ZERO_EXTEND: /* When zero-extending a CONST_INT, we need to know its original mode. */ --> gcc_assert (op_mode != VOIDmode); if (op_width == HOST_BITS_PER_WIDE_INT) { /* If we were really extending the mode, we would have to distinguish between zero-extension and sign-extension. */ gcc_assert (width == op_width); val = arg0; } But ... CONST_INTs do not have mode. A couple of lines below, CONST_INTs can be sign_extended, but not zero_extended here... Let's ask some people that know this part of the compiler.