On 11/20/23 11:26, Richard Sandiford wrote: >> + >> + mask = GET_MODE_MASK (GET_MODE (SUBREG_REG (x))) << bit; >> + if (!mask) >> + mask = -0x100000000ULL; > > Not sure I follow this. What does the -0x100000000ULL constant indicate? > Also, isn't it the mask of the outer register that is shifted, rather > than the mask of the inner mode? E.g. if we have: Jeff Law: > Inherited. I should have marked it like the other one as needing > investigation. Probably the fastest way is to just rip it out for a > test to see what breaks.
This is for support of types wider than DImode. You unsupported tracking of these values in various places, though.