This is the mail archive of the gcc-bugs@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: c/10083: alpha: ICE while building swi-prolog-packages


Falk Hueffner <falk dot hueffner at student dot uni-tuebingen dot de> writes:

> a slightly smaller test case is:
> 
> static unsigned long getTimeEvent(unsigned long time)
> {
>     return time % ((1UL << 62) - 1);
> }

The problem is that expand_divmod generates a zero extension of a
constant, which is VOIDmode:

(insn 11 10 12
      (nil)
      (set (reg:DI 72)
	   (truncate:DI (lshiftrt:TI (mult:TI (zero_extend:TI (reg/v:DI 70 [time]))
					      (zero_extend:TI (const_int 65 [0x41])))
				     (const_int 64 [0x40])))) -1 (nil)
				     (nil))

Should expand_divmod not generate this, or should
simplify_unary_operation be able to handle it?

-- 
	Falk


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