"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
