"Robin Dapp" <[email protected]> writes:
>> Then there's the question of what to do on targets with (say) three
>> different REGMODE_NATURAL_SIZE values.  All three could even come into
>> play in a single move (the move mode and the two subreg modes).
>>
>> So it just seems simpler to say that the target must provide integer
>> moves up to the minimum of:
>>
>> - MAX_FIXED_MODE_SIZE
>> - the largest REGMODE_NATURAL_SIZE
>
> Ok, let's go with the simpler variant then.  I am observing OImode 
> subregs on riscv, even though our MAX_FIXED_MODE_SIZE is TImode.
>
> In that testcase there is:
>
>  typedef unsigned __int128 v2ti __attribute__ ((vector_size (32)));
>
> We do define OImode as a mode but never adjusted MAX_FIXED_MODE_SIZE 
> because we don't actually like that mode :)  I guess that constitutes 
> either a target bug or a middle-end path that didn't query 
> MAX_FIXED_MODE_SIZE but I haven't checked.

Could be, but even if it's not: OImode is easy.  We can just split into
TImode bits and those would work.  Target-independent code doesn't have
the quandry that it had with TImode.

Richard

Reply via email to