Commit Graph

12 Commits

Author SHA1 Message Date
cadobot[bot]
5106a440e1 all: upgrade direct dependencies (#293)
Co-authored-by: {{ steps.bot.outputs.login }} <104697117+cadobot[bot]@users.noreply.github.com>
2022-05-09 05:34:43 +00:00
cadobot[bot]
e24610de56 all: upgrade direct dependencies (#278)
Co-authored-by: mmcloughlin <mmcloughlin@users.noreply.github.com>
2022-05-01 21:55:52 +00:00
Michael McLoughlin
3066c12247 go.mod: require go 1.16 (#250) 2022-04-17 19:18:59 -07:00
Michael McLoughlin
a1840163c8 all: upgrade direct dependencies (#244) 2022-04-10 22:45:00 -07:00
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
Michael McLoughlin
e70c62b254 all: upgrade direct dependencies (#213) 2021-10-30 12:07:23 -07:00
Michael McLoughlin
3f5da8f6e4 all: upgrade direct dependencies (#172) 2021-04-06 23:24:52 -07:00
Michael McLoughlin
8f3c4ea0bf examples: cpu feature checks (#171)
Add necessary feature checks to the dot and geohash examples to prevent illegal instruction errors.

Fixes #170 #153
2021-04-06 22:24:58 -07:00
Michael McLoughlin
5d2f697d26 all: upgrade dependencies (#159)
Upgrade dependencies with:

go get -u ./...
go mod tidy
2020-11-04 23:48:41 -08:00
Michael McLoughlin
f891fe8d97 ci: test on go 1.14 (#138)
Add go 1.14 to CI testing. Upgrade golang.org/x/tools dependency to resolve golang/go#37617.
2020-04-25 01:27:57 -07:00
Michael McLoughlin
0bcbe82731 ci: fix build for go 1.13 (#96)
Updates modules handling so build passes in Go 1.13. Bypasses modules for tools install in bootstrap. Upgrades golangci-lint version to avoid bug with v1.17.1 under Go 1.13.

Fixes #95
2019-09-15 14:43:44 -07:00
Michael McLoughlin
80a1adc4bb meta: initialize go modules
Updates #21
2019-01-06 18:58:30 -08:00