On Fri, 18 Jun 2021 15:55:09 +0100 Andrew Stubbs <a...@codesourcery.com> wrote:
> On 18/06/2021 15:19, Julian Brown wrote: > > This patch improves 64-bit multiplication for AMD GCN: patterns for > > unsigned and signed 32x32->64 bit multiplication have been added, > > and also 64x64->64 bit multiplication is now open-coded rather than > > calling a library function (which may be a win for code size as > > well as speed: the function calling sequence isn't particularly > > concise for GCN). > > > > The <su>mulsi3_highpart pattern has also been extended for GCN5+, > > since that ISA version supports high-part result multiply > > instructions with SGPR operands. > > > > The DImode multiply implementation is lost from libgcc if we build > > it for DImode/TImode rather than SImode/DImode, a change we make in > > a later patch in this series. [snip] > Most of the rest of the backend expands 64-bit operations to 32-bit > pairs much later, using define_insn_and_split, because there were > lots of issues with splitting it early. I don't recall exactly what > right now, unfortunately. (It might have been related to spilling > only half the value to the stack?) It also makes it hard to debug, I > think. FTR, I followed up on this here: https://gcc.gnu.org/pipermail/gcc-patches/2021-June/573911.html Julian