Files
avo/.github/workflows/packages.yml
Michael McLoughlin b76e849b5c all: AVX-512 (#217)
Extends avo to support most AVX-512 instruction sets.

The instruction type is extended to support suffixes. The K family of opmask
registers is added to the register package, and the operand package is updated
to support the new operand types. Move instruction deduction in `Load` and
`Store` is extended to support KMOV* and VMOV* forms.

Internal code generation packages were overhauled. Instruction database loading
required various messy changes to account for the additional complexities of the
AVX-512 instruction sets. The internal/api package was added to introduce a
separation between instruction forms in the database, and the functions avo
provides to create them. This was required since with instruction suffixes there
is no longer a one-to-one mapping between instruction constructors and opcodes.

AVX-512 bloated generated source code size substantially, initially increasing
compilation and CI test times to an unacceptable level. Two changes were made to
address this:

1.  Instruction constructors in the `x86` package moved to an optab-based
    approach. This compiles substantially faster than the verbose code
    generation we had before.

2.  The most verbose code-generated tests are moved under build tags and
    limited to a stress test mode. Stress test builds are run on
    schedule but not in regular CI.

An example of AVX-512 accelerated 16-lane MD5 is provided to demonstrate and
test the new functionality.

Updates #20 #163 #229

Co-authored-by: Vaughn Iverson <vsivsi@yahoo.com>
2021-11-12 19:02:39 -08:00

771 lines
29 KiB
YAML

# Code generated by make_workflow.go. DO NOT EDIT.
name: packages
permissions:
contents: read
on:
push:
branches:
- master
pull_request:
jobs:
zeebo-xxh3:
runs-on: ubuntu-latest
steps:
- name: Install Go
uses: actions/setup-go@37335c7bb261b353407cff977110895fa0b4f7d8 # v2.1.3
with:
go-version: 1.17.x
- name: Checkout avo
uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f # v2.3.4
with:
path: avo
persist-credentials: false
- name: Checkout zeebo/xxh3
uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f # v2.3.4
with:
repository: zeebo/xxh3
ref: v1.0.0-rc1
path: xxh3
persist-credentials: false
- name: Avo Module Replacement
working-directory: xxh3/avo
run: |
go mod edit -modfile=go.mod -require=github.com/mmcloughlin/avo@v0.0.0-00010101000000-000000000000
go mod edit -modfile=go.mod -replace=github.com/mmcloughlin/avo=${{ github.workspace }}/avo
go mod tidy -modfile=go.mod
- name: Generate
working-directory: xxh3/avo
run: |
go run . -avx -out ../accum_vector_avx_amd64.s
go run . -sse -out ../accum_vector_sse_amd64.s
- name: Diff
working-directory: xxh3
run: git diff
- name: Test
working-directory: xxh3
run: go test ./...
dgryski-go-sip13:
runs-on: ubuntu-latest
steps:
- name: Install Go
uses: actions/setup-go@37335c7bb261b353407cff977110895fa0b4f7d8 # v2.1.3
with:
go-version: 1.17.x
- name: Checkout avo
uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f # v2.3.4
with:
path: avo
persist-credentials: false
- name: Checkout dgryski/go-sip13
uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f # v2.3.4
with:
repository: dgryski/go-sip13
ref: 62edffca92457b3a66125c686137cc5f0fe81672
path: go-sip13
persist-credentials: false
- name: Setup Root Module
working-directory: go-sip13
run: go mod init github.com/dgryski/go-sip13
- name: Setup Generator Module
working-directory: go-sip13/_avo
run: |
sed -i.bak '/+build ignore/d' asm.go
go mod init github.com/dgryski/go-sip13/_avo
- name: Avo Module Replacement
working-directory: go-sip13/_avo
run: |
go mod edit -modfile=go.mod -require=github.com/mmcloughlin/avo@v0.0.0-00010101000000-000000000000
go mod edit -modfile=go.mod -replace=github.com/mmcloughlin/avo=${{ github.workspace }}/avo
go mod tidy -modfile=go.mod
- name: Generate
working-directory: go-sip13/_avo
run: |
go mod edit -modfile=go.mod -require=github.com/dgryski/go-sip13@v0.0.0-00010101000000-000000000000
go mod edit -modfile=go.mod -replace=github.com/dgryski/go-sip13=../
go run . -out ../sip13_amd64.s
- name: Diff
working-directory: go-sip13
run: git diff
- name: Test
working-directory: go-sip13
run: go test ./...
phoreproject-bls:
runs-on: ubuntu-latest
steps:
- name: Install Go
uses: actions/setup-go@37335c7bb261b353407cff977110895fa0b4f7d8 # v2.1.3
with:
go-version: 1.17.x
- name: Checkout avo
uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f # v2.3.4
with:
path: avo
persist-credentials: false
- name: Checkout phoreproject/bls
uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f # v2.3.4
with:
repository: phoreproject/bls
ref: a88a5ae26844d7293359422888d7c7f69f43c845
path: bls
persist-credentials: false
- name: Setup Root Module
working-directory: bls
run: go mod tidy
- name: Setup Generator Module
working-directory: bls/asm
run: |
sed -i.bak '/+build ignore/d' asm.go
go mod init github.com/phoreproject/bls/asm
- name: Avo Module Replacement
working-directory: bls/asm
run: |
go mod edit -modfile=go.mod -require=github.com/mmcloughlin/avo@v0.0.0-00010101000000-000000000000
go mod edit -modfile=go.mod -replace=github.com/mmcloughlin/avo=${{ github.workspace }}/avo
go mod tidy -modfile=go.mod
- name: Generate
working-directory: bls/asm
run: |
go mod edit -modfile=go.mod -require=github.com/phoreproject/bls@v0.0.0-00010101000000-000000000000
go mod edit -modfile=go.mod -replace=github.com/phoreproject/bls=../
go mod download
go run . -out ../primitivefuncs_amd64.s
- name: Diff
working-directory: bls
run: git diff
- name: Test
working-directory: bls
run: go test ./...
minio-md5-simd:
runs-on: ubuntu-latest
steps:
- name: Install Go
uses: actions/setup-go@37335c7bb261b353407cff977110895fa0b4f7d8 # v2.1.3
with:
go-version: 1.17.x
- name: Checkout avo
uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f # v2.3.4
with:
path: avo
persist-credentials: false
- name: Checkout minio/md5-simd
uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f # v2.3.4
with:
repository: minio/md5-simd
ref: 30ad8af83f6868c2a30c615f3edf1a9366bf3f89
path: md5-simd
persist-credentials: false
- name: Avo Module Replacement
working-directory: md5-simd/_gen
run: |
go mod edit -modfile=go.mod -require=github.com/mmcloughlin/avo@v0.0.0-00010101000000-000000000000
go mod edit -modfile=go.mod -replace=github.com/mmcloughlin/avo=${{ github.workspace }}/avo
go mod tidy -modfile=go.mod
- name: Generate
working-directory: md5-simd/_gen
run: go run gen.go -out ../md5block_amd64.s -stubs ../md5block_amd64.go -pkg md5simd
- name: Diff
working-directory: md5-simd
run: git diff
- name: Test
working-directory: md5-simd
run: go test ./...
zeebo-blake3:
runs-on: ubuntu-latest
steps:
- name: Install Go
uses: actions/setup-go@37335c7bb261b353407cff977110895fa0b4f7d8 # v2.1.3
with:
go-version: 1.17.x
- name: Checkout avo
uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f # v2.3.4
with:
path: avo
persist-credentials: false
- name: Checkout zeebo/blake3
uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f # v2.3.4
with:
repository: zeebo/blake3
ref: 25dba572f0e78ec108f0dd79c9c15288f542d7d9
path: blake3
persist-credentials: false
- name: Avo Module Replacement
working-directory: blake3/avo
run: |
go mod edit -modfile=go.mod -require=github.com/mmcloughlin/avo@v0.0.0-00010101000000-000000000000
go mod edit -modfile=go.mod -replace=github.com/mmcloughlin/avo=${{ github.workspace }}/avo
go mod tidy -modfile=go.mod
- name: Generate
working-directory: blake3/avo
run: |
go run ./avx2 -out ../avx2/impl.s
go run ./sse41 -out ../sse41/impl.s
- name: Diff
working-directory: blake3
run: git diff
- name: Test
working-directory: blake3
run: go test ./...
klauspost-reedsolomon:
runs-on: ubuntu-latest
steps:
- name: Install Go
uses: actions/setup-go@37335c7bb261b353407cff977110895fa0b4f7d8 # v2.1.3
with:
go-version: 1.17.x
- name: Checkout avo
uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f # v2.3.4
with:
path: avo
persist-credentials: false
- name: Checkout klauspost/reedsolomon
uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f # v2.3.4
with:
repository: klauspost/reedsolomon
ref: 922778284547557265cff0f903ab5f4c27e40ae9
path: reedsolomon
persist-credentials: false
- name: Avo Module Replacement
working-directory: reedsolomon/_gen
run: |
go mod edit -modfile=go.mod -require=github.com/mmcloughlin/avo@v0.0.0-00010101000000-000000000000
go mod edit -modfile=go.mod -replace=github.com/mmcloughlin/avo=${{ github.workspace }}/avo
go mod tidy -modfile=go.mod
- name: Generate
working-directory: reedsolomon/_gen
run: go run gen.go -out ../galois_gen_amd64.s -stubs ../galois_gen_amd64.go -pkg reedsolomon
- name: Diff
working-directory: reedsolomon
run: git diff
- name: Test
working-directory: reedsolomon
run: go test ./...
orisano-wyhash:
runs-on: ubuntu-latest
steps:
- name: Install Go
uses: actions/setup-go@37335c7bb261b353407cff977110895fa0b4f7d8 # v2.1.3
with:
go-version: 1.17.x
- name: Checkout avo
uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f # v2.3.4
with:
path: avo
persist-credentials: false
- name: Checkout orisano/wyhash
uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f # v2.3.4
with:
repository: orisano/wyhash
ref: 32a3f7f6ba4797e2d87dab2969cc9dd63d39cce9
path: wyhash
persist-credentials: false
- name: Setup Generator Module
working-directory: wyhash/avo
run: go mod init github.com/orisano/wyhash/avo
- name: Avo Module Replacement
working-directory: wyhash/avo
run: |
go mod edit -modfile=go.mod -require=github.com/mmcloughlin/avo@v0.0.0-00010101000000-000000000000
go mod edit -modfile=go.mod -replace=github.com/mmcloughlin/avo=${{ github.workspace }}/avo
go mod tidy -modfile=go.mod
- name: Generate
working-directory: wyhash/avo
run: go run gen.go -out ../blocks_amd64.s -stubs ../blocks_amd64.go -pkg wyhash
- name: Diff
working-directory: wyhash
run: git diff
- name: Test
working-directory: wyhash
run: go test ./...
klauspost-compress-s2:
runs-on: ubuntu-latest
steps:
- name: Install Go
uses: actions/setup-go@37335c7bb261b353407cff977110895fa0b4f7d8 # v2.1.3
with:
go-version: 1.17.x
- name: Checkout avo
uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f # v2.3.4
with:
path: avo
persist-credentials: false
- name: Checkout klauspost/compress
uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f # v2.3.4
with:
repository: klauspost/compress
ref: 2adf487b3e02f95ce7efd6e4953fda0ae7ecd080
path: compress
persist-credentials: false
- name: Avo Module Replacement
working-directory: compress/s2/_generate
run: |
go mod edit -modfile=go.mod -require=github.com/mmcloughlin/avo@v0.0.0-00010101000000-000000000000
go mod edit -modfile=go.mod -replace=github.com/mmcloughlin/avo=${{ github.workspace }}/avo
go mod tidy -modfile=go.mod
- name: Generate
working-directory: compress/s2/_generate
run: go run gen.go -out ../encodeblock_amd64.s -stubs ../encodeblock_amd64.go -pkg s2
- name: Diff
working-directory: compress/s2
run: git diff
- name: Test
working-directory: compress/s2
run: go test ./...
dgryski-go-bloomindex:
runs-on: ubuntu-latest
steps:
- name: Install Go
uses: actions/setup-go@37335c7bb261b353407cff977110895fa0b4f7d8 # v2.1.3
with:
go-version: 1.17.x
- name: Checkout avo
uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f # v2.3.4
with:
path: avo
persist-credentials: false
- name: Checkout dgryski/go-bloomindex
uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f # v2.3.4
with:
repository: dgryski/go-bloomindex
ref: 0902316dce158c154b958ee5cfc706c62af29a42
path: go-bloomindex
persist-credentials: false
- name: Setup Root Module
working-directory: go-bloomindex
run: |
go mod init github.com/dgryski/go-bloomindex
go get github.com/dgryski/go-bits@v0.0.0-20180113010104-bd8a69a71dc2
- name: Create Generator Module
working-directory: go-bloomindex
run: |
mkdir avo
git mv asm.go avo
- name: Setup Generator Module
working-directory: go-bloomindex/avo
run: |
sed -i.bak '/+build ignore/d' asm.go
go mod init github.com/dgryski/go-bloomindex/avo
- name: Avo Module Replacement
working-directory: go-bloomindex/avo
run: |
go mod edit -modfile=go.mod -require=github.com/mmcloughlin/avo@v0.0.0-00010101000000-000000000000
go mod edit -modfile=go.mod -replace=github.com/mmcloughlin/avo=${{ github.workspace }}/avo
go mod tidy -modfile=go.mod
- name: Generate
working-directory: go-bloomindex/avo
run: go run asm.go -out ../query_amd64.s
- name: Diff
working-directory: go-bloomindex
run: git diff
- name: Test
working-directory: go-bloomindex
run: go test ./...
dgryski-go-marvin32:
runs-on: ubuntu-latest
steps:
- name: Install Go
uses: actions/setup-go@37335c7bb261b353407cff977110895fa0b4f7d8 # v2.1.3
with:
go-version: 1.17.x
- name: Checkout avo
uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f # v2.3.4
with:
path: avo
persist-credentials: false
- name: Checkout dgryski/go-marvin32
uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f # v2.3.4
with:
repository: dgryski/go-marvin32
ref: 7d18f4c6ea7c24b29d1c7a670f8ae40b0812f2e3
path: go-marvin32
persist-credentials: false
- name: Setup Root Module
working-directory: go-marvin32
run: go mod init github.com/dgryski/go-marvin32
- name: Create Generator Module
working-directory: go-marvin32
run: |
mkdir avo
git mv asm.go avo
- name: Setup Generator Module
working-directory: go-marvin32/avo
run: |
sed -i.bak '/+build ignore/d' asm.go
go mod init github.com/dgryski/go-marvin32/avo
- name: Avo Module Replacement
working-directory: go-marvin32/avo
run: |
go mod edit -modfile=go.mod -require=github.com/mmcloughlin/avo@v0.0.0-00010101000000-000000000000
go mod edit -modfile=go.mod -replace=github.com/mmcloughlin/avo=${{ github.workspace }}/avo
go mod tidy -modfile=go.mod
- name: Generate
working-directory: go-marvin32/avo
run: |
go mod edit -modfile=go.mod -require=github.com/dgryski/go-marvin32@v0.0.0-00010101000000-000000000000
go mod edit -modfile=go.mod -replace=github.com/dgryski/go-marvin32=../
go run asm.go -out ../marvin_amd64.s
- name: Diff
working-directory: go-marvin32
run: git diff
- name: Test
working-directory: go-marvin32
run: go test ./...
dgryski-go-speck:
runs-on: ubuntu-latest
steps:
- name: Install Go
uses: actions/setup-go@37335c7bb261b353407cff977110895fa0b4f7d8 # v2.1.3
with:
go-version: 1.17.x
- name: Checkout avo
uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f # v2.3.4
with:
path: avo
persist-credentials: false
- name: Checkout dgryski/go-speck
uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f # v2.3.4
with:
repository: dgryski/go-speck
ref: 5b36d4c08d8840c352a153bf37281434ad550ec0
path: go-speck
persist-credentials: false
- name: Setup Root Module
working-directory: go-speck
run: |
go mod init github.com/dgryski/go-speck
go get github.com/dgryski/go-skipjack@v0.0.0-20150401095227-f3a984a142ab
- name: Create Generator Module
working-directory: go-speck
run: |
mkdir avo
git mv asm.go avo
- name: Setup Generator Module
working-directory: go-speck/avo
run: |
sed -i.bak '/+build ignore/d' asm.go
go mod init github.com/dgryski/go-speck/avo
- name: Avo Module Replacement
working-directory: go-speck/avo
run: |
go mod edit -modfile=go.mod -require=github.com/mmcloughlin/avo@v0.0.0-00010101000000-000000000000
go mod edit -modfile=go.mod -replace=github.com/mmcloughlin/avo=${{ github.workspace }}/avo
go mod tidy -modfile=go.mod
- name: Generate
working-directory: go-speck/avo
run: |
go mod edit -modfile=go.mod -require=github.com/dgryski/go-speck@v0.0.0-00010101000000-000000000000
go mod edit -modfile=go.mod -replace=github.com/dgryski/go-speck=../
go run asm.go -out ../speck_amd64.s
- name: Diff
working-directory: go-speck
run: git diff
- name: Test
working-directory: go-speck
run: go test ./...
dgryski-go-chaskey:
runs-on: ubuntu-latest
steps:
- name: Install Go
uses: actions/setup-go@37335c7bb261b353407cff977110895fa0b4f7d8 # v2.1.3
with:
go-version: 1.17.x
- name: Checkout avo
uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f # v2.3.4
with:
path: avo
persist-credentials: false
- name: Checkout dgryski/go-chaskey
uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f # v2.3.4
with:
repository: dgryski/go-chaskey
ref: ba454392bc5ab6daae103e15147185f8f4a27dcc
path: go-chaskey
persist-credentials: false
- name: Setup Root Module
working-directory: go-chaskey
run: |
go mod init github.com/dgryski/go-chaskey
go get github.com/dchest/siphash@v1.2.2
- name: Create Generator Module
working-directory: go-chaskey
run: |
mkdir avo
git mv asm.go avo
- name: Setup Generator Module
working-directory: go-chaskey/avo
run: |
sed -i.bak '/+build ignore/d' asm.go
go mod init github.com/dgryski/go-chaskey/avo
- name: Avo Module Replacement
working-directory: go-chaskey/avo
run: |
go mod edit -modfile=go.mod -require=github.com/mmcloughlin/avo@v0.0.0-00010101000000-000000000000
go mod edit -modfile=go.mod -replace=github.com/mmcloughlin/avo=${{ github.workspace }}/avo
go mod tidy -modfile=go.mod
- name: Generate
working-directory: go-chaskey/avo
run: |
go mod edit -modfile=go.mod -require=github.com/dgryski/go-chaskey@v0.0.0-00010101000000-000000000000
go mod edit -modfile=go.mod -replace=github.com/dgryski/go-chaskey=../
go run asm.go -out ../core_amd64.s
- name: Diff
working-directory: go-chaskey
run: git diff
- name: Test
working-directory: go-chaskey
run: go test ./...
lukechampine-us-merkle-blake2b:
runs-on: ubuntu-latest
steps:
- name: Install Go
uses: actions/setup-go@37335c7bb261b353407cff977110895fa0b4f7d8 # v2.1.3
with:
go-version: 1.17.x
- name: Checkout avo
uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f # v2.3.4
with:
path: avo
persist-credentials: false
- name: Checkout lukechampine/us
uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f # v2.3.4
with:
repository: lukechampine/us
ref: dff56a80f83653cb14eeeb57ba6ba3c3e942c412
path: us
persist-credentials: false
- name: Create Generator Module
working-directory: us/merkle/blake2b
run: |
mkdir avo
git mv gen.go avo
- name: Setup Generator Module
working-directory: us/merkle/blake2b/avo
run: |
sed -i.bak '/+build ignore/d' gen.go
go mod init github.com/lukechampine/us/merkle/blake2b/avo
- name: Avo Module Replacement
working-directory: us/merkle/blake2b/avo
run: |
go mod edit -modfile=go.mod -require=github.com/mmcloughlin/avo@v0.0.0-00010101000000-000000000000
go mod edit -modfile=go.mod -replace=github.com/mmcloughlin/avo=${{ github.workspace }}/avo
go mod tidy -modfile=go.mod
- name: Generate
working-directory: us/merkle/blake2b/avo
run: go run gen.go -out ../blake2b_amd64.s
- name: Diff
working-directory: us/merkle/blake2b
run: git diff
- name: Test
working-directory: us/merkle/blake2b
run: go test ./...
segmentio-asm:
runs-on: ubuntu-latest
if: false # skip: https://github.com/mmcloughlin/avo/issues/229
steps:
- name: Install Go
uses: actions/setup-go@37335c7bb261b353407cff977110895fa0b4f7d8 # v2.1.3
with:
go-version: 1.17.x
- name: Checkout avo
uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f # v2.3.4
with:
path: avo
persist-credentials: false
- name: Checkout segmentio/asm
uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f # v2.3.4
with:
repository: segmentio/asm
ref: v1.0.0
path: asm
persist-credentials: false
- name: Avo Module Replacement
working-directory: asm/build
run: |
go mod edit -modfile=go.mod -require=github.com/mmcloughlin/avo@v0.0.0-00010101000000-000000000000
go mod edit -modfile=go.mod -replace=github.com/mmcloughlin/avo=${{ github.workspace }}/avo
go mod tidy -modfile=go.mod
- name: Generate
working-directory: asm
run: make --always-make build
- name: Diff
working-directory: asm
run: git diff
- name: Test
working-directory: asm
run: go test ./...
ericlagergren-lwcrypto-ascon:
runs-on: ubuntu-latest
steps:
- name: Install Go
uses: actions/setup-go@37335c7bb261b353407cff977110895fa0b4f7d8 # v2.1.3
with:
go-version: 1.17.x
- name: Checkout avo
uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f # v2.3.4
with:
path: avo
persist-credentials: false
- name: Checkout ericlagergren/lwcrypto
uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f # v2.3.4
with:
repository: ericlagergren/lwcrypto
ref: 0c42b05eddc34c58bf8e0cd4250c5cd2c256ea57
path: lwcrypto
persist-credentials: false
- name: Avo Module Replacement
working-directory: lwcrypto/ascon/asm
run: |
go mod edit -modfile=go.mod -require=github.com/mmcloughlin/avo@v0.0.0-00010101000000-000000000000
go mod edit -modfile=go.mod -replace=github.com/mmcloughlin/avo=${{ github.workspace }}/avo
go mod tidy -modfile=go.mod
- name: Generate
working-directory: lwcrypto/ascon/asm
run: |
go mod edit -require=github.com/ericlagergren/lwcrypto@v0.0.0-00010101000000-000000000000
go generate -v -x
- name: Diff
working-directory: lwcrypto/ascon
run: git diff
- name: Test
working-directory: lwcrypto/ascon
run: go test ./...
ericlagergren-lwcrypto-grain:
runs-on: ubuntu-latest
steps:
- name: Install Go
uses: actions/setup-go@37335c7bb261b353407cff977110895fa0b4f7d8 # v2.1.3
with:
go-version: 1.17.x
- name: Checkout avo
uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f # v2.3.4
with:
path: avo
persist-credentials: false
- name: Checkout ericlagergren/lwcrypto
uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f # v2.3.4
with:
repository: ericlagergren/lwcrypto
ref: 0c42b05eddc34c58bf8e0cd4250c5cd2c256ea57
path: lwcrypto
persist-credentials: false
- name: Avo Module Replacement
working-directory: lwcrypto/grain/asm
run: |
go mod edit -modfile=go.mod -require=github.com/mmcloughlin/avo@v0.0.0-00010101000000-000000000000
go mod edit -modfile=go.mod -replace=github.com/mmcloughlin/avo=${{ github.workspace }}/avo
go mod tidy -modfile=go.mod
- name: Generate
working-directory: lwcrypto/grain/asm
run: |
go mod edit -require=github.com/ericlagergren/lwcrypto@v0.0.0-00010101000000-000000000000
go generate -v -x
- name: Diff
working-directory: lwcrypto/grain
run: git diff
- name: Test
working-directory: lwcrypto/grain
run: go test ./...
oasisprotocol-curve25519-voi:
runs-on: ubuntu-latest
steps:
- name: Install Go
uses: actions/setup-go@37335c7bb261b353407cff977110895fa0b4f7d8 # v2.1.3
with:
go-version: 1.17.x
- name: Checkout avo
uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f # v2.3.4
with:
path: avo
persist-credentials: false
- name: Checkout oasisprotocol/curve25519-voi
uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f # v2.3.4
with:
repository: oasisprotocol/curve25519-voi
ref: d5a936accd94ef9da4c0fe9db0a6342dcdcfeadf
path: curve25519-voi
persist-credentials: false
- name: Avo Module Replacement
working-directory: curve25519-voi/internal/asm/amd64
run: |
go mod edit -modfile=go.mod -require=github.com/mmcloughlin/avo@v0.0.0-00010101000000-000000000000
go mod edit -modfile=go.mod -replace=github.com/mmcloughlin/avo=${{ github.workspace }}/avo
go mod tidy -modfile=go.mod
- name: Generate
working-directory: curve25519-voi/internal/asm/amd64
run: bash -ex gen.sh
- name: Diff
working-directory: curve25519-voi
run: git diff
- name: Test
working-directory: curve25519-voi
run: go test ./...
golang-crypto-curve25519:
runs-on: ubuntu-latest
steps:
- name: Install Go
uses: actions/setup-go@37335c7bb261b353407cff977110895fa0b4f7d8 # v2.1.3
with:
go-version: 1.17.x
- name: Checkout avo
uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f # v2.3.4
with:
path: avo
persist-credentials: false
- name: Checkout golang/crypto
uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f # v2.3.4
with:
repository: golang/crypto
ref: 089bfa5675191fd96a44247682f76ebca03d7916
path: crypto
persist-credentials: false
- name: Avo Module Replacement
working-directory: crypto/curve25519/internal/field/_asm
run: |
go mod edit -modfile=go.mod -require=github.com/mmcloughlin/avo@v0.0.0-00010101000000-000000000000
go mod edit -modfile=go.mod -replace=github.com/mmcloughlin/avo=${{ github.workspace }}/avo
go mod tidy -modfile=go.mod
- name: Generate
working-directory: crypto/curve25519/internal/field/_asm
run: go generate -v -x
- name: Diff
working-directory: crypto/curve25519
run: git diff
- name: Test
working-directory: crypto/curve25519
run: go test ./...
FiloSottile-edwards25519:
runs-on: ubuntu-latest
steps:
- name: Install Go
uses: actions/setup-go@37335c7bb261b353407cff977110895fa0b4f7d8 # v2.1.3
with:
go-version: 1.17.x
- name: Checkout avo
uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f # v2.3.4
with:
path: avo
persist-credentials: false
- name: Checkout FiloSottile/edwards25519
uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f # v2.3.4
with:
repository: FiloSottile/edwards25519
ref: v1.0.0-rc.1
path: edwards25519
persist-credentials: false
- name: Avo Module Replacement
working-directory: edwards25519/field/_asm
run: |
go mod edit -modfile=go.mod -require=github.com/mmcloughlin/avo@v0.0.0-00010101000000-000000000000
go mod edit -modfile=go.mod -replace=github.com/mmcloughlin/avo=${{ github.workspace }}/avo
go mod tidy -modfile=go.mod
- name: Generate
working-directory: edwards25519/field/_asm
run: go generate -v -x
- name: Diff
working-directory: edwards25519
run: git diff
- name: Test
working-directory: edwards25519
run: go test ./...