On 05/31/2016 04:26 PM, Kyrill Tkachov wrote:
we're talking about (subreg:V2DI (reg/v:EI 111 [ b ]) 0). EImode is a 24 byte arm-specific integer mode used to represent 3 D-registers.
[...]
I'm not familiar with the processes in that part of the code but my suspicion is that we should be rejecting that invalid subreg somewhere and this patch does that in subreg_get_info a few lines before the triggering assert. It rejects the subreg by setting info->representable_p to false.
Is this the right way to go around fixing this?
I'm slightly uncertain, but I can't really see anything wrong with this approach. So, OK. There are things that could be cleaned up here, moving the duplicated !rknown tests to the outer if and maybe the declarations of regsize_[xy]mode into the if, but that's not something you have to do if you don't want to.
Bernd