This should fix it. * combine.c (force_to_mode <NOT>): Use gen_int_mode.
Index: gcc/combine.c =================================================================== RCS file: /cvs/gcc/gcc/gcc/combine.c,v retrieving revision 1.347 diff -u -p -r1.347 combine.c --- gcc/combine.c 8 Mar 2003 01:38:25 -0000 1.347 +++ gcc/combine.c 14 Mar 2003 12:18:35 -0000 @@ -7358,7 +7358,8 @@ force_to_mode (x, mode, mask, reg, just_ < GET_MODE_BITSIZE (GET_MODE (x))) && INTVAL (XEXP (XEXP (x, 0), 1)) < HOST_BITS_PER_WIDE_INT) { - temp = GEN_INT (mask << INTVAL (XEXP (XEXP (x, 0), 1))); + temp = gen_int_mode (mask << INTVAL (XEXP (XEXP (x, 0), 1)), + GET_MODE (x)); temp = gen_binary (XOR, GET_MODE (x), XEXP (XEXP (x, 0), 0), temp); x = gen_binary (LSHIFTRT, GET_MODE (x), temp, XEXP (XEXP (x, 0), 1)); -- Alan Modra IBM OzLabs - Linux Technology Centre