> 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.

-- 
Regards
 Robin

Reply via email to