Hi all,
I want amdgcn to be able to support int128 types, partly because they
might come up in code offloaded from x86_64 code, and partly because
libgomp now requires at least some support (amdgcn builds have been
failing since yesterday).
But, amdgcn has 32-bit registers, and therefore defines BITS_PER_WORD to
32, which means that TImode doesn't Just Work, at least not for all
operators. It already has TImode moves, for internal uses, so I can
enable TImode and fix the libgomp build, but now libgfortran tries to
use operators that don't exist, so I'm no better off.
The expand pass won't emit libgcc calls, like it does for DImode, and
libgcc doesn't have the routines for it anyway. Neither does it support
synthesized shifts or rotates for more than double-word types.
(Multiple-word add and subtract appear to work fine, however.)
What would be the best (least effort) way to implement this?
I think I need shift, rotate, multiply, divide, and modulus, but there's
probably more.
Thanks, any advise will be appreciated.
Andrew