Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

all: avx-512 #163

Closed
wants to merge 58 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
58 commits
Select commit Hold shift + click to select a range
5e76059
Added support for AVX512 opmask registers (K0-K7)
vsivsi Dec 18, 2020
b6cb172
add flags to Form type
mmcloughlin Dec 28, 2020
b9e8f63
process avx-512 features in opcodes
mmcloughlin Dec 29, 2020
7efa0e7
make asmtest error on unsupported operands
mmcloughlin Dec 29, 2020
49a5296
more operand types in asmtest
mmcloughlin Dec 29, 2020
1898a89
wip: loading avx512 instructions
mmcloughlin Dec 29, 2020
65610f1
asmtest passes
mmcloughlin Dec 29, 2020
c9441d8
internal/inst: avx-512 sanity checks
mmcloughlin Dec 29, 2020
e31cc51
internal/inst,internal/gen: supported suffixes
mmcloughlin Dec 29, 2020
e083418
missing cite reference
mmcloughlin Dec 29, 2020
793d51a
internal/gen: extend ctorstest
mmcloughlin Dec 30, 2020
316c567
full code generation working again
mmcloughlin Dec 30, 2020
5d99c01
internal/api: new package
mmcloughlin Dec 31, 2020
b6e2886
internal/api: introduce Function type
mmcloughlin Dec 31, 2020
1513342
internal/gen: refactor to use api types
mmcloughlin Dec 31, 2020
191bfc9
regenerate
mmcloughlin Dec 31, 2020
fb1d3e9
internal/api: one function per suffix
mmcloughlin Dec 31, 2020
1f86022
ir: add suffixes to instruction type
mmcloughlin Dec 31, 2020
ebe0387
internal/gen: update ctorstest
mmcloughlin Dec 31, 2020
f3cc3a9
reg,build: rename opmask types
mmcloughlin Dec 31, 2020
6b8794c
test: zeroing test work-in-progress
mmcloughlin Jan 1, 2021
a2512b3
tests: zeroing test
mmcloughlin Jan 1, 2021
90d6157
x86: test cases for zeroing/merging masking
mmcloughlin Jan 2, 2021
8879773
internal/inst: handle merging/zeroing modes
mmcloughlin Jan 2, 2021
1c6bf6d
internal/gen: include suffixes in documentation
mmcloughlin Jan 2, 2021
befa53a
printer: opcode suffix test
mmcloughlin Jan 2, 2021
16f01c8
internal/api: test for duplicate form signatures
mmcloughlin Jan 2, 2021
07abde8
x86: test for correct isa selection
mmcloughlin Jan 2, 2021
25a4e09
internal/api: improve test output
mmcloughlin Jan 2, 2021
1dcc6bb
all: enable AVX512CD
mmcloughlin Jan 2, 2021
c255836
all: enable AVX512VL
mmcloughlin Jan 2, 2021
c52eea3
all: resolve VEX/EVEX forms
mmcloughlin Jan 3, 2021
79ae7d2
all: enable AVX512BW
mmcloughlin Jan 3, 2021
28fbb57
all: enable AVX512DQ
mmcloughlin Jan 3, 2021
b1e9431
all: enable AVX512ER
mmcloughlin Jan 3, 2021
4b190bd
all: enable AVX512IFMA
mmcloughlin Jan 3, 2021
6e56a2a
internal/load: exclude AVX512PF
mmcloughlin Jan 3, 2021
98729f8
all: enable AVX512VBMI
mmcloughlin Jan 3, 2021
3b28727
all: enable AVX512VPOPCNTDQ
mmcloughlin Jan 3, 2021
2f62ccc
all: lint
mmcloughlin Jan 3, 2021
5cf0fa1
internal/gen: reduce duplication in ctors file
mmcloughlin Jan 3, 2021
8f6d0fb
internal/load: refactor avx512 forms
mmcloughlin Jan 3, 2021
0e90d58
internal: remove inst.M, make tests pass
mmcloughlin Jan 3, 2021
d44204e
all: regenerate
mmcloughlin Jan 4, 2021
a892056
operand: remove BCST type checks
mmcloughlin Jan 4, 2021
accbce7
internal/gen: remove bcst types
mmcloughlin Jan 4, 2021
c1b7ce7
internal/gen: fix whitespace lint
mmcloughlin Jan 4, 2021
6475036
internal/gen: variables for instruction arguments
mmcloughlin Jan 11, 2021
80a4303
internal/gen: ctors benchmark
mmcloughlin Jan 11, 2021
4247309
internal/gen: extend constructor test
mmcloughlin Jan 16, 2021
ce5ec5f
internal/gen,x86: opcodes enum
mmcloughlin Jan 17, 2021
78a4f5c
internal/gen,x86: operand types enum
mmcloughlin Jan 17, 2021
e882595
internal/gen,x86: implicit register enum
mmcloughlin Jan 18, 2021
d818c7d
internal/gen,x86: optab types, arity, suffixes
mmcloughlin Jan 18, 2021
1cfad3a
x86: operand type matcher
mmcloughlin Jan 18, 2021
21ed407
x86,internal/gen: generate forms list
mmcloughlin Jan 19, 2021
d270957
x86: isas in optab
mmcloughlin Jan 20, 2021
d60cc02
internal/inst: suffix classes
mmcloughlin Jan 20, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 17 additions & 12 deletions .golangci.yml
Original file line number Diff line number Diff line change
@@ -1,17 +1,20 @@
run:
timeout: 10m

linters:
enable-all: true
disable:
- funlen
- maligned
- lll
- gosec
- prealloc
- unparam
- gochecknoglobals
- gochecknoinits
- gomnd
- wsl
- godox
- funlen
- maligned
- lll
- gosec
- prealloc
- unparam
- gochecknoglobals
- gochecknoinits
- gomnd
- wsl
- godox

linters-settings:
depguard:
Expand All @@ -26,4 +29,6 @@ issues:
# errcheck: Almost all programs ignore errors on these functions and in most cases it's ok
- Error return value of .((os\.)?std(out|err)\..*|.*Close|.*Flush|os\.Remove(All)?|.*printf?|os\.(Un)?Setenv). is not checked
# gocritic: https://github.com/go-critic/go-critic/issues/762
- ' with `(len|cap|real|imag)`'
- " with `(len|cap|real|imag)`"
# We want to allow all caps in certain cases.
- "ALL_CAPS in Go names"
3 changes: 3 additions & 0 deletions build/global.go
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,9 @@ func YMM() reg.VecVirtual { return ctx.YMM() }
// ZMM allocates and returns a 512-bit vector register.
func ZMM() reg.VecVirtual { return ctx.ZMM() }

// K allocates and returns an opmask register.
func K() reg.OpmaskVirtual { return ctx.K() }

// Param returns a the named argument of the active function.
func Param(name string) gotypes.Component { return ctx.Param(name) }

Expand Down
Loading