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? Jakub