Btw, the assembly code was quite terrible... Here is a new version of it
for people interested (feedback still welcomed):
TEXT ·AddVector16(SB),NOSPLIT,$0-48
MOVD $a+0(FP), R0
VLD1.P 32(R0), [V0.D2, V1.D2]
VADD V1.B16, V0.B16, V0.B16
MOVD $ret+32(FP), R0
VST1.P [V0.D2], (R0)
RET
TEXT ·AddVector3
That's what I thought. When I checked the assembly of a generic function I
could see the go.shape part and that's what made me think about
specialisation.
However, after trying to write that myself it just didn't compile.
I guess, I'll have to do lot of copy pasting ^^
On Wednesday, December 20
On Thu, Dec 14, 2023 at 10:43 PM Clément Jean
wrote:
> Hi,
>
> I'm currently learning how to write Go assembly on arm64 and I made the
> following functions:
>
> TEXT ·AddVector16(SB),NOSPLIT,$0-48
> MOVD a+0(FP), R0
> MOVD a+8(FP), R1
> MOVD a+16(FP), R2
> MOVD a+24(FP), R3
> VMOV R0, V0.D[0]
>