On Wed, 19 Nov 2014, Jakub Jelinek wrote: > On Wed, Nov 19, 2014 at 12:59:06PM +0100, Richard Biener wrote: > > > So perhaps something like this? Don't know how much more inefficient it > > > is > > > compared to what it used to do before. > > > > Yes, that looks good. > > > > > Or just keep the existing code and just remove the assert and instead > > > return > > > NULL whenever outer_submode is wider than MAX_BITSIZE_MODE_ANY_INT? At > > > least during propagation that will make zero change. > > > Though, in that case I have still doubts about the current code handling > > > right > > > modes wider than HOST_BITS_PER_DOUBLE_INT but smaller than > > > MAX_BITSIZE_MODE_ANY_INT (none on i?86/x86_64). If > > > TARGET_SUPPORTS_WIDE_INT > > > == 0, we still silently throw away the upper bits, don't we? > > > > Well - not with your added check, no? > > For TARGET_SUPPORTS_WIDE_INT == 0 should be hopefully ok. Not sure > about TARGET_SUPPORTS_WIDE_INT != 0, can it express any generic_wide_int, or > is it still bound to wide_int (i.e. MAX_BITSIZE_MODE_ANY_INT rounded up) > precision? Mike?
It can represent any - well, the RTX at least. Code then using "simple" wide_int may wreck then though. Richard.