]> Cypherpunks repositories - gostls13.git/commit
crypto/internal/fips140/edwards25519/field: optimize AMD64
authorEgon Elbre <egonelbre@gmail.com>
Wed, 26 Feb 2025 12:21:20 +0000 (14:21 +0200)
committerGopher Robot <gobot@golang.org>
Wed, 26 Feb 2025 21:58:20 +0000 (13:58 -0800)
commit983e30bd3b78ca77a5028a94323c6da363358648
tree04e702e72fa7f0dfa24c2d9df9583de8c8a2752e
parent16959799bdbda1f1a8e719e23f4440c26318922f
crypto/internal/fips140/edwards25519/field: optimize AMD64

Replace constant multiplication with shift and adds,
this reduces pressure on multiplications, making things overall
faster.

goos: windows
goarch: amd64
pkg: crypto/internal/fips140/edwards25519/field
cpu: AMD Ryzen Threadripper 2950X 16-Core Processor
            │   v0.log~   │              v1.log~               │
            │   sec/op    │   sec/op     vs base               │
Add-32        4.768n ± 1%   4.763n ± 0%       ~ (p=0.683 n=20)
Multiply-32   20.93n ± 0%   19.48n ± 0%  -6.88% (p=0.000 n=20)
Square-32     15.88n ± 0%   15.00n ± 0%  -5.51% (p=0.000 n=20)
Invert-32     4.291µ ± 0%   4.072µ ± 0%  -5.10% (p=0.000 n=20)
Mult32-32     5.184n ± 0%   5.169n ± 0%  -0.30% (p=0.032 n=20)
Bytes-32      11.36n ± 0%   11.34n ± 0%       ~ (p=0.106 n=20)
geomean       27.15n        26.32n       -3.06%

Change-Id: I9c2f588fad29d89c3e6c712c092b32b66479f596
Reviewed-on: https://go-review.googlesource.com/c/go/+/652716
Reviewed-by: Filippo Valsorda <filippo@golang.org>
Reviewed-by: Junyang Shao <shaojunyang@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Commit-Queue: Junyang Shao <shaojunyang@google.com>
Reviewed-by: Michael Pratt <mpratt@google.com>
Auto-Submit: Filippo Valsorda <filippo@golang.org>
src/crypto/internal/fips140/edwards25519/field/_asm/fe_amd64_asm.go
src/crypto/internal/fips140/edwards25519/field/fe_amd64.s