Andrew Stubbs <a...@codesourcery.com> writes: > Hi all, > > I'm in the process of trying to update our AMD GCN port from GCC 7 to > GCC 8+, but I've hit a problem ... > > It seems there's a new assumption that pointers and addresses will be > scalar, but GCN load instructions require vectors of pointers. > Basically, machine_mode has been replaced with scalar_int_machine mode > in many places, and we were relying on vector modes being allowed. > > The changes are all coming from the Richard Sandiford's SVE patches.
FWIW, I think that assumption was always there. The scalar_int_mode patches just made it more explicit (as in, more code would fail to build if it wasn't honoured, rather than just potentially ICEing). Is this mostly about the RTL level concept of an address or pointer? If so, in what situations do you need the address or pointer itself to be a vector? SVE and AVX use unspecs for gathers and scatters, and I don't think in practice we lose anything by doing that. Thanks, Richard