I have a function written on Go that I would like to optimize in assembly. I currently only want to write it for amd64 which is the most frequent target. Assembly for other targets may be added later. By default it should use the Go code.
Unfortunately I didn't manage to achieve this. Looking at the documentation I found online it seam that I have to declare an external function, and provide the assembly for every possible target.
I can provide a Go function with a different name, and then in the assembly code jump to it. This looks tedious and I can't ensure I have provided the assembly file for all possible targets.
Is there a way to provide a Go function, and an alternate version to use instead when compiling for particular targets (e.g. amd64) ?